PowerShell - 在远程计算机上执行脚本给出错误

时间:2013-02-06 10:42:26

标签: powershell powershell-remoting

以下内容对我不起作用 -

%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -Noninteractive -command "& Invoke-Command -ComputerName "Spider_LT_86" -ScriptBlock { msiexec.exe /i "D:\3PDInstallers\ETLBackgroundWorkerSetup.msi" /qn /l*vx "D:\3PDInstallers\logs" }"

我需要做的就是在远程计算机上运行msiexec。我假设运行脚本的用户将需要访问远程计算机。

即使Computername指向本地计算机,该脚本也不起作用(并且使用相同的登录用户运行msiexec工作正常,因此它看起来不像权限问题) - 我已确保WinRM服务正在运行,我也禁用防火墙检查是否是问题的原因,但到目前为止没有运气。我在这里缺少什么?

这是完整的错误,但它几乎列出了所有可能性 -

Connecting to remote server failed with the following error message : WinRM cannot process the request. The following error occured while using
Kerberos authentication: The network path was not found.
Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting He
lp topic.
    + CategoryInfo          : OpenError: (:) [], PSRemotingTransportException
    + FullyQualifiedErrorId : PSSessionStateBroken

更新:

当我使用-Credentials只使用用户名时,会弹出一个登录窗口来获取我的密码,然后在输入时,会出现以下错误 - 用户确实有管理员权限,所以我不知道出了什么问题。< / p>

[spider_lt_86]连接到远程服务器失败,并显示以下错误消息:拒绝访问。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。     + CategoryInfo:OpenError:(:) [],PSRemotingTransportException     + FullyQualifiedErrorId:PSSessionStateBroken

3 个答案:

答案 0 :(得分:2)

这是一个解决方法而不是答案,但是当你能够使用wmi时为什么不尝试用它来创建远程进程?看看http://www.lazywinadmin.com/2011/06/powershell-launchstart-process-on.html?m=1

在评论交换之后,问题是您没有为远程主机提供具有管理权限的凭据。

答案 1 :(得分:2)

您是否在计算机上设置了TrustedHosts以允许您连接到其他计算机?

在您尝试远程的计算机上运行此程序。

Set-Item  wsman::localhost\client\TrustedHosts *  
Restart-Service WinRm

答案 2 :(得分:1)

有一件事是清楚的,错误消息“找不到网络路径”没有说明底层问题是什么。我在Microsoft forum看到了一个帖子,其中一位受访者声称它曾经工作过,现在却没有。这就是我发现自己的地方。我确认我可以ping并且我可以净视图共享,所以我知道网络部分是功能的。我重新启动了源服务器,这似乎没有帮助。一旦我重新启动目标服务器,WinRM错误消失了,一切都开始重新运行了。目前尚不清楚服务是否出现故障或行为不当,或者是否有不太明显的事情发生。重新启动后,我再次失败了(大约20次尝试),但随机故障在我们的环境中并不罕见。

我会留下它,以防它帮助其他人。