41

当我从脚本运行以下行时,文件最终会在我的本地计算机上创建。

$cred = Get-Credential domain\DanTest
Enter-PSSession -computerName xsappb01 -credential $cred

New-Item -type file c:\temp\blahxsappk02.txt

exit-pssession

当我从 powershell 控制台单独运行每一行时,会正确创建远程会话并在远程计算机上创建文件。关于为什么的任何想法?可能是脚本的时间问题吗?

4

1 回答 1

81

不确定是不是时间问题。我怀疑这更像是 Enter-PSSession 正在调用嵌套提示之类的东西,而您的后续命令并未在其中执行。无论如何,我相信 Enter/Exit-PSSession 是为了交互式使用 - 而不是脚本使用。对于脚本,使用 New-PSSession 并将该会话实例传递给 Invoke-Command 例如:

$cred = Get-Credential domain\DanTest 
$s = New-PSSession -computerName xsappb01 -credential $cred
Invoke-Command -Session $s -Scriptblock {New-Item -type file c:\temp\blah.txt}
Remove-PSSession $s
于 2010-09-14T02:58:57.533 回答