测试 PowerShell 脚本是否通过 Enter-PSSession 运行?

测试 PowerShell 脚本是否通过 Enter-PSSession 运行?

我有一个 PowerShell 2.0 脚本,它可以执行一些涉及它启动的非 MS 应用程序的任务。如果通过 RDP 或本地控制台运行,效果很好,但如果通过远程工作站的 Enter-PSSession 会话运行,最终会删除不需要的文件。

我正在寻找但未找到(或理解)的是,是否有一种方法可以在 PowerShell 脚本中测试它是在本地执行,还是通过 Enter-PSSession 远程执行。这将允许我测试它是否是远程会话,并正常退出并显示“抱歉,这必须在本地运行”消息。

答案1

你可以用下面的方法做:
if ($Host.Name -like '*RemoteHost') { write-error "You must run locally"}

但我真正的建议是弄清楚为什么脚本不能在 PSRemoting 会话中运行并解决该问题。

相关内容