Выполнение командлетов в 64-битном исполняемом файле Powershell

Как я могу написать сценарий powershell, который открывает и запускает командлеты на 64-битном удаленном исполняемом файле powershell.

Мне трудно найти какие-либо ресурсы, примеры или учебные пособия, которые показывают, как написать сценарий PowerShell, который подключается к удаленному серверу, открывает 64-разрядный Powershell.exe и запускает из него командлеты. Я буду запускать этот скрипт с 32-битной машины. Если у кого есть примеры или идеи?

Обновлять:

Я обнаружил, что могу на удаленной машине сначала выполнить команду доверенного хоста и включить удаленный ps

Enable-PSRemoting
cd wsman:
cd localhost\client
set-item trustedhosts *

После этого моя попытка подключиться к моему серверу

Enter-PSSession servername

выдает эту ошибку

The following error occured while using Kerberos authentication: The network path was not found.

person Warz    schedule 21.09.2012    source источник


Ответы (1)


Если на 64-разрядной машине настроено удаленное взаимодействие PowerShell, конечная точка PowerShell по умолчанию будет 64-разрядной. Также зарегистрирована конечная точка x86, но она не используется по умолчанию.

Что касается обновленного вопроса, в какой среде вы находитесь? Рабочая группа или домен?

Если вы находитесь в домене, все немного проще. Если обе стороны включили удаленное взаимодействие PowerShell (через Enable-PSRemoting), вы сможете ввести имя сервера Enter-PSSession при попытке. У вас есть права администратора на удаленной машине?

Поскольку Kerberos не работал, вы можете указать другие типы аутентификации, используя параметр -Authentication. Допустимые варианты: NTLM, CredSSP и Kerberos. По умолчанию используется Negotiate, который может использовать Kerberos или NTLM.

Вы можете указать определенные учетные данные с помощью параметра -Credential.

Что касается ошибки Kerberos, вы можете проверить, зарегистрированы ли на хосте правильные SPN.

Дон Джонс и Тобиас Вельтнер написали отличное руководство по удаленному взаимодействию PowerShell — находится здесь. В нем рассматривается ряд сценариев настройки PowerShell Remoting.

person Steven Murawski    schedule 21.09.2012
comment
основанный на домене, я считаю, что я могу запустить командлет для проверки - person Warz; 21.09.2012
comment
У вас есть значение для $env:logonserver? Если да, то это имя локальной машины или другой машины? Если это другая машина, скорее всего, вы находитесь в домене. Вы также можете проверить $env:userdnsdomain. Если это имя домена, а не имя локальной машины, вы находитесь в домене. - person Steven Murawski; 21.09.2012
comment
Да, я в домене, в чем может быть проблема с этой ошибкой аутентификации. Как я могу войти в PSSession и передать свое имя пользователя и пароль домена? - person Warz; 24.09.2012
comment
Warz - я обновил ответ на основе вашей дополнительной информации. - person Steven Murawski; 24.09.2012
comment
Спасибо за документ. Я не уверен, что означает регистрация SPN, но я поищу это. - person Warz; 24.09.2012
comment
SPN — это имена участников службы, с помощью которых службы идентифицируют поставщиков Kerberos. Без действительных имен участников-служб аутентификация Kerberos завершится ошибкой. - person Steven Murawski; 24.09.2012