2009-11-17 72 views
1

远程过程,我有以下行的代码来创建对象来访问远程服务器之前,我的用户名,密码,并对其进行处理相关联:运行通过PowerShell的

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

我想这在两台PC,一个是没有任何错误,但另一个我要去运行有一个例外:

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是同一个。不知道我必须在本地PC或远程PC上设置这个功能吗?在两台客户端PC上,用户名都是管理员的成员。

回答

11

你有没有考虑寻找到PowerShell远程处理?如果你正在运行的PowerShell 2.0,我建议你看看它。一旦你已经设置了远程处理,你就可以使用Invoke命令在远程服务器上执行命令:

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

该脚本块可以包含任何PowerShell命令,所以你就可以在远程计算机上启动进程有了这个机制。要启用远程处理,您需要使用Enable-PSRemoting cmdlet,并且您可以在http://blogs.msdn.com/powershell/archive/2009/04/30/enable-psremoting.aspxhttp://technet.microsoft.com/en-us/library/dd819498.aspx

+0

不幸的是,我无法安装PS 2.0,因为它需要通过网络许可不可用的SP 3。 – 2009-11-23 21:01:39

+0

你见过这个http://forums.asp.net/p/1225290/2198163.aspx – 2009-11-23 21:44:57

1

中获得此详细信息在远程机器上:

“GET-ExecutionPolicy”

这听起来像其设为“限制”,这意味着它不会运行任何“援引-命令”命令,或远程脚本。

您可以将其更改为7 1的选择:

  1. Unrestricted_ _ __(最不安全的,但如果您需要解决设置这个选项)
  2. 下RemoteSigned __(只会所有脚本与签名,这是一个如此如此选择)
  3. AllSigned_ _ __ _ _(最好的选择如果youu需要运行远程脚本,但都将斋签署)
  4. Restricted_ _ ___(我相信此选项默认情况下,在Windows 7中NAD WS2K8)
  5. 默认
  6. 绕道
  7. 设置未定义