Windows Server 2022 のドメイン環境で gpresult や GPMC の「Group Policy Results」を実行すると 0x80070534 で失敗する場合、原因の多くは GPO が削除済みアカウントの SID を参照していることです。孤立 SID の探し方と修正手順を具体例でまとめます。
症状:GPO 結果(gpresult / Group Policy Results)が 0x80070534 で止まる
ドメイン参加済みの Windows Server 2022/クライアントで、次のような操作をしたときに「GPO の結果(RSoP)」が取得できず、エラーコード 0x80070534 が表示されるケースがあります。
| 操作 | 現象 | よくある勘違い | 本質的な原因の方向性 |
|---|---|---|---|
| gpresult /r, /h, /x | 途中で失敗し結果が出ない/一部欠落する | 「OS の不具合」「再インストールで直る」 | GPO が参照する SID を名前解決できない |
| GPMC の Group Policy Results | ウィザードは進むが結果取得でエラー | 「WMI/RPC/Firewall の問題」 | 不明な SID(孤立 SID)がポリシー内に残っている |
| rsop.msc | 特定カテゴリだけ取得できない/設定の一部にエラー | 「端末ローカルが壊れている」 | セキュリティ設定や GPP の参照先が失効している |
結論から言うと、0x80070534 は「アカウント名 ↔ SID の対応が取れない」系のエラーです。GPO のどこかに「もう存在しないユーザー/グループ/コンピューター」を指す SID が残っていると、結果の生成(RSoP)でつまずきやすくなります。
0x80070534 の意味:SID の名前解決ができない(No mapping)
0x80070534 は Windows の Win32 エラーで、一般的に ERROR_NONE_MAPPED(マッピングなし) として扱われます。分かりやすく言い換えると、次の状態です。
- GPO の設定や権限が「SID(S-1-5-21-…)」を参照している
- その SID を Active Directory で引けない(削除済み、別ドメイン、移行後に変化、復元不可、参照が崩壊など)
- 結果出力(gpresult / Group Policy Results)が途中で破綻する
重要なのは、これは「GPO の結果を取るツール側が悪い」というより、GPO が参照するセキュリティプリンシパル(ユーザー/グループ/コンピューター)に整合性がない状態が根っこにある点です。
なぜ「GPO の結果」で失敗しやすいのか
gpresult や GPMC の「Group Policy Results」は、適用された GPO やその中身を読み取り、誰に、どの設定が、どの GPO 由来で適用されたかをまとめて表示します。このとき、内部では次のような「名前解決」が多発します。
- GPO のセキュリティフィルタリング/委任(ACL)に書かれた SID を「人が読める名前」に変換
- セキュリティ設定(ユーザー権利の割り当て、制限されたグループ等)に含まれる SID を解決
- GPP(Group Policy Preferences)の ACL 設定やローカルグループ操作で参照される対象を解決
つまり「GPO の適用そのもの」は一部の設定が無視されて進む場合があっても、結果をレポート化する段階で SID が解決できずに止まる、という動きが起きやすいのが特徴です。
原因の典型:GPO 内に「孤立 SID(不明なアカウント)」が残っている
0x80070534 の本命はほぼこれです。孤立 SID は次のような経緯で生まれます。
| 発生パターン | 具体例 | なぜ残るのか | 現場での起き方 |
|---|---|---|---|
| アカウント削除 | 退職者ユーザー、旧サーバーのコンピューターアカウント削除 | GPO 側の参照は自動で掃除されないことがある | ACL やセキュリティ設定に「Account Unknown」 |
| ドメイン移行/フォレスト移行 | 旧ドメインのグループを参照したまま新ドメイン運用 | SID が変わる(別セキュリティプリンシパル扱い) | 旧 SID が残留して結果取得で失敗 |
| GPO のコピー/テンプレ流用 | 過去の GPO をコピーして運用 | 昔の参照先が「そのまま」引き継がれる | 何年も後に問題が顕在化 |
| 特定の管理者だけが知る設定 | ユーザー権利の割り当て、Restricted Groups、GPP の ACL | GUI 上で気づきにくい箇所に残る | ログに「Cannot find S-1-…」 |
相談の中で winlogon.log 等に「Cannot find S-1-…」が出ているなら、原因はかなり絞れます。その SID が「存在しない」か「参照がズレている」かのどちらかなので、後は どの GPO が、どの設定で、その SID を参照しているかを突き止めて掃除するだけです。
最短で直すための全体フロー
闇雲に GPO を眺めるのではなく、次の順で進めると迷いにくく、復旧が速いです。
| 目的 | やること | 使うもの | 成果物 |
|---|---|---|---|
| 孤立 SID の存在確認 | 不明なアカウント/SID 文字列が出ていないか確認 | GPMC(委任/セキュリティフィルター) | 怪しい GPO の候補 |
| 犯人カテゴリの特定 | どの設定が壊しているかを絞る | rsop.msc / gpresult / Group Policy Operational | 「設定種別」まで絞り込み |
| SID の正体確認 | AD に存在するか、削除済みかを調べる | PowerShell(ActiveDirectory モジュール) | 孤立 SID かどうか確定 |
| GPO から除去・置換 | 該当設定の参照を削除、または正しいグループへ差し替え | GPMC / GPO エディタ / GPP | 再実行で 0x80070534 が消える |
最初に確認しておきたいポイント(切り分けの精度が上がる)
0x80070534 の本筋は「SID 解決」ですが、同じ「GPO 結果が取れない」に見えて別要因のこともあります。再調査を減らすため、最初に次を押さえます。
- どこで実行しているか(対象端末上の gpresult か、管理端末から GPMC で取得しているか)
- どのユーザー/どのコンピューターの結果か(特定ユーザーだけ、特定 OU だけ、全体か)
- 権限(管理端末からの Group Policy Results は、対象への WMI/RPC/リモート権限が絡む)
特に管理端末から GPMC でリモート取得する場合、権限・通信の問題は別エラー(アクセス拒否や RPC エラー等)で出ることが多いです。0x80070534 が出ているなら、やはり SID の名前解決ができない方向を優先して追うのが近道です。
| エラーの例 | 意味の方向性 | 優先して疑うこと |
|---|---|---|
| 0x80070534 | SID マッピング不可 | 孤立 SID、不明なアカウント参照 |
| 0x80070005 | アクセス拒否 | 権限不足、WMI/DCOM/ローカル管理権限 |
| 0x800706BA | RPC サーバー利用不可 | Firewall、名前解決、RPC 関連サービス |
GPMC で「不明なアカウント/SID だけのエントリ」を洗い出す
孤立 SID はまず GPO の権限まわりに出やすいです。GPMC で対象 GPO を開き、次を重点的に確認します。
- Delegation(委任)
- Security Filtering(セキュリティ フィルター)
- 必要に応じて「詳細」から GPO のセキュリティ(ACL)全体
ここに「不明なアカウント」や「SID の文字列だけ(S-1-5-21-…)」が表示されている場合は、それだけで原因候補です。
修正の基本
- 明らかに不要なエントリなら 削除する
- 本来必要な権限なら 正しいグループへ置換する(個人ユーザーではなくグループ運用が推奨)
- 削除・置換後は GPO を閉じて再度開き、表示が改善しているかを確認する(キャッシュに惑わされない)
ただし、Delegation / Security Filtering が綺麗でも、GPO の「中身(セキュリティ設定や GPP)」に孤立 SID が残っていることはよくあります。次の手順で「どの設定が壊しているか」を当てにいきます。
rsop.msc と gpresult で「どの設定カテゴリが壊しているか」を絞る
端末側での切り分けとして、rsop.msc は非常に有効です。GUI のツリーで「どのカテゴリで問題が出ているか」が見えやすく、場合によっては赤いエラー表示で Source GPO(元の GPO)まで辿れます。
特に壊れやすいカテゴリ
- コンピューターの構成 > Windows の設定 > セキュリティの設定
- ローカル ポリシー > ユーザー権利の割り当て
- 制限されたグループ(Restricted Groups)
- グループ ポリシーの基本設定(GPP)のローカルユーザーとグループ、ファイル/レジストリ/サービスの ACL 操作
rsop.msc で赤いエラーが見えない場合でも、gpresult で詳細出力を取るとヒントが出ることがあります。
代表的な実行例です(対象端末で管理者として実行するのが無難です)。
gpresult /r
gpresult /scope computer /v
gpresult /scope user /v
gpresult /h C:\Temp\gpresult.html /f
HTML 出力は、GPO 名や適用可否がまとまって見やすいので、後工程(犯人 GPO の特定)に使いやすいです。
イベントログで「どの SID が原因か」を掴む
孤立 SID 問題は、ログに「SID が見つからない」「名前解決できない」といった形で出ることがあります。確認する場所を先に固定すると、ログ迷子になりません。
| 見る場所 | ログ名 | 期待できる情報 | 補足 |
|---|---|---|---|
| 対象端末 | Microsoft-Windows-GroupPolicy/Operational | GPO 処理の流れ、拡張機能(CSE)単位の失敗 | 「どの種別で失敗したか」を掴みやすい |
| 対象端末 | System / Application | GPP やセキュリティ設定適用失敗のヒント | GPP 由来のイベントが出ることがある |
| DC / 対象端末 | Security(環境により) | セキュリティポリシー適用に絡むイベント | 環境によっては Event ID 1202 が手掛かりになることがある |
相談の状況のように デバッグログで「Cannot find S-1-…」が取れているなら、まずはその SID を起点に調査を進めるのが最短です。SID が判明している時点で、原因の半分は解決しています。
SID が AD に存在するかを PowerShell で確認する
SID が分かったら、「それが AD にいるのか/いないのか」を確定させます。ここが分かれると、対応が明確になります。
- AD に見つからない → 孤立 SID 確定(GPO 側の参照を削除・置換)
- AD にいる → 参照先を更新すべきケース(移行直後の参照ズレ、想定外のオブジェクトを参照している等)
ActiveDirectory モジュールが使える端末(DC か管理端末)で、次のように検索します。
$sid = "S-1-5-21-0000000000-0000000000-0000000000-1987"
# ユーザー / グループ / コンピューターを個別に当てる(見つかれば正体が分かりやすい)
Get-ADUser -Identity $sid -ErrorAction SilentlyContinue
Get-ADGroup -Identity $sid -ErrorAction SilentlyContinue
Get-ADComputer -Identity $sid -ErrorAction SilentlyContinue
# 種別不明なら LDAPFilter で広く検索(最終的に 0 件なら孤立 SID の可能性が高い)
Get-ADObject -LDAPFilter "(objectSid=$sid)" -Properties objectSid
削除済みオブジェクトの可能性も確認する
「最近削除したはず」「誰かが片付けたかもしれない」という状況なら、Active Directory ごみ箱が有効な環境では 削除済みオブジェクトとして残っていることがあります。削除済みとして見つかるなら、GPO 修正前に一時的に復元して検証する、というアプローチも取れます(運用ポリシーに合わせて慎重に実施してください)。
$sid = "S-1-5-21-0000000000-0000000000-0000000000-1987"
Get-ADObject -IncludeDeletedObjects -LDAPFilter "(objectSid=$sid)" -Properties objectSid, isDeleted, distinguishedName
削除済みとして出てくる場合でも、最終的には GPO がその SID を参照し続ける限り再発し得ます。根治は「GPO 側の参照の掃除」です。
「その SID を参照している GPO」を高速に特定する実務テク
一番つらいのは「SID は分かったが、どの GPO のどの設定が参照しているか分からない」状態です。ここで時間を消耗しがちなので、検索で機械的に当てる方法を用意しておくと強いです。
GPO レポート(XML)を一括出力して SID を全文検索する
GPMC が入っている端末なら、PowerShell で全 GPO のレポートを XML として吐き出し、SID を検索できます。これは GUI を開かずに犯人 GPO を炙り出せるので、規模が大きいほど効果が出ます。
# 事前にフォルダ作成
$reportDir = "C:\Temp\GPOReport"
New-Item -Path $reportDir -ItemType Directory -Force | Out-Null
# すべての GPO を XML で出力
Get-GPO -All | ForEach-Object {
$out = Join-Path $reportDir ($_.Id.Guid + ".xml")
Get-GPOReport -Guid $_.Id -ReportType Xml -Path $out
}
# SID を全文検索
$sid = "S-1-5-21-0000000000-0000000000-0000000000-1987"
Select-String -Path (Join-Path $reportDir "*.xml") -Pattern $sid
ヒットした XML のファイル名が GPO の GUID なので、次のように GUID から GPO 名へ引けます。
$guid = "{AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE}"
Get-GPO -Guid $guid
この方法は、Delegation / Security Filtering だけでなく、GPO レポートに載る範囲の設定にも強いのが利点です。
SYSVOL のテキストファイルを直接検索して当てる(セキュリティ設定・GPP に強い)
セキュリティ設定や GPP は、SYSVOL 配下にテキストとして残っているものが多く、SID を直接検索できます。特に ユーザー権利の割り当て/制限されたグループ/GPP のローカルグループ操作はここで見つけやすいです。
| 設定の種類 | 典型的な保存場所(SYSVOL) | ファイル例 | ポイント |
|---|---|---|---|
| セキュリティ設定(権利割り当て等) | …\Policies\{GPO-GUID}\Machine\Microsoft\Windows NT\SecEdit\ | GptTmpl.inf | [Privilege Rights] に SID が並ぶことがある |
| 制限されたグループ | 同上(SecEdit 系) | GptTmpl.inf | 古い参照が残りやすい |
| GPP(ローカルユーザーとグループ) | …\Policies\{GPO-GUID}\Machine\Preferences\Groups\ | Groups.xml | 「ローカル Administrators に追加」等で残りやすい |
| GPP(ファイル/フォルダー、レジストリ、サービス等) | …\Policies\{GPO-GUID}\Machine\Preferences\(各種) | Files.xml / Registry.xml / Services.xml など | ACL 設定に不明 SID が混ざることがある |
検索例(ドメイン名は環境に合わせて置換してください)。
$sid = "S-1-5-21-0000000000-0000000000-0000000000-1987"
$polRoot = "\\contoso.local\SYSVOL\contoso.local\Policies"
# テキストになりやすい拡張子に絞る(.pol はバイナリなので別手段推奨)
Get-ChildItem $polRoot -Recurse -File -Include *.inf,*.xml,*.txt,*.ini |
Select-String -Pattern $sid
ヒットしたパスに {GPO-GUID} が含まれるので、GUID を使って GPO 名を特定できます。もしヒットが大量に出る場合は、SID の末尾(RID)だけで検索すると誤検知が増えるため、必ず完全な SID 文字列で検索するのが安全です。
設定別:孤立 SID を除去・置換する具体的な直し方
犯人 GPO と設定カテゴリが分かったら、あとは「そこから不明 SID を消す」作業です。作業ミスを減らすため、よくある箇所をパターン化しておきます。
| よくある犯人 | どこで直すか | 直し方の要点 | 注意点 |
|---|---|---|---|
| Delegation / Security Filtering | GPMC | 「不明なアカウント」や SID 表記のエントリを削除/正しいグループに置換 | 適用対象が変わるので、置換前に影響範囲を確認 |
| ユーザー権利の割り当て | GPO エディタ コンピューターの構成 > Windows の設定 > セキュリティの設定 > ローカル ポリシー | 該当権利から「不明なアカウント」を削除し、必要なら新しいグループを追加 | サーバーのログオン権限等に絡むと影響が大きい |
| 制限されたグループ(Restricted Groups) | GPO エディタ セキュリティの設定 | 対象グループのメンバー一覧に残った不明 SID を削除/置換 | ローカル Administrators などは特に慎重に |
| GPP:ローカルユーザーとグループ | GPO エディタ 基本設定 > コントロール パネルの設定 | 「このグループのメンバー」等に不明 SID がいないか確認し修正 | 「置換」アクションは意図せず上書きするので運用方針に注意 |
| GPP:ファイル/レジストリ/サービスの ACL | GPO エディタ 基本設定(Files/Registry/Services など) | セキュリティ(ACL)設定内の不明 SID を削除/正しい主体へ置換 | ACL を変えるとアクセス権が変わるため、変更前後で差分確認 |
「見つからない SID を削除してよいか」の判断基準
不明な SID を見つけると不安になりますが、判断基準を持つと作業が進みます。
- その SID が AD に存在しない(検索で 0 件)なら、少なくとも “その SID の主体はもういない” ので、参照のまま残す合理性は低い
- ただし、置換すべきケース(例:本来は「部署A_端末管理者」グループが必要だった等)もあるため、削除前に「その設定の目的」を確認する
- 迷ったら、個人ユーザーではなく ロールベースのグループに寄せて置換する(運用の再発防止にもなる)
修正後に必ずやる検証(直ったつもりを防ぐ)
GPO の修正は「適用」だけでなく「結果取得」も通ることがゴールです。次のセットで検証すると抜け漏れが減ります。
| 確認内容 | コマンド/操作 | 期待する状態 |
|---|---|---|
| GPO 再適用 | gpupdate /force | 致命的エラーなく完了 |
| 結果取得(ローカル) | gpresult /h C:\Temp\gpresult.html /f | 0x80070534 が出ず HTML が生成される |
| 結果取得(GPMC) | Group Policy Results を再実行 | ウィザードが完了し、設定が表示される |
| ログ確認 | GroupPolicy/Operational を確認 | 同じ SID のエラーが再発していない |
もし 0x80070534 が残る場合、孤立 SID が複数あるか、別の GPO にも同種の参照が残っている可能性が高いです。SID を起点に「GPO レポート全文検索」または「SYSVOL 検索」をもう一段広げると、次の犯人が見つかりやすくなります。
再発防止:孤立 SID を生みにくい運用に寄せる
孤立 SID 問題は、発生すると追跡が面倒なわりに、運用でかなり減らせます。現場で効く対策をまとめます。
- GPO に個人ユーザーを直接入れない(権利付与やローカル Administrators への追加は、必ず管理用グループ経由にする)
- GPO テンプレ流用時は “委任・セキュリティフィルター・GPP の ACL” を見直す(過去資産を持ち込むほど孤立 SID が混ざりやすい)
- 退職・廃止時のチェックリストに「GPO 参照の有無」を入れる(特に Restricted Groups とユーザー権利割り当て)
- 定期点検を自動化する(GPO レポートを XML 出力して “S-1-5-21-” を検索し、棚卸しする)
一度「孤立 SID を探す仕組み」ができると、今回のような 0x80070534 だけでなく、権限の意図しない残留や、古い設定の混入にも早めに気づけるようになります。
よくある質問
GPO の適用はされているのに、結果(gpresult)だけが 0x80070534 で失敗します
起こり得ます。適用処理は「一部の拡張機能(CSE)が失敗しても全体が継続する」場合がありますが、結果出力は「参照関係を解決して一覧化する」過程で SID の解決に失敗すると止まりやすいです。ログに SID が出ているなら、参照の掃除を優先してください。
GPMC の委任やセキュリティフィルターに不明アカウントが見当たりません
その場合、犯人は GPO の中身(セキュリティ設定、GPP のローカルグループ操作、ACL 操作など)にいることが多いです。GPO レポート(XML)一括出力で SID を検索する方法か、SYSVOL の *.inf / *.xml を直接検索する方法が効きます。
SID が AD に存在します。それでも 0x80070534 になります
「その SID が存在する」ことと「参照先が正しい」ことは別です。移行・統合直後で参照がズレている、別ドメインの主体を想定している、あるいは削除済みオブジェクトとして残骸があるなど、状況によって対応が変わります。まずは、該当 SID を参照している設定が「本来どの主体を指すべきか」を確認し、正しいグループへ置換するのが現実的です。
修正後も別の SID でエラーが続きます
孤立 SID が複数残っている可能性が高いです。SID を一つずつ潰すのも手ですが、GPO レポートの全文検索で “S-1-5-21-” をまとめて洗い出すと、同時に清掃できて再発も減ります。
まとめ:0x80070534 は「GPO が参照する消えた SID」を片付けるのが最短
Windows Server 2022 環境で gpresult / GPMC の Group Policy Results が 0x80070534 になるとき、根本原因は SID の名前解決ができない参照(孤立 SID)であることが多いです。ログに「Cannot find S-1-…」が出ているなら、すでに強い手掛かりが揃っています。
AD に SID が存在するかを確認し、GPO レポート(XML)や SYSVOL 検索で参照元 GPO を特定し、不明 SID を削除・置換する。この流れで進めれば、「再インストールで祈る」よりも確実に、短い手戻りで解決できます。

コメント