GPO を使用してドメイン コンピュータにソフトウェアをプッシュする

GPO を使用してドメイン コンピュータにソフトウェアをプッシュする

アプリケーションをクライアント PC にプッシュし、GPO を使用してインストールすることは可能ですか?

現在、ソフトウェアをホストするドメイン コントローラー上にネットワーク共有があり、接続されているすべての PC にそのソフトウェアをインストールするための GPO があります。問題は、これによって実際にソフトウェアがクライアント ボックスにコピーされるのか、それともネットワーク共有から実行されるだけなのかということです。

ネットワーク共有からのみ実行している場合、アプリケーションをローカル ファイル システムにコピーし、そこから GPO を使用してインストールすることは可能ですか?

答え1

GPO 経由のソフトウェア展開は、展開するソフトウェアが .msi ファイルである必要があるため、非常に制限があり、信頼性が低くなります。.exe やその他のファイル拡張子では機能しません。

ソフトウェアをインストールするすべてのコンピューターからアクセスできるファイル共有に .msi ファイルがある場合は、手順は次のとおりです。

注: これによって、実際にソフトウェアがコンピュータにインストールされます。ソフトウェアはファイル共有からではなく、ローカル コンピュータ上で実行されます。基本的に、コンピュータはネットワーク共有からインストーラ ファイルを取得し、アプリケーションをマシンにインストールするだけです。

  1. 新しいグループ ポリシー オブジェクトを作成します。

  2. [コンピューターの構成] > [ポリシー] > [ソフトウェアの設定] で、[ソフトウェアのインストール] をクリックして選択します。

  3. 右側のウィンドウの空白部分を右クリックし、[新規] > [パッケージ] を選択します。

重要: 次の手順では注意してください。パッケージを選択する際は、ソフトウェアをインストールするコンピューターがアクセスできるファイル共有の場所を参照する必要があります。サーバーのローカル C: ドライブから選択した場合、ターゲット マシンがアクセスできるネットワーク共有 UNC パス (\\SERVER_NAME\share_name\installer_file_name) を使用する必要があるため、ネットワーク コンピューターはインストーラー ファイルにアクセスできません。

  1. UNC パスを参照して、.msi インストーラー ファイルを選択します。

  2. 「割り当て済み」を選択し、「OK」を選択します。インストーラー ファイルがリストに表示されます。

次の手順は、設定によって異なります。おそらく、GPO にセキュリティ フィルタリングのアクセス許可を設定して、インストールする特定のコンピューターを指定し、その他のアクセス許可設定を調整する必要があります。完了したら、ソフトウェアをインストールするコンピューターを含む OU に GPO を割り当てます。

テストするには、ソフトウェアをインストールするネットワーク上のコンピュータに移動し、PowerShellを開いて実行します。

gpupdate /force /boot

特定のポリシーが有効になっているというメッセージや、コンピューターが 1 分後に自動的に再起動するというポップアップが表示されます。コンピューターが再起動すると、Windows がロードされるまで、長時間にわたって回転するスロバーが表示されることがあります。これは通常、良い兆候であり、ソフトウェアがインストールされていることを意味します。

ただし、GPO 経由での展開は、最も信頼性の高いソリューションではありません。失敗する理由はたくさんあります (通常は失敗します)。インストールする前に、コンピューターを数回再起動する必要がある場合があります。数日間インストールされない場合や、まったくインストールされない場合もあります。インストールするには、GPO を削除して再作成する必要がある場合があります。最悪の場合、ソフトウェアをインストールする前に、コンピューターをドメインから削除し、ドメインに再度参加する必要があります。

答え2

私が動作させることができた方法は、2 つの新しい GPO を作成することでした。1 つは MSI をコピーするためのもので、もう 1 つはStart-Process C:\Path\to\MSIネットワーク共有からクライアント PC に実行される PowerShell スクリプトです。

2 番目の GPO は、PowerShell を起動し、引数を渡して MSI を実行する即時タスクを実行しました。

梱包の専門家と話し合った結果、この手法がベストプラクティスであることがわかりました。

PowerShell スクリプトでこれを複雑にしすぎた可能性があることに気づきました。アプリケーションを実行する即時タスクを設定するか、正規表現を 1 回だけ実行することができます。

関連情報