web-dev-qa-db-ja.com

グループポリシーとは何ですか、またどのように機能しますか?

これは 標準的な質問 Active Directoryグループポリシーの基本についてです

グループポリシーとは何ですか?それはどのように機能し、なぜそれを使用する必要がありますか?

注:これは、新しい管理者への質問と回答であり、機能とパワフルさには慣れていない可能性があります。

32
MDMarra

グループポリシーとは何ですか?

グループポリシーは、 Windows 2000 以降 Active Directory Domain を実行している管理者が利用できるツールです。ドメインに参加しているクライアントコンピューターとサーバーの設定を集中管理できるほか、ソフトウェアを配布する基本的な方法も提供します。

設定は、グループポリシーオブジェクト(GPO)と呼ばれるオブジェクトにグループ化されます。 GPOはActive Directory組織単位(OU)にリンクされており、ユーザーとコンピューターに適用できます。 GPOをグループに直接適用することはできませんが、 security filtering または item-level targets を使用して、グループメンバーシップに基づいてポリシーアプリケーションをフィルタリングできます。

それはクールです、それは何ができますか?

なんでも。

真剣に、あなたはあなたがあなたのドメインのユーザーまたはコンピュータにしたいことを何でもすることができます。フォルダリダイレクト、パスワードの複雑さ、電源設定、ドライブマッピング、ドライブの暗号化、 Windows Update などの定義済みの設定が何百もあります。スクリプトを使用して制御できる事前定義済みの設定を介して構成できないもの。バッチおよび VBScript スクリプトは、サポートされているすべてのクライアントでサポートされており、 PowerShell スクリプトはWindows 7ホストで実行できます。

プロのヒント:実際にPowerShell起動スクリプトをWindows XPおよびWindows Vistaホストで実行できますPowerShell 2.0がインストールされています。次の構文でスクリプトを呼び出すバッチファイルを作成できます。

powershell Set-ExecutionPolicy RemoteSigned
powershell \\\\server\share\script.ps1
powershell Set-ExecutionPolicy Restricted

1行目では、リモート共有からの署名されていないスクリプトをそのホストで実行できます。2行目では、バッチファイルからスクリプトを呼び出します。 3行目は、セキュリティを最大にするためにポリシーを制限付き(デフォルト)に戻します。

グループポリシーオブジェクトはどのように適用されますか?

GPOは予測可能な順序で適用されます。ローカルポリシーが最初に適用されます。 gpedit.mscを介してローカルマシンにポリシーが設定されています。次に、サイトポリシーが適用されます。ドメインポリシーは3番目に適用され、OUポリシーは4番目に適用されます。オブジェクトが複数のOU内にネストされている場合、GPOは最初にルートに最も近いOUに適用されます。

競合がある場合、lastGPO apply "wins。"これは、たとえば、ポリシーがGPO)の設定と親OUでリンクされている設定の間に競合がある場合、コンピューターが存在するOUが優先されます。

ログオンスクリプトとスタートアップスクリプトはクールに見えますが、どのように機能しますか?

ログオンまたは起動スクリプトは、Domain UsersおよびDomain Computersグループが存在する共有への読み取りアクセス権を持っている限り、どのネットワーク共有でも実行できます。従来、これらは\\domain.tld\sysvolに存在しますが、それは必須ではありません。

