2

Invoke-Command powershell コマンドレットを使用して MSI インストーラーをインストールしようとしています。ローカル マシンの PowerShell 内および適切なディレクトリから、次のように動作します。

./setup /quiet

以下は機能していないようです。

$script =
{
    param($path)
    cd "$path"
    & ./setup /quiet
    return pwd
}
return Invoke-Command -ComputerName $product.IPs -ScriptBlock $script -Args $sourcePath

テスト目的で、「。」を渡すローカルマシンで作業しています。-ComputerName 引数。パスは Invoke-Command に渡す前に正しいことが検証されており、このコードのさまざまなバージョンで生成されたエラーは、パスが正しいことを示しています。また、セットアップへのリモート呼び出しで「&」を使用して、または使用せずに試しました。他の Invoke-Command 呼び出しは機能しているので、権限の問題ではないかと思います。pwd 呼び出しからの戻り値が予想されるディレクトリであることを確認しました。

インストールを機能させるにはどうすればよいですか?

4

2 に答える 2

0

ローカル マシンでスクリプトをリモートで実行しようとすると、奇妙な問題が発生しました。つまり、リモート PowerShell をローカル マシンに接続します。マシンで PowerShell リモート処理が有効になっていないと思われるエラーが返されますが、有効でした。別のマシンからターゲットに対してスクリプトをリモートで実行できますが、同じボックスに対してリモートを使用すると、問題が発生します。

  • WinRM サービスが実行されていることを確認します。
  • のように、PowerShell リモート処理が有効になっていることを確認しEnable-PSRemoting -forceます。
  • たとえば、PowerShell 実行ポリシーが十分に緩いことを確認しますSet-ExecutionPolicy Unrestricted。ポリシーが に設定されている場合RemoteSigned、これが問題である可能性があります。

また、スクリプトを実行しているユーザー (ローカルではあるがリモート処理を使用) に、"サービスとしてログオン" またはバッチ ジョブとしての権限があることを確認することもできます。上記のリストで何も解決しない場合は、そこを推測してください。

于 2012-08-03T15:15:03.777 に答える
0

スクリプト ブロックで Start-Process を使用してみてください。

cd $path start-process setup.exe -arg "/quiet"

あなたが望むか、待つ必要があるかどうかはわかりません。Start-Process のヘルプを参照してください。

于 2012-02-10T00:26:27.570 に答える