Powershell Start-Process msiexec在远程计算机上无法运行

use*_*736 5 powershell start-process invoke-command msiexec

出于某种原因,在远程计算机上通过invoke命令运行时,Start-Process msiexec将无法工作.我查了一下,虽然有些人建议使用psiexec我看到很多人使用普通的旧invoke-command在远程机器上启动msi安装程序.

这是我目前使用的代码:

$session = New-PSSession -computername $computerName -ea stop

$command = {

    Param(
    [Parameter()]
    [string]$computerName,

    [Parameter()]
    [string]$domain,

    [Parameter()]
    [string]$user,

    [Parameter()]
    [string]$password,

    [Parameter()]
    [string]$installDir
    )

    $msiArgumentList = "/i C:\Installer.msi /l c:\log.txt /quiet /qr /norestart IAGREE=Yes DOMAIN=$domain ACCOUNT=$user PASSWORD=$password PASSWORDCONFIRM=$password INSTALLDIR=$installDir"

        Start-Process msiexec -ArgumentList $msiArgumentList -Wait

}

Invoke-Command -session $session -ScriptBlock $command -ArgumentList $computerName, $domain, $user, $password, $installDir

Remove-PSsession -session $session
Run Code Online (Sandbox Code Playgroud)

我使用相同的方法使用intallutil远程安装服务,它工作正常.在目标计算机上启用脚本以及远程处理,以便所有帐户都能正常工作.两台计算机都具有相同的凭据,但我仍尝试向invoke-command和pssession添加凭据.我在本地测试了代码,安装工作正常.远程它没有,也没有错误.我可以在taskmanager的目标机器上看到msiexec已启动但没有任何反应.我甚至试过禁用防火墙,但仍然没有.我试过&运算符启动msiexec但仍然没有.

不确定我还能尝试什么.

use*_*736 1

问题似乎是 msi 安装程序的构建方式和 Windows 服务器对交互进程的限制的组合。我最终使用 psexec 来绕过这个问题。