【问题标题】:Running a Setup.exe from a network share, via Invoke-Command in Powershell通过 Powershell 中的 Invoke-Command 从网络共享运行 Setup.exe
【发布时间】:2014-11-29 11:37:39
【问题描述】:

PSEXEC 开始给我带来一些麻烦,我决定在 PowerShell 中重新编码。

这个批处理命令曾经为我工作,在 PSEXEC 开始搞砸之前:

psexec -accepteula \\<ServerToBeUpdated> -u <User> -p <Password> cmd /c "\\<ServerWithInstallationFile>\SystemEnv\Bin\Setup.exe /silent /Update"

我正在尝试使用 Powershell 中的 Invoke-Command 执行此操作,但到目前为止还没有运气。

我尝试了很多组合,并在 Google 上搜索了很多,总的来说,PowerShell 似乎不喜欢我尝试安装的 UNC 路径。

这是我得到的:

Invoke-Command -ComputerName &lt;ServerToBeUpdated&gt; -ScriptBlock { Start-Process -FilePath "\\&lt;ServerWithInstallationFile&gt;\SystemEnv\Bin\Setup.exe" -ArgumentList "/update /silent" -wait }

我收到此错误消息:

由于以下错误无法运行此命令:访问被拒绝。
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
+ PSComputerName : DE5441

有人说setup.exe已经复制到远程服务器本地了。但这对我来说似乎不是一个选择,主要有两个原因。

  1. 我的 setup.exe 发现它不在正确的路径中,然后它杀死本地的 setup.exe 进程,并自动从 UNC 路径启动一个新的 setup.exe。
  2. 我还需要 setup.exe 中的 ExitCode,如原因 1 中所述,当“杀戮”开始时,它会丢失。

最后一点,我确实通过 Enable-PSRemoting 命令授予了 PowerShell 远程运行的访问权限,并且我还从这个简单的测试中得到了预期的结果:

Invoke-Command -ComputerName <ServerToBeUpdated> -ScriptBlock { Hostname } 

【问题讨论】:

  • 您可能遇到了双跳身份验证问题。您可以使用 CredSSP 来解决它。这个链接应该可以帮助blogs.technet.com/b/heyscriptingguy/archive/2012/11/14/…
  • 谢谢,这解决了我的问题。一个问题,一个盒子可以同时设置为服务器和客户端角色,还是必须是其中之一?
  • 我稍后会添加它作为答案。关于一台计算机上的两个角色:我不知道,猜你必须尝试一下:)

标签: powershell installation psexec invoke-command


【解决方案1】:

您遇到了所谓的双跳身份验证问题。如果使用普通身份验证,您将无法从您正在调用该命令的计算机向第二台计算机进行身份验证。

要解决此问题,您可以使用 CredSSP。

在被调用的机器上启用 CredSSP:

Enable-WSManCredSSP -Role Server -force

在客户端启用 CredSSP:

Enable-WSManCredSSP -Role Client -DelegateComputer server.domain.com -force

-delegateComputer 参数需要一个 FQDN,但也需要通配符。

启用 CredSSP 后,您可以使用它通过参数-authentication CredSSP 调用您的命令

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 1970-01-01
    相关资源
    最近更新 更多