Windows Server 2022のgpresult/GPMC「GPO結果」で0x80070534が出る原因と対処法:孤立SIDの特定・修正手順

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 の ACLGUI 上で気づきにくい箇所に残るログに「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 の名前解決ができない方向を優先して追うのが近道です。

エラーの例意味の方向性優先して疑うこと
0x80070534SID マッピング不可孤立 SID、不明なアカウント参照
0x80070005アクセス拒否権限不足、WMI/DCOM/ローカル管理権限
0x800706BARPC サーバー利用不可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/OperationalGPO 処理の流れ、拡張機能(CSE)単位の失敗「どの種別で失敗したか」を掴みやすい
対象端末System / ApplicationGPP やセキュリティ設定適用失敗のヒント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 FilteringGPMC「不明なアカウント」や SID 表記のエントリを削除/正しいグループに置換適用対象が変わるので、置換前に影響範囲を確認
ユーザー権利の割り当てGPO エディタ
コンピューターの構成 > Windows の設定 > セキュリティの設定 > ローカル ポリシー
該当権利から「不明なアカウント」を削除し、必要なら新しいグループを追加サーバーのログオン権限等に絡むと影響が大きい
制限されたグループ(Restricted Groups)GPO エディタ
セキュリティの設定
対象グループのメンバー一覧に残った不明 SID を削除/置換ローカル Administrators などは特に慎重に
GPP:ローカルユーザーとグループGPO エディタ
基本設定 > コントロール パネルの設定
「このグループのメンバー」等に不明 SID がいないか確認し修正「置換」アクションは意図せず上書きするので運用方針に注意
GPP:ファイル/レジストリ/サービスの ACLGPO エディタ
基本設定(Files/Registry/Services など)
セキュリティ(ACL)設定内の不明 SID を削除/正しい主体へ置換ACL を変えるとアクセス権が変わるため、変更前後で差分確認

「見つからない SID を削除してよいか」の判断基準

不明な SID を見つけると不安になりますが、判断基準を持つと作業が進みます。

  • その SID が AD に存在しない(検索で 0 件)なら、少なくとも “その SID の主体はもういない” ので、参照のまま残す合理性は低い
  • ただし、置換すべきケース(例:本来は「部署A_端末管理者」グループが必要だった等)もあるため、削除前に「その設定の目的」を確認する
  • 迷ったら、個人ユーザーではなく ロールベースのグループに寄せて置換する(運用の再発防止にもなる)

修正後に必ずやる検証(直ったつもりを防ぐ)

GPO の修正は「適用」だけでなく「結果取得」も通ることがゴールです。次のセットで検証すると抜け漏れが減ります。

確認内容コマンド/操作期待する状態
GPO 再適用gpupdate /force致命的エラーなく完了
結果取得(ローカル)gpresult /h C:\Temp\gpresult.html /f0x80070534 が出ず 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 を削除・置換する。この流れで進めれば、「再インストールで祈る」よりも確実に、短い手戻りで解決できます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次