
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ メモ. OSConfig対応状況確認スクリプトのおまけ(詳細検索)
2025年02月14日配信
2025年04月25日更新
執筆者:山内 和朗
Windows Server 2025の新機能「OSConfig」は、PowerShellのMicrosoft.OSConfigモジュールが提供するセキュリティベースラインの展開と維持を簡素化する機能です。前回および前々回のメモでは、BOM for Windowsでの監視を想定したPowerShellスクリプトとその改良版(CSV出力対応)を紹介しました。今回はおまけとして、GitHubで公開されているセキュリティベースラインの設定の完全な一覧を検索できるスクリプトを用意しました。
OSConfigで評価、適用可能なWindows Server 2025、Microsoft Defender Antivirus、Secured Coreのセキュリティベースラインの完全な一覧は、以下のGitHubで公開されています。
microsoft/osconfig|GitHub
現在のシステムの対応状況はGet-OSConfigDesiredConfigurationコマンドレットで確認することができます。また、前回および前々回のメモで紹介したPowerShell「audit-*.ps1」スクリプトでテキストログやCSV形式のテキストファイルとして対応(準拠)状況の一覧を出力することが可能です。前回の改良版スクリプトでは、CSVの列としてGet-OSConfigDesiredConfigurationコマンドレットで取得可能なすべて(Name、Description、DataType、Value、Status、Severity、Reason)を出力するようにしましたが、肝心の設定場所(レジストリキーや値など)は含まれません(画面1)。
画面1 非準拠(NotCompirant)の理由は示されているが、その設定がどこにあるのかまでは分からない
詳細な設定場所を知るためには、GitHubで公開されているCSV形式のテキストファイルで確認する必要があります。GitHubで公開されているデータには、レジストリキー、レジストリ値、構成サービスプロバイダー(CSP)の名前とパス、ベースラインでの既定値、許可された値、重大度の他、対応するCCE ID(https://ncp.nist.gov/cce)やMicrosoftのID(AZ-WINー#)の情報も含まれます(画面2)。
画面2 セキュリティベースラインの詳細情報を知るために、GitHubで公開されているCSVを検索する
おまけのPowerShellスクリプト「search-baseline.ps1」は、名前(Name)またはコントロール名(Control Name)の部分検索できるようにしたものです。このスクリプトを実行すると、利用可能な3つのセキュリティベースライン(ただし、URLはスクリプト内にハードコード)から1つを選択させ、選択されたセキュリティベースラインのCSVを一時ファイルにダウンロードして、Import-CSVコマンドレットで配列変数に取り込みます。その後、テキスト検索(部分検索)用のプロンプトを表示し、見つかったデータをオブジェクトとして返します。テキスト検索は、何も入力せず、Enterキーを押して終了するまでループします(画面3)。New-TemporaryFileコマンドレットによる一時ファイルの利用は、覚えておいて損がありません。$env:Tempの下に拡張子.tmpのランダムなファイル名で作成され、その削除はWindowsにお任せできるからです。
このスクリプトがあれば、Webブラウザーをわざわざ開いてGitHub上の情報を検索する必要はありません。ただし、GitHubにあるCSVのURL(Raw)は、変更される可能性があります。また、最新版が公開された場合は書き換える必要もあります。その点には注意してください。
画面3 GitHubで公開されているCSVファイルを一時ファイルにダウンロードして、テキスト検索を行うスクリプト
[search-baseline.ps1](プレーンテキストで表示)
関連:
vol.80 CIS対応のセキュリティ態勢を簡単に導入、維持できる新機能「OSConfig」|Windows Server 2025大特集(17)
メモ. OSConfigのセキュリティベースライン対応状況の確認をスクリプト化する
メモ. OSConfig対応状況確認スクリプトの改良版(CSV出力)
Windows Server 2025大特集(1)|...|(17)|メモ