サイトアイコン Windows Active Directory

EXEファイルをGPOを使用して展開する方法

グループポリシーは、MicrosoftのActive Directory内の階層的なインフラストラクチャであり、ネットワークまたはシステム管理者がWindowsサーバーとデスクトップを一元的に設定する手段を提供します。ポリシーの仮想コレクションがグループポリシー オブジェクト(GPO)を構成し、グローバルに唯一の識別子(GUID)によって常に識別されます。選択した管理範囲(SOM)において、Microsoft管理コンソール(MMC)内のグループポリシー オブジェクト エディター拡張機能を用い、コンピューターとユーザーを設定することができます。グループポリシー内の特徴の一つに、割り当てられたアプリケーションと公開されたアプリケーションの無人およびターゲット デプロイメントがあります。グループポリシーの設定は、コンピューター関連のポリシーとユーザー関連のポリシーに分けられます。コンピューター関連のポリシーはユーザー関連のポリシーに優先する点に注意してください。

ソフトウェア デプロイメントの方法

Windowsサーバー、コンピューター、ユーザーへのソフトウェアのデプロイメントは多くの方法で自動化できます。Windowsグループポリシー以外のソリューションでは、セットアップファイルの再パッケージ化が必要であり、サービスのデプロイメントに複雑なサーバーインフラが必要になる場合があります。そのため、多くの組織ではそのような複雑さを避けています。なぜなら、Windowsグループポリシーがより優れたオプションを提供するからです。グループポリシー ソフトウェア インストール(GPSI)機能には欠点もありますが、多くの組織の要件を満たす十分な機能を持っています。

 

GPSIは2種類のソフトウェアデプロイメントに利用されます – 1. アプリケーションの公開と 2. アプリケーションの割り当てです。アプリケーションを公開するということは、ユーザーがインストールするか無視するかを選ぶことができ、コントロールパネル内の「プログラムの追加/削除」セクションで見つけることができます。しかし、アプリケーションを割り当てるということは、ユーザーの選択に関わらずソフトウェアをデプロイする必要があります。

 

注記:GPSI機能はローカルグループポリシー オブジェクトには利用できません。この機能を利用するにはActive Directoryのインストールが必要です。

 

アプリケーションのデプロイメントについて見ていきましょう。Active Directory内でアプリケーションまたはプログラムをデプロイする最良の方法のいくつかは以下の通りです:

1. .exeファイルを.msiに変換してグループポリシーよりデプロイメント

2. ログインスクリプトでバッチファイルを指定して.exeを使用するGPOによるデプロイメント

3. 特定のユーザーにソフトウェアをインストールするためにGPOを設定

 

グループポリシーによるデプロイメント

前提条件:

1. .exeファイルを.msiファイルに変換するパッケージユーティリティ。インターネット上で多数のオープンソースユーティリティがダウンロード可能です。

2. 少なくともすべてのコンピューターとユーザーが読み取りアクセスを持つネットワーク内の共有ネットワークフォルダ。

3. ソフトウェアデプロイメント用に意図された組織単位(OU)に関連付けられているグループポリシーオブジェクト。

前提条件が整ったら、以下の手順に従ってグループポリシーを通じてアプリケーションを正常にデプロイします。

1. インターネット上の任意のパッケージユーティリティを使用して実行可能ファイル(.exe)をMicrosoftインストールファイル(.msi)に変換します。

2. ネットワーク内の共有フォルダに移動し、新しいフォルダを作成します。

3. 新しいフォルダの名前を変更し、右クリックしてメニューツールバーから「共有フォルダオプション」または「共有オプション」をクリックします。

4. 「Everyone」をフィールドに入力し、「追加」をクリックします。

5. 「Everyone」のエントリーの権限レベルを「リーダー」に設定し、「共有」ボタンをクリックします。

6. ネットワーク内の共有フォルダの場所(UNCパス)をメモします。

7. 共有フォルダをダブルクリックし、中に新しいフォルダを作成し、ソフトウェアの名前で名前を変更します。

