2009-11-17 2 views
1

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

$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))" 

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

ответ

2

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

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

+2

Я пробовал PSExec. Он будет запускать летучую мышь на удаленном ПК. Однако он не позволяет запускать PS-скрипты на удаленном ПК. PS висит на удаленном процессе, но не скрипт exec. –

11

Рассматривали ли вы смотреть в PowerShell Remoting? Если ваш 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

+0

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

+0

Вы видели это http://forums.asp.net/p/1225290/2198163.aspx – 2009-11-23 21:44:57

1

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

«Get-ExecutionPolicy»

это звучит, как его набор для «Restricted», что означает, что он не будет выполнять никакие команды «Invoke-команды» или удаленные скрипты.

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

  1. Unrestricted_ _ __ (менее безопасно, но если вам необходимо устранить неполадки установить этот параметр)
  2. RemoteSigned __ (будет только все сценарии с подпись, это так себе вариант)
  3. AllSigned_ _ __ _ _ (Лучший вариант если youu нужно запускать удаленные сценарии, но все будет Бид подпись)
  4. Restricted_ _ ___ (Я считаю, что эта опция устанавливается по умолчанию в окнах 7-над-WS2K8)
  5. По умолчанию
  6. Bypass
  7. Undefined