Active Directoryのきめ細かいパスワードポリシー(FGPP)とは?PSOの作成と設定方法を徹底解説
きめ細かいパスワードポリシー(Fine-Grained Password Policies:FGPP)を使用すると、特定のユーザーやグループごとに複数のパスワードポリシーを作成できます。Windows Server 2008以降のActive Directoryでは複数のパスワードポリシーが利用可能になり、それ以前のバージョンではDefault Domain Policy(既定のドメインポリシー)GPOを使って、1つのドメインにつき1つのパスワードポリシーしか設定できませんでした。
本記事では、Active Directoryドメイン内で複数のパスワード設定オブジェクト(PSO)を作成し、構成する具体的な手順を詳しく解説します。
目次:
- きめ細かいパスワードポリシーの基本概念
- Active Directoryでパスワード設定ポリシー(PSO)を作成する方法
- PowerShellでFGPP(PSO)を構成する方法
きめ細かいパスワードポリシー(FGPP)の基本概念
FGPPを利用すると、管理者はADドメイン内に複数のカスタムPassword Setting Object(PSO)を作成できます。PSOには、パスワードの要件(長さ・複雑さ・履歴)やアカウントロックアウトに関する設定を含めることができます。PSOは特定のユーザーやグループに割り当てられますが、OUなどのActive Directoryコンテナーには適用できません。あるユーザーにPSOが適用されると、Default Domain Policy GPOのパスワードポリシー設定はそのユーザーに対しては無効になります。
たとえば、管理者アカウント、サービスアカウント、VPNやDirectAccess経由でドメインリソースへアクセスするユーザーなどに対して、FGPPを使えばパスワードの長さや複雑さの要件を厳格化することができます。
ドメインで複数のFGPPパスワードポリシーを利用するための基本要件は以下の通りです。
- ドメインの機能レベルがWindows Server 2008以降であること
- パスワードポリシーはユーザーまたはグローバルセキュリティグループに割り当てる必要がある
- FGPPは全体として適用される(パスワード設定の一部をGPOで、残りをFGPPで設定するという使い分けは不可)
Active Directoryでパスワード設定ポリシー(PSO)を作成する方法
Windows Server 2012以降では、Active Directory管理センター(ADAC)のグラフィカルインターフェースからきめ細かいパスワードポリシーを作成・編集できます。このバージョンのADには、削除済みADオブジェクトを復元できる「Active Directoryのごみ箱」や、マネージドサービスアカウント(gMSA)も搭載されています。
ここでは、Domain Adminsグループに個別のパスワードポリシーを作成して割り当てる手順を例に説明します。
Active Directory管理センター(dsac.msc)を起動し、ツリービューに切り替えてSystemコンテナーを展開します。Password Settings Containerを見つけて右クリックし、「新規」→「パスワード設定」を選択します。

パスワードポリシー名(例:「Domain Admins用パスワードポリシー」)を指定し、各種設定(パスワードの最小文字数と複雑性、履歴に保存するパスワード数、ロックアウト設定、パスワード変更頻度など)を構成します。
PSOの各パラメータ(msDS-PasswordSettingsクラス)は、それぞれ個別のAD属性で定義されています。
- msDS-LockoutDuration
- msDS-LockoutObservationWindow
- msDS-LockoutThreshold
- msDS-MaximumPasswordAge
- msDS-MinimumPasswordAge
- msDS-MinimumPasswordLength
- msDS-PasswordComplexityEnabled
- msDS-PasswordHistoryLength
- msDS-PasswordReversibleEncryptionEnabled
- msDS-PasswordSettingsPrecedence
Precedence(優先順位)属性には特に注意してください。この値によって、現在のパスワードポリシーの優先度が決まります。1つのオブジェクトに複数のFGPPポリシーが割り当てられている場合、Precedenceフィールドの値が最も小さいポリシーが適用されます。
補足:
- 同じPrecedence値を持つ2つのポリシーがユーザーに割り当てられている場合は、GUIDが小さい方のポリシーが適用されます。
- ユーザーに複数のポリシーが割り当てられており、一方がADセキュリティグループ経由で有効化され、もう一方がユーザーアカウントに直接割り当てられている場合、アカウントに直接割り当てられたポリシーが優先されます。
次に、ポリシーを適用する対象として、Direct Applies Toセクションにグループまたはユーザーを追加します(今回はDomain Admins)。PSOポリシーは個々のユーザーではなくグループに適用することをお勧めします。設定を保存すると、このパスワードポリシーがDomain Adminsグループのすべてのメンバーに適用されます。