8. このフォルダをダブルクリックし、中に.msiファイルを貼り付けます。

9. 次に、ドメインコントローラ(DC)サーバに切り替え、「サーバーマネージャ」を開きます。

10. 左側のナビゲーションツリーで「機能」を開き、「グループポリシーマネージメント」を選び、自分のフォレストフォルダにナビゲートします。目的のドメインを選び、意図された組織単位を展開します。

11. 適切なOUで右クリックし、「ドメイン内のGPOを作成してここにリンクします…」をクリックします。

12. 参照用のGPOに名前を付けて「OK」をクリックします。作成したGPOがグループポリシーオブジェクトのフォルダツリーに表示されていることを確認します。

13. GPOを右クリックし、「編集」をクリックします。グループポリシー管理エディターのウィンドウが開きます。

14. 左側の「コンピューターの構成」を展開し、「ポリシー」、「ソフトウェアの設定」をクリックし、「ソフトウェアのインストール」をクリックします。

15. 今、ウィンドウの右側で、空白のスペースを右クリックし、「新規」を展開し、「パッケージ」をクリックします。

16. アプリケーションパッケージが存在する共有フォルダに移動し、フォルダを開き、.msiファイルをクリックし、「開く」ボタンをクリックします。

17. 「割り当て」オプションを選択し、「OK」を押します。

18. GPOが作成されたら、コマンドプロンプトを使用して更新する必要があります。コマンドプロンプトを開き、「gpupdate /force」(引用符なし)を入力します。これにより、Active Directoryで更新が行われます。

.EXEのデプロイメント BY アクティブディレクトリGPO

GPOベースのソフトウェアインストールは、.msiファイルのみをサポートし、.exeファイルはサポートしていません。しかし、多くの組織では.exeファイルをそのままデプロイする必要はありませんが、ソフトウェア提供者が.msiバージョンを提供しない場合や、.exeから.msiへ変換するサードパーティ製のパッケージ変換が機能しない場合には以下の方法が役立ちます。

BATCHファイルの作成

1. 上記からステップ2から8までをフォローし、.exeファイルをネットワーク内の共有フォルダに配置します。

2. メモ帳を開きます。

3. 先にメモしたUNCパスをここで入力します。次のようになります: \\サーバー名\ソフトウェア名\ソフトウェア.exe(注:サーバ名、ソフトウェア名、および拡張子.exeを持つソフトウェアの名前は組織の命名規則によって変わります)

4. ファイルを「filename.bat」として保存します(引用符なし、filenameを参照の名前に置き換えます)。

さらに保護された方法が必要な場合は、フォルダをユーザーの各一時フォルダにコピーするように設定し、各マシン上でファイルをローカルで実行します。このような場合、メモ帳内のバッチコマンドは次のようになります。

copy\\サーバー名\ソフトウェア名\ソフトウェア.exe %temp%

%temp% software.exe

AD GPOにバッチファイルを追加

1. ドメインコントローラ(DC)サーバーから、「Windows管理ツール」より「グループポリシーマネージメントエディター」のウィンドウを開きます。

2. 新しいGPOを作成します。上記の方法でステップ10から13までをフォローして行ってください。

3. ソフトウェアをネットワークソースまたはローカルソースで実行するためにスクリプトを有効にする必要があります。これは2つの設定、「コンピューター設定」または「ユーザー設定」を通じて有効にできます。アプリケーションのデプロイメントオプションは、「ログイン」スクリプトまたは「スタートアップ」スクリプトで異なります。

4. ユーザーを設定するために、「ユーザー設定」を展開し、「ポリシー」、「Windows設定」、「スクリプト(ログオン/ログオフ)」をクリックします。

1. 名称リストで「ログオン」をダブルクリックし、ログオンプロパティウィンドウを開きます。

2. ウィンドウの下部で「追加」をクリックし、「参照」をクリックします。

3. 既に作成したバッチファイル (.bat) をここにコピーします。

4. このウィンドウ内でファイルを選択し、「開く」をクリックし、「OK」を押します。

5. ログオンプロパティウィンドウで「適用」を押し、「OK」を押します。

