ベンダー アプリのパッチの自動化に取り組んでいます。powershell を使用してサーバーのリストを反復処理し、リモート処理を使用して各ボックスにインストールしたいと考えていました。ただし、1つの側面で大きな頭痛の種になっています。インストール スクリプトを実行する前に、ベンダーが提供する cmd スクリプトを呼び出してシステム変数を設定する必要があります。したがって、powershell でスクリプトを次のように呼び出します。
Invoke-Command -session $session {cmd /k ($args[0]+"\data\env.bat")} -Args $lesDestDir
私のPowerShellウィンドウでその作業をエコーするときに実行されますが、その後のインストールスクリプトの呼び出しは次のとおりです。
Invoke-Command -session $session {perl ".\rollout-2010.pl " $args[0] " NC"} -Args $rollout
使用するさまざまなシステム変数が設定されていないと言ってすぐに終了します。誰かがシステム変数の範囲を説明してくれますか? invoke-command が完了すると、それらは存在しなくなりますか? 2 番目のスクリプトがシステム変数などにアクセスできるように、1 つの呼び出しコマンドで 2 つのスクリプト呼び出しをつなぎ合わせる必要がありますか?