Windowsのセキュリティポリシーをコマンドプロンプトで確認するには、セキュリティ設定の書き出しはsecedit /export、監査サブカテゴリの確認はauditpol /get、適用GPOの確認はgpresultを使い分けます。seceditの出力1つで、Windowsの全保護機能やすべてのアカウントの実効設定を確認できるわけではありません。
この記事は、権限のある管理担当者が設定を調査する手順です。掲載コマンドはセキュリティ設定の変更を目的とせず、エクスポート例ではローカルに確認用ファイルとログを作成します。会社・学校の端末では管理手順に従い、権限不足を回避するために保護や管理設定を無効化しないでください。
確認したい内容とコマンドの対応
| 確認したいこと | 使用するもの | 注意点 |
|---|---|---|
| セキュリティデータベースの設定 | secedit /export | ファイルへ書き出す。ローカルGPOだけの定義一覧や、全セキュリティ機能の状態一覧ではない。 |
| ドメインとローカルのセキュリティ設定を統合した出力 | secedit /export /mergedpolicy | 設定の出所となったGPO名を一覧化する機能ではない。 |
| 現在の監査ポリシーのサブカテゴリ | auditpol /get /subcategory:* | システム監査ポリシーの照会。監査ログのイベントが実際に生成された証拠とは別。 |
| 適用されたコンピューターGPOの概要 | gpresult /scope computer /r | GPO名の表示だけで個別設定の採用を断定しない。 |
| ドメインユーザーごとのパスワード規則 | AD管理者による結果セットの確認 | 細かい設定が可能なパスワードポリシー(FGPP)があるため、端末の出力だけでは決まらない。 |
コマンドの根拠はsecedit /export、auditpol /get、gpresultです。対応するWindowsのバージョンや実行権限は、それぞれの公式資料も確認してください。
コマンドプロンプトを開く
スタートで「cmd」を検索し、管理権限が必要な調査は、許可された管理者アカウントで「管理者として実行」を選びます。Windows Terminalを使う場合も、以下のバッチを実行するタブはコマンドプロンプト(cmd.exe)です。PowerShellに同じ構文を貼り付けないでください。
UACで別の管理者アカウントを指定した場合、環境変数やユーザー側の確認対象はその管理者のものになります。誰の権限で、どの端末を調べているかを記録します。コマンドが見つからない場合はOSのエディションと公式の対応範囲を確認し、非公式の「ポリシーエディター追加ツール」は使いません。
seceditで設定を確認用ファイルへ書き出す
既存のファイルを上書きしない例
次の内容を任意の作業フォルダーにExportSecurityPolicy.cmdという名前で保存し、上で開いたコマンドプロンプトから実行します。実行アカウントの一時フォルダー内に新しい作業フォルダーを作ります。同名フォルダーが存在する場合や、作成・書き出しに失敗した場合は中止します。業務では保存先と保存期間を組織のルールに合わせてください。
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "ERRORLEVEL="
set "OUTDIR=%TEMP%\SecurityPolicyReview-%RANDOM%-%RANDOM%"
if exist "%OUTDIR%" (
echo Output path already exists. Nothing was exported.
exit /b 1
)
md "%OUTDIR%"
if errorlevel 1 (
echo Cannot create output directory.
exit /b 1
)
secedit /export /cfg "%OUTDIR%\security-policy.inf" /log "%OUTDIR%\export.log"
set "RC=%ERRORLEVEL%"
if not "%RC%"=="0" (
echo Export failed. Exit code: %RC%
echo Check log: "%OUTDIR%\export.log"
exit /b %RC%
)
if not exist "%OUTDIR%\security-policy.inf" (
echo Export file was not found. Check the log.
exit /b 1
)
echo Review file: "%OUTDIR%\security-policy.inf"
echo Export log: "%OUTDIR%\export.log"
endlocal
成功表示だけで終えず、表示された場所のINFとログを確認します。メモ帳などでINFを開き、想定するセクションがあるかを読みます。調査中は内容を書き換えて保存しません。ファイルがあることだけで今回の出力が正しいとは判断せず、実行結果・時刻・ログを併せて確認してください。
/dbを省略した場合は既定のシステムセキュリティデータベースが対象です。特定の保存済みデータベースを/dbで指定した結果を、現在の端末の状態と取り違えないでください。また、エクスポートは設定を書き出す操作で、画面への単純表示ではなくファイルとログを残します。
ドメイン参加端末ではmergedpolicyの目的を確認する
ドメインとローカルのセキュリティ設定を統合して書き出す必要がある場合、上のバッチ内のsecedit行に/mergedpolicyを追加します。別の実行で作られる新しいフォルダーへ保存し、通常の出力と統合出力を取り違えないよう記録してください。
secedit /export /mergedpolicy /cfg "%OUTDIR%\security-policy.inf" /log "%OUTDIR%\export.log"
これは上の.cmd内の1行を置き換える例です。OUTDIRが未設定の別ウィンドウへ、この行だけ貼り付けないでください。統合出力でも、設定の出所・優先順位・MDM管理・Defenderの実行状態まで網羅するものではありません。適用元が必要なら管理者がGPMCの結果セットや管理サービス側の報告と照合します。
INFの項目を正しく読む
パスワードポリシー
以下は読み方を示す架空の抜粋です。既定値、推奨値、実機の検証結果ではありません。これを設定用テンプレートとして適用しないでください。
[System Access]
MinimumPasswordAge = 1
MaximumPasswordAge = 42
MinimumPasswordLength = 8
PasswordComplexity = 1
PasswordHistorySize = 24
| 項目 | 読み方 |
|---|---|
| MinimumPasswordAge | 通常、パスワード変更までに必要な最短期間(日)。 |
| MaximumPasswordAge | 通常、パスワードを使用できる最長期間(日)。特殊値は表示形式と公式仕様を照合する。 |
| MinimumPasswordLength | 対象のポリシーが要求する最小文字数。全サービス・全ユーザーの規則を表すものではない。 |
| PasswordComplexity | 複雑性要件の有効・無効。1なら「大小英字・数字・記号のすべてが必須」ではない。 |
| PasswordHistorySize | 過去に使ったパスワードの再利用を制限する履歴数。 |
標準の複雑性要件では、アカウント名などに関する条件に加え、5カテゴリのうち3カテゴリ以上の文字を含むかを確認します。カテゴリには大文字、小文字、数字、所定の非英数字、大文字・小文字に分類されないUnicodeのアルファベット文字があります。独自のパスワードフィルターが追加要件を課す場合もあります。詳細はMicrosoftのPassfilt.dllの説明を参照してください。
ポリシーを読んだだけでは、既存の全パスワードが現在の条件を満たしているとは証明できません。作成・変更時の検査と、既存アカウントの設定を区別します。ドメインユーザーにはグループ別・ユーザー別のFGPPが適用される場合があるため、管理者はパスワードポリシーの結果セットを確認します。MicrosoftアカウントやMicrosoft Entra IDのパスワード、Windows HelloのPINも、このINFだけで判断しません。
アカウントロックアウトの項目名
セキュリティテンプレートのキー名と、管理画面の日本語ラベルや別ツールのプロパティ名は同じとは限りません。旧版にあったLockoutThreshold、ResetLockoutCounterを、そのままINFのキー名として探す説明は訂正します。
| INFのキー | 確認する内容 |
|---|---|
| LockoutBadCount | ロックアウトまでの失敗回数。0はこの閾値によるロックアウトを行わない。 |
| ResetLockoutCount | 失敗回数をリセットするまでの期間に関する設定。 |
| LockoutDuration | ロックアウト期間。INFの仕様では-1が管理者による解除まで継続を表す。 |
管理画面やCSPでは別の数値表現が使われる場合があります。画面の0とINFの0を、項目名だけで同一視しないでください。単位・特殊値はセキュリティテンプレートのロックアウト仕様と対象画面の説明を照合します。確認目的で故意にパスワードを連続入力して、利用者をロックアウトさせる必要はありません。
ユーザー権利とSID
[Privilege Rights]には、ログオンに関する権利などと、割り当て先のアカウント・グループのSIDが表示されることがあります。SIDがあることだけで不正なアカウントとは判断しません。グループ所属、許可と拒否の関係、別の制限も関係するため、1行だけで特定ユーザーのログオン可否を断定しないでください。
監査設定はauditpolで確認する
詳細な監査のサブカテゴリを確認する場合は、権限のある担当者が次を実行します。/getは照会であり、監査を有効化・無効化する操作ではありません。
auditpol /get /subcategory:*
ユーザーを指定していないため、システム監査ポリシーを照会します。「成功」「失敗」などの設定を確認し、目的の操作に対応するサブカテゴリを調べます。ユーザー別の監査設定は別途確認が必要です。監査設定が有効でも、対象イベントの条件やログ保存の状態によって、期待したイベントを見つけられない場合があります。
適用GPOはgpresultで確認する
gpresult /scope computer /r
これはコンピューター側の結果の要約です。GPOが適用された一覧にあることと、そのGPO内の特定の設定が最終的に採用されたことは別です。競合や継承が疑われる場合は、管理者がGPMCのグループポリシーの結果などで個別設定まで確認します。
ユーザー側を調べる場合は、対象ユーザーのセッションでgpresult /scope user /rを使います。別管理者として実行すると調査対象を取り違える場合があります。GPOの結果はIntuneなどすべての管理方式をまとめて表示するものではありません。
export・import・configureを混同しない
| 操作 | 役割 |
|---|---|
| secedit /export | データベース内のセキュリティ設定を書き出す。 |
| secedit /import | テンプレートをセキュリティデータベースに取り込む。これだけで現在のシステムへ適用したことにはならない。 |
| secedit /configure | データベース内の設定を使って、現在のシステム設定を構成する。調査だけの操作ではない。 |
旧版の「importでポリシー変更が完了する」という説明を訂正します。公式仕様はsecedit /importとsecedit /configureで確認できます。この記事では設定変更コマンドの実行例は掲載しません。
エクスポートファイルは調査記録として役立ちますが、端末全体を完全に元へ戻せるバックアップではありません。変更が必要な場合は、対象設定、適用元、影響、承認、復旧方法を別途確認します。調査のためだけにgpupdate /force、再起動、一括テンプレート適用を行う必要はありません。
エラーや想定外の結果が出た場合
| 状況 | 確認すること |
|---|---|
| アクセスが拒否された | 実行アカウントと必要権限、組織の制限、出力先の権限を確認。管理者権限だけが原因と断定しない。 |
| ファイルが見つからない | 実際に表示された保存先、終了コード、export.logを確認。別アカウントのTEMPと混同しない。 |
| 項目が見つからない | 別機能・別形式の名称ではないか、対象データベースとareas指定を確認。見つからないだけで無効と判断しない。 |
| 表示が組織の想定と違う | 対象端末、調査時刻、GPO適用結果、管理元、ユーザー種別を確認。確認前に値を書き換えない。 |
INF・ログには、端末のセキュリティ構成やアカウント・グループの識別情報が含まれる場合があります。公開掲示板や無関係な外部サービスへ丸ごと貼り付けず、必要な箇所だけを組織が承認する窓口で共有してください。調査終了後の保存・削除も、証跡の保管ルールに従います。
まとめ
セキュリティポリシーの確認は、seceditの書き出し、auditpolの監査照会、gpresultの適用結果を目的に応じて使い分けます。INFの値と管理画面の表示、ローカルアカウントとドメインユーザー、設定の取得と実際の変更を分けることが重要です。
公式資料確認日:2026年10月20日。掲載例は構文と資料の静的確認に基づきます。今回、Windows実機でのエクスポート・ポリシー変更は行っていません。


コメント