在PowerShell中运行远程脚本

时间:2011-05-25 03:10:10

标签: powershell powershell-v2.0 powershell-remoting

我已经成功运行了winrm,我可以在shell中运行Enter-PSSession my-machine,然后输入命令。但是,当我尝试运行启动远程会话的脚本时,所有后续调用都在本地计算机上运行。例如:

PS> test.ps1

test.ps1的内容

Enter-PSSession remote-pcname
gc env:computername

打印出local-pcname而不是remote-pcname知道为什么脚本文件不支持远程会话?它肯定是成功连接的,因为当脚本完成后,我将返回到远程机器的shell提示符。

2 个答案:

答案 0 :(得分:6)

简短的回答是:Enter-PSSession旨在用于交互式使用。如果要从脚本在远程系统上执行命令,请使用invoke-command。

Technet论坛上的类似帖子在这里: http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/90e92d4e-716b-4b4d-956f-d38645e5c035

答案 1 :(得分:4)

对我来说,它的工作记录如下。 Enter-PSSession启动交互式会话,用于交互式使用。

因此,要执行脚本,您可以使用New-PSSession使用您使用New-PSSession创建的远程会话创建会话和Invoke-Command。