システムエンジニアXの「プログラミング以外」の話 50代会社員SEのお仕事・副業・システム運用の経験談

【MDE】PC退役・再キッティング時のオフボーディングスクリプト手順

公開:

※本記事には広告を含みます。

はじめに

PCのリース返却・廃棄(退役)や、故障に伴うOSの再キッティングを行う際、Microsoft Defender for Endpoint(以下、MDE)に登録されたデバイスをどうやって解除(オフボーディング)すればよいか迷ったことはないでしょうか。また、オフボーディングスクリプトを実行したのに「エラーで弾かれた」「Defenderポータルのデバイス一覧から端末が消えない」と戸惑うケースも少なくありません。

私も過去に、キッティング手順書用として半年前にダウンロードしてファイルサーバーに保管していたオフボーディングスクリプトを実行したところ、全端末で署名期限切れエラーとなり、さらにスクリプト再取得後に実行してもポータルからデバイスが消えず「解除に失敗したのでは?」と現場が混乱した経験があります。

この記事では、MDEのオフボーディングスクリプトの正しい取得・実行手順と、スクリプトに設けられた「有効期限30日」の制限、そして実行後のDefenderポータル側の挙動(非アクティブ化の仕組み)を実機検証ベースで解説します。

読み終えるころには、PC退役や再キッティング時に重複デバイス(幽霊端末)を生むことなく、スムーズにMDEのライフサイクル管理を行えるようになります。

この記事の要点

  • MDEポータルからダウンロードするオフボーディングスクリプトには 「発行から30日間」という厳格な有効期限 があり、使い回しはできない
  • スクリプトを実行するとローカルの Sense サービスが停止し、レジストリの OnboardingState が 0 に戻るが、ポータルの一覧からは即座に消えない
  • ポータル上では「非アクティブ(Inactive)」状態へ遷移し、監査証跡保持のため最大180日間データが残る仕様である
項目 動作確認・検証環境
検証年月 2026年9月
対象OS Windows 11 Pro / Enterprise 23H2・24H2
対象製品 Microsoft Defender for Endpoint (Plan 1 / Plan 2)
必要権限 ポータル:セキュリティ管理者 / 端末:ローカル管理者権限

結論:オフボーディングスクリプトは「有効期限30日」と「ポータル残存仕様」に注意

結論からお伝えすると、MDEから端末を切り離す際は、作業のつどMicrosoft Defenderポータルから最新のオフボーディングパッケージをダウンロードして管理者実行する 必要があります。

オンボーディング用スクリプトとは異なり、オフボーディング用スクリプトには「悪意ある第三者やマルウェアに流出・悪用されるリスク」を防ぐため、ダウンロードした時点から30日間しか使えない有効期限(タイムスタンプ署名) が組み込まれています。また、実行に成功してもポータル上のデバイス一覧からはすぐには削除されません。

オンボーディングとオフボーディングの決定的な仕様差

現場で混同しやすい両スクリプトの仕様差を以下の表に整理しました。

比較項目 オンボーディングスクリプト オフボーディングスクリプト
パッケージの有効期限 無期限(ファイルサーバーに常치・再利用可能) 発行から30日間のみ有効(使い回し不可)
実行後の Sense サービス Running(自動起動) Stopped(停止・通信遮断)
レジストリ OnboardingState 1 に設定される 0 に書き換わる
ポータル画面のデバイス表示 数分〜数時間で「アクティブ」として追加 一覧には残り続け、「非アクティブ」へ遷移

この仕様を知らないと、「以前のパッケージが動かない」「スクリプトが成功したのに画面から消えない」という二重のトラブルに巻き込まれます。


MDEオフボーディングスクリプトの取得とクライアント実行手順

PCの退役や切り離しを行う際の具体的な手順を3つのステップで解説します。

ステップ1:Defenderポータルから最新のオフボーディングパッケージを取得する

