5

何らかの理由で、リモート マシンで呼び出しコマンドを実行すると、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 を開始しようとしましたが、まだ何もありません。

他に何を試すことができるかわかりません。

4

5 に答える 5

1

問題は、msi インストーラーのビルド方法と、対話型プロセスに対する Windows サーバーの制限の組み合わせだったようです。この問題を回避するために psexec を使用することになりました。

于 2013-11-11T09:14:59.933 に答える