Запустить удаленный процесс с помощью powershell - PullRequest
1 голос
/ 18 ноября 2009

У меня есть следующая строка кода для создания объекта для доступа к удаленному серверу, прежде чем я свяжу его с именем пользователя, паролем и процессом:

$process = [WMIClass]"\\remoteServer\ROOT\cimv2:Win32_Process"

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

Cannot convert value "\\remoteServer\ROOT\cimv2:Win32_Process" to type "System.Manage
  ment.ManagementClass". Error: "Access is denied. (Exception from HRESULT: 0x800
  70005 (E_ACCESSDENIED))"

RemoteServer такой же. Не уверен, что я должен установить на локальном ПК или удаленном ПК, чтобы это работало? На обоих клиентских ПК все имена пользователей являются членами Администраторов.

Ответы [ 3 ]

11 голосов
/ 19 ноября 2009

Рассматривали ли вы изучение удаленного взаимодействия PowerShell? Если вы используете PowerShell 2.0, я бы посоветовал вам взглянуть на него. После настройки удаленного взаимодействия вы сможете выполнять команды на удаленном сервере с помощью Invoke-Command:

Invoke-Command -ComputerName {serverName} –ScriptBlock { commands }

ScriptBlock может содержать любые команды powershell, поэтому вы сможете запускать процессы на удаленном компьютере с помощью этого механизма. Чтобы включить удаленное взаимодействие, вам нужно использовать командлет Enable-PSRemoting, подробности которого можно получить в http://blogs.msdn.com/powershell/archive/2009/04/30/enable-psremoting.aspx и http://technet.microsoft.com/en-us/library/dd819498.aspx

2 голосов
/ 18 ноября 2009

Есть ли причина, по которой вы не хотите использовать psexec?

http://technet.microsoft.com/en-us/sysinternals/bb545027.aspx

1 голос
/ 20 сентября 2011

Я знаю, что это старый пост, но я думаю, вам нужно выполнить следующую команду на удаленной машине:

"Get-ExecutionPolicy"

похоже, что он установлен на «Restricted», что означает, что он не будет запускать команды «Invoke-Commands» или удаленные сценарии.

Вы можете изменить его на 1 из 7 вариантов:

  1. Unrestricted_ _ __ (наименее безопасный, но если вам нужно устранить неполадки, установите эту опцию)
  2. RemoteSigned __ (будут только все скрипты с подписью, это так себе вариант)
  3. AllSigned_ _ __ _ _ (лучший вариант, если вам нужно запустить удаленные сценарии, но все они будут подписаны)
  4. Restricted_ _ ___ (я считаю, что эта опция установлена ​​по умолчанию в Windows 7 и WS2k8)
  5. По умолчанию
  6. Bypass
  7. Не определено
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...