5. コンピュータを設定するために、「コンピューター設定」、「ポリシー」、「Windows設定」、「スクリプト(スタートアップ/シャットダウン)」をクリックします。

1. 名称リストで「スタートアップ」をダブルクリックし、スタートアッププロパティウィンドウを開きます。

2. ウィンドウの下部で「追加」をクリックし、「参照」をクリックします。

3. 既に作成したバッチファイル (.bat) をここにコピーします。

4. このウィンドウ内でファイルを選択し、「開く」をクリックし、「OK」を押します。

5. スタートアッププロパティウィンドウで「適用」を押し、「OK」を押します。

最後に、意図したドメインまたはOUにGPOを適用します。その後、前の方法のステップ18をフォローしてGPOを更新してください。

テスト

GPO更新が完了したら、クライアントマシンの一つにログオンし、強制再起動を行ってください。注記:デプロイメントはクライアントコンピュータが強制再起動されたときにのみ有効になります。アプリケーションは起動プロセス後に表示されるはずです。

トラブルシューティングのヒント

以下にGPOを通じてソフトウェアインストールを行う際に有用なトラブルシューティングのヒントをいくつか挙げておきます。

1. 起動時にメッセージが表示されるように設定してください

「コンピュータ設定」を展開し、「ポリシー」、「管理用テンプレート」、「システム」と進み、「高度なステータスメッセージの表示」を有効にします。

 

これにより、例えば「ソフトウェアインストール設定の適用」のような、画面が読み込まれる間に何が起きているのかをユーザーに表示できます。

 

2. コンピュータが起動またはログオン時にネットワーク接続を待つようにしてください

「コンピュータ設定」を展開し、「ポリシー」、「管理用テンプレート」、「システム」、「ログオン」の順に進み、「コンピュータの起動とログオン時に常にネットワークを待つ」を有効にします。

 

インストールが実行される予定であり、もしマシンがネットワークに接続されていない場合は、インストールに失敗します。そのため、このGPO設定を有効にすることが推奨されます。

 

3. GPOが有効であることを確認してください

時々、GPO設定が適用されていないことが問題の原因かもしれません。これを確認するためには、コマンドプロンプト(管理者として)で独自の「gpresult /r」コマンドを実行します。これにより、適用されているGPO設定がリストされます。

 

すべてのユーザーとコンピュータに適用されたGPO設定を表示するには、「gpresult /r」コマンド(引用符なし)を使用します。

 

特定のユーザに適用されたGPOを表示するには、「gpresult /r /scope:user」コマンド(引用符なし)を使用します。

 

特定のコンピュータに適用されたGPOを表示するには、「gpresult /r /scope:computer」コマンド(引用符なし)を使用します。

 

リモートコンピュータに適用されたGPOを表示するには、「gpresult /s pc2 /r」コマンド(引用符なし)を使用します。

 

HTMLレポートを生成するには、「gpresult /h c:\reports.html」コマンド(引用符なし)を使用します。

 

テキストファイルとしてエクスポートするには、「gpresult /r >c:\results.txt」コマンド(引用符なし)を使用します。

 

4. 失敗した場合はイベントログを確認してください

インストールが特定のコンピュータで失敗した場合は、システムイベントログを開き、任意のエラーに対するログを確認してください。これにより、インストールの失敗の詳細と理由が提供されます。

 

5. より小さな.msiファイルでテストを試みてください

問題は不良な.msiファイルに起因することもあります。したがって、GPOを通じてより小さな.msiファイル(7zなどのアプリケーション)をデプロイし、検証してみてください。ソフトウェアのGPOを通じたデプロイは、本質的にはシンプルですが、グループポリシー自体は管理やモニタリングが難しくなることもあります。それは主に、ソフトウェアやアプリケーションパッケージのデプロイに関してその機能や特性に制約があるためです。上述の方法は、アクティブディレクトリ内のコンピュータやユーザーへのソフトウェアのデプロイ手段を広げるためのものです。デプロイをお楽しみください!

モバイルバージョンを終了