Запуск удаленных скриптов в powershell - PullRequest
1 голос
/ 25 мая 2011

У меня успешно работает winrm, и я могу запустить Enter-PSSession my-machine в оболочке и впоследствии вводить команды.Однако, когда я пытаюсь запустить скрипт, который запускает удаленный сеанс, все последующие вызовы выполняются на локальном компьютере.Например:

PS> test.ps1

Содержимое test.ps1

Enter-PSSession remote-pcname
gc env:computername

выводит local-pcname вместо remote-pcname Есть идеи, почему файл сценария не поддерживает удаленный сеанс?Он определенно успешно соединяется, потому что, когда скрипт завершается, я возвращаюсь к приглашению оболочки удаленного компьютера.

Ответы [ 2 ]

6 голосов
/ 25 мая 2011

Краткий ответ: Enter-PSSession предназначен для интерактивного использования.Если вы хотите выполнять команды в удаленной системе из сценария, используйте invoke-command.

Похожий поток на форумах Technet находится здесь: http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/90e92d4e-716b-4b4d-956f-d38645e5c035

4 голосов
/ 25 мая 2011

Для меня это работает, как задокументировано. Enter-PSSession начать интерактивный сеанс, он предназначен для интерактивного использования.

Таким образом, чтобы выполнить скрипт, вы можете использовать New-PSSession для создания сеанса и Invoke-Command, используя удаленный сеанс, который вы создали с помощью New-PSSession.

...