Enter-PSSession не работает в моем скрипте Powershell - PullRequest
32 голосов
/ 14 сентября 2010

Когда я запускаю приведенные ниже строки из скрипта, файл в конечном итоге создается на моей локальной машине.

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

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

exit-pssession

Когда я запускаю каждую строку отдельно с консоли powershell, удаленный сеанс создается правильно, а файл создается на удаленном компьютере. Есть мысли о том, почему? Это проблема времени, возможно, сценарий?

1 Ответ

63 голосов
/ 14 сентября 2010

Не уверен, что это проблема синхронизации. Я подозреваю, что это больше похоже на Enter-PSSession, который вызывает что-то вроде вложенного приглашения, и ваши последующие команды в нем не выполняются. Во всяком случае, я считаю, что Enter / Exit-PSSession предназначен для интерактивного использования, а не использования сценариев. Для сценариев используйте New-PSSession и передайте этот экземпляр сеанса в Invoke-Command, например ::100100

$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
...