我一直在挣扎几个小时,不能解决这个问题。 我有两台Windows 7电脑。 一个是我的工作站使用PowerShell进行pipe理维护。 另一个是我想使用Powershell远程处理的机器来执行远程Powershell cmdlet。
在这两台计算机上,我已经启用了Powershell远程处理,并将所有计算机的*值添加到TrustedHosts。 在远程计算机上,我启动了远程registry服务,并确保DCOM,Winmgmt和Winrm服务正在运行。 防火墙在远程机器上也被禁用。
我尝试运行的cmdlet是:
Get-Process -ComputerName $name
其中$ name是远程计算机的名称。 我不断收到一个错误,说它无法连接到远程PC。 我也尝试使用IP和我得到相同的错误。 这些电脑不在一个域中。
我能够成功地做到以下几点:
Invoke-Command {get-Process} -ComputerName $name -Credential $creds
其中$ name是计算机名称,$ creds是远程计算机本地pipe理员帐户的用户名和密码。 这给了我期望的相同的输出。
虽然这是一个可以接受的解决方法,但我很好奇,为什么不使用get-process与远程处理工作,因为它应该? 我在网上看过一些文章,暗示人们自己已经取得了成功。
每次我使用提升的权限在我的工作站上使用Powershell。
有任何想法吗?
那么,我怕你自己放弃了答案。
您的本地计算机上的pipe理员帐户不具有远程计算机上的pipe理员权限。
Get-Process不接受凭据,所以当你运行
Get-Process -ComputerName remoteMachine
您正在以localMachine\Administrator身份validation,但是当您调用它并提供凭据时,您的身份validation是remoteMachine\Administrator
启动远程registry服务,在Win7上为我工作。