Вопрос

Я установил PS 1.0 на удаленном ПК (RPC001). я использовал Windows Sysinternals Tool psexec.exe Чтобы выполнить следующий процесс на пульте:

 PSExec \\RPC001 -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2

Я вижу процесс PowerShell.exe, работающий на удаленном ПК, но на самом деле он ничего не делает, просто висят там. Я попытался поместить простой код «запись/хост» строки в сценарии. Я запускаю тот же сценарий на пульте от RTS, он там работает.

Не уверен, что я пропущу что -то еще, чтобы запустить скрипт, используя Psexec, или это ограничение psexec.exe. Я хотел бы запустить скрипт PS на пульте дистанционного управления, чтобы сделать что -то там локально (сжатие некоторых файлов локально и удалить старые файлы) из моего поле.

Я задал аналогичный вопрос в Stackoverflow: Запустите удаленный процесс PowerShell. Дон предложил мне использовать Psexec. Это звучит как альтернативный способ решить проблему. Тем не менее, я не могу заставить его работать с PowerShell. Любой способ заставить PS работать на удаленном ПК?

Кстати, я не могу использовать PS 2.0, поскольку моя сеть не позволяет мне устанавливать Windows XP SP3, что требуется для PS 2.0.

Это было полезно?

Решение

После дальнейшего изучения инструмента Psexec я думаю, что получил ответ. Мне нужно добавить опцию -i, чтобы сказать Psexec для запуска процесса в удаленном в интерактивном режиме:

PSExec \\RPC001 -i -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2

Без -I PowerShell.exe работает в режиме удаленного в режиме ожидания. Интересно, что если я запускаю простую летучую мышь (без PS в летучей мыши), это работает нормально. Может, это что -то особенное для корпуса PS? Приветствующие комментарии и объяснения.

Другие советы

Принятый ответ не сработал для меня, но следующее сделало:

>PsExec.exe \\<SERVER FQDN> -u <DOMAIN\USER> -p <PASSWORD> /accepteula cmd 
    /c "powershell -noninteractive -command gci c:\"

Пример от здесь

Вы можете попробовать следующее?

psexec \\server cmd /c "echo . | powershell script.ps1"

Принятый ответ не работает для меня, но это так. Убедитесь, что скрипт в местоположении (C: temp_ ниже на каждом удаленном сервере. Servers.txt содержит список IP -адресов (один на строку).

psexec @servers.txt -u <username> cmd /c "powershell -noninteractive -file C:\temp\script.ps1"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top