「Active Directoryユーザーとコンピューター」(dsa.msc)コンソール(「高度な機能」オプションを有効化)を起動し、Domain Adminsグループに属する任意のユーザーのプロパティを開きます。「属性エディター」タブに移動し、「フィルター」フィールドで「構築済み(Constructed)」を選択します。
msDS-ResultantPSOユーザー属性を探します。この属性には、そのユーザーに現在有効になっているパスワードポリシーが表示されます(例:CN=Password Policy for Domain Admin,CN=Password Settings Container,CN=System,DC=woshub,DC=com)。

また、dsgetツールを使って、ユーザーに現在適用されているPSOポリシーを確認することもできます。
dsget user "CN=Max,OU=Admins,DC=woshub,DC=com" –effectivepso

PowerShellでFGPP(PSO)を構成する方法
PSOパスワードポリシーはPowerShellでも管理できます(Active Directory PowerShellモジュールが必要です)。
新しいPSOを作成するには、New-ADFineGrainedPasswordPolicyコマンドレットを使用します。
New-ADFineGrainedPasswordPolicy -Name "Admin PSO Policy" -Precedence 10 -ComplexityEnabled $true -Description "Domain password policy for admins" -DisplayName "Admin PSO Policy" -LockoutDuration "0.20:00:00" -LockoutObservationWindow "0.00:30:00" -LockoutThreshold 6 -MaxPasswordAge "12.00:00:00" -MinPasswordAge "1.00:00:00" -MinPasswordLength 8 -PasswordHistoryCount 12 -ReversibleEncryptionEnabled $false
続いて、作成したパスワードポリシーをユーザーグループに割り当てます。
Add-ADFineGrainedPasswordPolicySubject "Admin PSO Policy" -Subjects "Domain Admins"

PSOポリシーの設定を変更する場合:
Set-ADFineGrainedPasswordPolicy "Admin PSO Policy" -PasswordHistoryCount:"12"
ドメイン内のすべてのFGPPポリシーを一覧表示する場合:
Get-ADFineGrainedPasswordPolicy -Filter *

特定のユーザーに適用されている実効的なパスワードポリシーを取得するには、Get-ADUserResultantPasswordPolicyコマンドを使用します。
Get-ADUserResultantPasswordPolicy -Identity jsmith

ユーザーに適用されているPSOの名前は、Nameフィールドで確認できます。
Active Directoryグループに割り当てられたPSOポリシーの一覧を表示するには、Get-ADGroupコマンドレットを使用します。
Get-ADGroup "Domain Admins" -properties * | Select-Object msDS-PSOApplied
Default Domain Policy GPOによる既定のパスワードポリシー設定を表示するには、以下のコマンドを実行します。
Get-ADDefaultDomainPasswordPolicy
なお、きめ細かいパスワードポリシーを使用していても、P@ssw0rdやPa$$w0rdのような弱いパスワードをユーザーが設定してしまう可能性はあります。ドメイン内の脆弱なユーザーパスワードについては、定期的な監査を実施することをお勧めします。
-
Windows 10でActive Directoryを有効にする方法【RSAT導入から設定まで解説】
Active Directoryは、Windows Server環境を管理するための重要なツールです。ネットワーク上のユーザーやリソースへのアクセス権限を、管理者が制御・付与するために使用されます。Windows PCにはデフォルトではインストールされていませんが、Microsoftの公式サイトから入手して、自分のデバイスにインストールすることが可能です。 「Windows 10でActive Directoryをどう使えばいいのか分からない」とお悩みの方も多いのではないでしょうか。本記事では、Windows 10でActive Directoryを有効にする方法を、初心者の方にも分かりやすく
-
Active Directory Server 2016/2019でユーザーの最終パスワード変更日を確認する方法
Active Directoryでユーザーの最終パスワード変更日を確認したい場合は、ぜひこのチュートリアルをご覧ください。本記事では、Active Directory上でユーザーが最後にパスワードを変更した日時を確認する2つの方法を、GUI操作とコマンドラインの両方の観点から詳しく解説します。 Active Directory 2019/2016/2012でユーザーの最終パスワード変更日を確認する手順 方法1:WindowsのGUI(画面操作)から確認する Active Directoryユーザーの最終パスワード変更日を画面操作で確認するには、以下の手順に従ってください。 手順1. 「Acti