起動スクリプトは、コンピューターの起動時に実行されます。これらは、ローカルマシンのSYSTEMアカウントとして実行されます。つまり、コンピュータのアカウントとしてネットワークリソースにアクセスします。たとえば、スタートアップスクリプトが [〜#〜] unc [〜#〜]\\server01\share1であり、コンピューターの名前がWORKSTATION01である共有上のネットワークリソースにアクセスできるようにしたい場合WORKSTATION01$がその共有にアクセスできることを確認する必要があります。このスクリプトはシステムとして実行されるため、ソフトウェアのインストール、レジストリの特権セクションの変更、ローカルマシン上のほとんどのファイルの変更などを実行できます。

ログオンスクリプトは、ローカルにログオンしたユーザーのセキュリティコンテキストで実行されます。うまくいけば、ユーザーは管理者ではないので、これらを使用してソフトウェアをインストールしたり、保護されたレジストリ設定を変更したりすることはできません。

ログオンスクリプトと起動スクリプトは、Windows 2003以前のドメインの要でしたが、Windows Serverの今後のリリースでは、その有用性が低下しています。グループポリシーの基本設定を使用すると、管理者は、ドライブやプリンターのマッピング、ショートカット、ファイル、レジストリエントリ、ローカルグループメンバーシップなど、起動スクリプトまたはログオンスクリプトでしか実行できない多くのことを処理できます。単純なタスクにスクリプトを使用する必要があると考えている場合は、代わりにグループポリシーまたはその設定がおそらくあります。現在、Windows 7(またはそれ以降)のクライアントを持つドメインでは、起動スクリプトまたはログオンスクリプトが必要なのは複雑なタスクだけです。

かっこいいGPOを見つけましたが、それはユーザーに適用されます。コンピューターに適用したいです。

ええ、私は知っています。そこに行ったことがある。これは、アカデミックラボやその他の共有コンピューターシナリオで特によく見られます。プリンターまたは同様のリソースのユーザーポリシーの一部を、ユーザーではなくコンピューターに基づいて設定したい場合です。何だと思う、あなたは運がいい! GPO Group Policy Loopback Mode の設定を有効にしたい。

どういたしまして。

これを使ってソフトウェアをインストールできるとおっしゃいましたよね?

はい、できます。ただし、いくつかの注意点があります。ソフトウェアは [〜#〜] msi [〜#〜] 形式である必要があり、ソフトウェアへの変更はすべて [〜#〜] mst [〜#〜 ] ファイル。 MSTは、 [〜#〜] orca [〜#〜] などのソフトウェア、またはその他のMSIエディターで作成できます。変換を行わない場合、最終結果はmsiexec /i <path to software> /qを実行した場合と同じになります。

また、ソフトウェアは起動時にのみインストールされるため、ソフトウェアを配布するための非常に高速な方法ではありませんが、無料です。低予算のラボ環境では、ランダムな30分のオフセットですべてのラボコンピューターを真夜中に再起動する(GPOを介して)スケジュールされたタスクを作成しました。これにより、これらのラボではソフトウェアが最大で1日古くなることが保証されます。それでも、 [〜#〜] sccm [〜#〜]LANDeskAltaris などのソフトウェアオンデマンドでソフトウェアを「プッシュ」できることが望ましいです。

どのくらいの頻度で適用されますか?

クライアントは、30分ランダムに90分ごとにグループポリシーオブジェクトを更新します。つまり、デフォルトでは、最大120分の待機が可能です。また、ドライブマッピング、フォルダーリダイレクト、ファイル設定などの一部の設定は、起動時またはログオン時にのみ適用されます。グループポリシーは、すぐに解決できる状況ではなく、長期的な計画管理を目的としています。

ドメインコントローラーは5分ごとにポリシーを更新します。

28
MDMarra

グループポリシーの基本設定に関する簡単なメモ:これらの設定を使用したいが、Windows XP SP2またはWindows XP SP3ワークステーションを使用している場合は、これらを最初にインストールする必要があります Windowsのグループポリシー基本設定クライアント側拡張機能XP(KB943729)

コンピューターコンテナーとコンピューターOU

Active Directory (AD)のドメインルートの下にデフォルトのComputers containerがあり、これはActive Directory組織単位(OU)と間違われることがよくあります。これは実際にはContainerであり、OUではありません。これは実際にはOUではないため、グループポリシーはこのコンテナ内のオブジェクトには適用されません。このルールの例外は、domain levelで適用されるグループポリシーです。これらは、Computers containerのオブジェクトに適用される唯一のポリシーになります。

デフォルトでは、ドメインに参加しているコンピューターオブジェクトは事前登録されておらず、Computers containerに移動します。

したがって、ポリシーが適用されない理由がわからない場合は、問題のオブジェクトがADの正しい場所にあることを確認してください。

GPOのバックアップ

グループポリシー管理コンソール(GPMC)を使用してGPOをバックアップできます。

  1. グループポリシー管理を開き、バックアップするグループポリシーオブジェクト(GPO)を含むフォレストとドメインでGroup Policy Objectsをダブルクリックします。
  2. 1つのGPOをバックアップするには、GPOを右クリックし、[バックアップ]をクリックします。ドメイン内のすべてのGPOをバックアップするには、Group Policy Objectsを右クリックし、Back Up Allをクリックします。
  3. [グループポリシーオブジェクトのバックアップ]ダイアログボックスの[場所]ボックスに、GPOバックアップを保存する場所へのパスを入力するか、[参照]をクリックして、次の場所にあるフォルダーを探します。 GPOバックアップを保存する場所を選択し、[OK]をクリックします。
  4. [説明]ボックスに、バックアップするGPOの説明を入力し、[Backup]をクリックします。複数のGPOをバックアップする場合、説明はバックアップするすべてのGPOに適用されます。
  5. 操作が完了したら、[OK]をクリックします。

グループポリシーのバックアップの優れた点は、バージョンコントロールが組み込まれていることです。つまり、この手順は複数回使用でき、ポリシー間の変更を追跡します。その後、ポリシーの特定のバージョンに復元できます。

Backup-GPO コマンドを使用して PowerShell スクリプトを実行するようにスケジュールされたタスクを設定し、バックアップを自動化することもできます。

GPOのバックアップ先のフォルダーを(従来のバックアップ方法を使用して)バックアップする必要があります。

12
HostBits

ここに来て、GPOをバックアップするためにスケジュールされたタスクに追加できる簡単なPowershellスクリプトを探していますか? MDOPパックのAGPMがありませんか?

どうぞ。

最初のものは、曜日のローテーションの毎日のバックアップを行います。各フォルダー(日曜日/月曜日など)のフォルダーパスを事前に作成する必要があります。Test-ItemとNew-Itemを処理する理由を理解するため、New-Itemを使用しませんでした。 1日目以降は本当に静的なフォルダです。実行するサーバーで使用可能なAD Powershellモジュールが必要になります。

# GPOBackupScriptDayOfWeek.PS1
# This script Backup all GPOs and save it to a folder based on the day of the week
# It runs as an automated task on SERVER and we keep a one week rotation on disk


Import-Module grouppolicy 
$date = get-date
$dayofweek = $date.DayofWeek
#Remove current backup from the folder (to alleviate space issues down the road since it won't overwrite each time)
Remove-Item \\SERVER\GPO_Backup\$dayofweek\* -Recurse -Force
#Backup current GPOs to the folder
Backup-Gpo -All -Path \\SERVER\GPO_Backup\$dayofweek

ここでも同じですが、今回は月次です。繰り返しになりますが、1月、2月などのように事前にフォルダを作成してください。

# GPOBackupScript.PS1
# This script Backup all GPOs and save it to a folder each month on the first of the month
# It runs as an automated task on SERVER and we keep a one year rotation

Import-Module grouppolicy 
$month = get-date -Format MMMM
#Remove current backup from the folder (to alleviate space issues down the road since it won't overwrite each time)
Remove-Item \\SERVER\GPO_Backup\$month\* -Recurse -Force
#Backup current GPOs to the folder
Backup-Gpo -All -Path \\SERVER\GPO_Backup\$month
3
TheCleaner