在PowerShell中运行远程脚本

问题描述:

我已经成功地获得了winrm的工作,并且能够在shell中运行Enter-PSSession my-machine并随后输入命令。但是,当我尝试运行启动远程会话的脚本时,所有后续调用均在本地计算机上运行。例如:在PowerShell中运行远程脚本

PS> test.ps1 

test.ps1内容

Enter-PSSession remote-pcname 
gc env:computername 

打印出local-pcname而不是remote-pcname任何想法,为什么脚本文件没有履行的远程会话?它肯定是成功连接的,因为当脚本结束时,我返回到远程机器的shell提示符。

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

在TechNet论坛一个类似的线程是在这里: http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/90e92d4e-716b-4b4d-956f-d38645e5c035

+0

+1你之前回答,但正如它写的,我发布它,即使 – JPBlanc 2011-05-25 03:44:36

对我来说,工作的记录。 Enter-PSSession开始交互式会话,它用于交互式使用。

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