まず、有効期限内の最新スクリプトをポータルから入手します。

  1. Microsoft Defenderポータル(https://security.microsoft.com)にサインインします。
  2. 左メニューの下部にある 「設定」>「エンドポイント」 を開きます。
  3. 「デバイス管理」セクションの下にある 「オフボーディング」 をクリックします。
  4. オペレーティングシステムで 「Windows 10 と Windows 11」、展開方法で 「ローカル スクリプト」(またはGPO / Intune等)を選択します。
  5. 「パッケージのダウンロード」 をクリックし、ZIPファイル(WindowsDefenderATPOffboardingPackage_valid_until_YYYY-MM-DD.zip)を保存します。

ファイル名に valid_until_2026-XX-XX と有効期限の日付が明記されている通り、この日付を過ぎるとスクリプトは一切機能しなくなります。

ステップ2:管理者権限でスクリプトを実行する

ダウンロードしたZIPファイルを対象PC上で展開すると、WindowsDefenderATPOffboardingScript_valid_until_YYYY-MM-DD.cmd というバッチファイルが入っています。

  1. スタートメニューから「コマンドプロンプト」または「PowerShell」を 「管理者として実行」 で開きます。
  2. 展開したフォルダへ移動し、スクリプトを実行します。
C:\Temp\Offboarding\WindowsDefenderATPOffboardingScript_valid_until_2026-10-17.cmd

実行時にエラーが表示されず、プロンプトが正常終了すればオフボーディング処理は完了です。なお、GPOやIntuneで「オンボーディングポリシー」が対象PCに割り当てられたままだと、オフボーディング直後に再度オンボーディングが走ってしまうため、必ず事前にGPOやIntuneの配信対象グループから端末を除外 しておいてください。

ステップ3:クライアント側でオフボーディング完了を即時確認するコマンド

スクリプト実行後、確実にオフボーディングされたかを端末ローカルで確認するには、以下のPowerShellコマンドを実行します。

# オフボーディング後のレジストリとサービス状態を確認
$State = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status" -ErrorAction SilentlyContinue).OnboardingState
$Sense = (Get-Service -Name "Sense" -ErrorAction SilentlyContinue).Status

Write-Host "OnboardingState : $State (0であればオフボード成功)"
Write-Host "Sense Service   : $Sense (Stoppedであれば正常停止)"

実行結果として OnboardingState : 0、かつ Sense Service : Stopped が表示されれば、端末からのテレメトリ送信は完全に停止しています。あわせてイベントログ Microsoft-Windows-SENSE/Operational に イベントID 11(オフボーディング完了) が記録されているかも確認すると万全です。


なぜオフボーディングしてもDefenderポータルから端末が消えないのか?

現場の情シス担当者から最も多く寄せられる疑問が、「オフボーディングスクリプトが成功したのに、Defenderポータルのデバイス一覧にPCが残ったままになっている」という現象です。

ポータル上のステータス遷移と「180日間保持」の仕様

これは不具合ではなく、セキュリティ監査およびフォレンジック調査のためのMDEの正常な仕様 です。

もし攻撃者が侵入したPCでオフボーディングを実行した瞬間に、ポータル上の過去の通信ログやアラート履歴まで消滅してしまったら、事後調査(インシデントレスポンス)が不可能になります。そのため、オフボーディング後のデバイスは以下のライフサイクルを辿ります。

経過タイミング ポータルの「センサー正常性状態」 ポータル上での見え方と挙動
オフボード実行直後 アクティブ まだクラウド側のタイムアウト判定前で、一時的にアクティブ表示が残る
約7日間通信なし経過後 非アクティブ(Inactive) センサー通信が途絶えた端末として「非アクティブ」ステータスに自動変更される
最大180日間経過後 完全削除(一覧から消滅) テナントのデータ保持期間(最大180日)を過ぎると、デバイス一覧から完全に削除される

つまり、オフボーディング後に「すぐにデバイス一覧から行自体を消すボタン」は存在しません。

ポータルの一覧から邪魔な退役端末を非表示にする運用テクニック

退役済みPCや再キッティング前の古いレコードが一覧に混ざって管理しづらい場合は、以下の2つの運用で整理します。

  1. 「デバイスの除外(Exclude device)」とタグ付けの活用:
    ポータルの対象デバイス画面で「タグの管理」から Retired(退役済み)や Offboarded といったタグを付与した上で、一覧画面のフィルターで「センサー正常性状態:アクティブ」のみを表示するようにビューを保存します。
  2. OS再キッティング(同名PC)時の重複対策:
    同じコンピュータ名でOSをクリーンインストールして再オンボーディングすると、ポータル上に古いデバイスIDと新しいデバイスIDの2行が一時的に並ぶことがあります。古い方には Reimaged タグを付けて区別しておけば、7日後に自動で非アクティブへ落ちるため実害はありません。

よくある質問(FAQ)

Q: 故障して起動しないPCを廃棄する場合、オフボーディングスクリプトを実行できませんがどうすればよいですか?

A: 物理的に起動しないPCに対してオフボーディングスクリプトを実行する必要はありません。そのままハードディスクの物理破壊・データ消去を行って廃棄して問題ありません。ポータル上のレコードは、通信が途絶えてから7日後に「非アクティブ」となり、保持期間経過後に自動で消去されます。なお、MDEのライセンスは「ユーザー単位」または「アクティブなサーバー単位」でカウントされるため、起動していない廃棄PCが残っていてもライセンス枠を圧迫することはありません。

Q: Intuneで管理しているPCをオフボーディングする際、ローカルスクリプトを使わずにIntuneから解除できますか?

A: はい、可能です。Intune管理センターの「エンドポイント セキュリティ」>「Endpoint Detection and Response (EDR)」で、ポリシーの種類として「オフボーディング」を構成したプロファイルを作成し、退役対象デバイスのグループへ割り当てることでリモートから一括オフボーディングできます。その際も、通常の「オンボーディング用プロファイル」の割り当て対象からは必ず外してください。

Q: 有効期限切れのオフボーディングスクリプトを実行するとどうなりますか?

A: スクリプト実行時に署名検証エラーとなり、処理が中断されて OnboardingState は 1 のまま変化しません。イベントログ(SENSE/Operational)にもオフボーディング失敗のエラーが記録されます。ファイル名にある valid_until の日付を確認し、期限が切れている場合はポータルから再ダウンロードしてください。


まとめ

MDEのオフボーディングをトラブルなく実施するための要点は以下の通りです。

  • オフボーディングスクリプトには 発行から30日間の有効期限 があるため、作業時にポータルから最新版を取得する
  • スクリプト実行前に、GPOやIntuneの 「オンボーディング自動配布グループ」から対象端末を除外 しておく
  • 実行後はローカルのレジストリ OnboardingState が 0 になり、Sense サービスが Stopped になったことを確認する
  • ポータルから即座にデバイス行が消えないのは監査ログ保持の仕様であり、約7日後に「非アクティブ」へ遷移することを理解しておく

端末の廃棄・リプレース手順書にこの確認フローを組み込んでおくことで、資産管理台帳とMDEポータルのズレに悩まされることがなくなります。

関連記事

免責規定

この記事で提供される情報は、一般的なガイダンスを目的としており、すべての環境やシステムでの動作を保証するものではありません。

OSのバージョンやリリースによっては、記載されている事が実行できない、または異なる結果をもたらす可能性があります。 また、会社所有のパソコン、スマホ、タブレットなどでは、ポリシーや権限によって実行できない場合があります。

この記事の情報を使用することによって生じる問題や結果について、筆者およびサイト管理者は責任を負いません。 すべての操作は自己責任で行ってください。

最後までお読みいただきありがとうございました。
またお会いしましょう!

著者のおすすめ教材 & note実践記事

公式教材 豪華4大特典付き

PowerShell実務スクリプト50選

AD・Windows運用・障害対応をコマンド一発で自動化する現役SEの実務スクリプト集。

最新note 毎日定時で帰る現場ハック

ググっても出ない実務テク20選

社内SE現場の地味で細かすぎる面倒作業を一撃で解消する実践テクニック集。