何らかの理由で、リモート マシンで呼び出しコマンドを実行すると、Start-Process msiexec が機能しません。調べたところ、psiexec の使用を推奨する人もいますが、リモート マシンで msi インストーラーを起動するために、普通の古い invoke-command を使用している人をたくさん見てきました。
これは私が現在使用しているコードです:
$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
同じ方法を使用して、intallutil を使用してリモートでサービスをインストールしましたが、うまくいきました。スクリプティングはターゲット マシンとリモート処理で有効になっているため、すべてのアカウントで機能するはずです。両方のコンピューターの資格情報は同じですが、invoke-command と pssession の両方に資格情報を追加しようとしました。コードをローカルでテストしたところ、インストールは機能しました。リモートではそうではなく、エラーもありません。ターゲット マシンのタスク マネージャーで、msiexec が開始されていることを確認できますが、何も起こりません。ファイアウォールを無効にしようとしましたが、それでも何もしませんでした。& 演算子を使用して msiexec を開始しようとしましたが、まだ何もありません。
他に何を試すことができるかわかりません。