Powershell に関するアドバイスが必要です。
アプリケーションの MSP 更新ファイルを複数の Win08r2 サーバーにインストールする必要があります。これらのコマンドをターゲット マシンの PS ウィンドウ内でローカルに実行すると、まさに私がやりたいことを実行します。
$command = 'msiexec.exe /p "c:\test\My Application Update 01.msp" REBOOTPROMPT=S /qb!'
invoke-wmimethod -path win32_process -name create -argumentlist $command
実行中のファイルがターゲット マシン上にある
マシンにリモートで接続して 2 つのコマンドを実行すると、2 つの x64 msiexec.exe プロセスと 1 つの msiexec.exe *32 プロセスが開き、そのまま待機します。
サーバーを再起動しても、アップデートがインストールされたことが表示されないので、タイミングの問題ではないと思います。
2行でPS1ファイルを作成してリモートで実行しようとしましたが、同じことをしているようです。
私の MSP アップデートをリモートでインストールする方法について誰かアドバイスがあれば、私は耳を傾けます。
記載している内容は全て記載していると思いますが、不足があれば質問してください。
++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++
これに対する私のプロセスは次のとおりです。
- サーバー名と管理者パスワードの CSV を読み取る
- パスワードを使用して資格情報を作成する
- マシン名と資格情報を使用して新しいセッションを作成します
- 更新 MSP ファイルを保持する一時フォルダーを作成する
- 更新ファイルをターゲット サーバーにダウンロードする PS1 ファイルを呼び出す
- >>> 新しい System.Net.WebClient オブジェクトを作成します
- >>> その Web クライアント オブジェクトを使用して、ソースからターゲット サーバー上の場所にダウンロードします
- ダウンロードしたばかりのパッチを適用する別の PS1 ファイルを呼び出す –>> ここで問題が発生します。
- >>> 上記の変数を設定します
- >>> 変数で指定したファイルを実行
- ターゲット サーバーへのセッションを閉じる
- CSV 内の次のサーバーに移動…</li>
PS ウィンドウを開いて変数を手動で設定し、それを実行すると (上記の 2 行のコードのように)、正常に動作します。同じ 2 行のコードを含む PS1 ファイルをターゲット サーバーに作成すると、右クリック > [PowerShell で実行] をクリックすると、期待どおりに動作します。PowerGUI でコードをリモートで実行すると、次のようなテキスト ブロックが返され、そこに留まります。サーバーに RDP 接続すると、インストーラーが起動しません。「戻り値」の値についての私の理解では、「0」はコマンドが成功したことを意味します。
PSComputerName : xx.xx.xx.xx
RunspaceId : bf6f4a39-2338-4996-b75b-bjf5ef01ecaa
PSShowComputerName : True
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY
: __PARAMETERS
__REL
:
__PROPERTY_COUNT
SER
2 __ パス : __
パス名 : { : 4808
戻り値: 0
変数と、デスクトップにテキスト ファイルを作成する実行との間にコード行を追加して、「executeFile」ファイルにアクセスし、そのテキスト ファイルが作成されることを確認しました。私のMSPをリモートで実行しているだけではないようです。
よろしくお願いいたします。
Catt11.