かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  メモ. Windows Server 2025新機能OSConfig――使いこなしデモ|セイテク・シス管道場フォローアップ

 

 

メモ. Windows Server 2025新機能OSConfig――使いこなしデモ|セイテク・シス管道場フォローアップ

2025年05月22日配信
2025年05月26日更新
執筆者:山内 和朗

 先日(5月20日)開催されたオンラインセミナー「セイテク・シス管道場 第4回(アーカイブ動画)」では、この連載のWindows Server 2025大特集の以下の回で紹介した、Windows Server 2025の新機能「OSConfig」によるセキュリティベースラインの適用と維持について実機によるデモを行いました。デモではPowerShellのコマンドライン操作を多用したため、デモの内容を再現したくても難しいかもしれません。そこで、デモで使用した一連のコマンドライン操作を解説を加えながら紹介します。

 

vol.80 CIS対応のセキュリティ態勢を簡単に導入、維持できる新機能「OSConfig」 |Windows Server 2025大特集(17)

OSConfigを使用するために、PowerShellモジュールをインストールする

 

 OSConfigを使用するためには、Microsoft.OSConfigモジュールが必要です。Powershell(管理者)で以下のコマンドラインを実行することでインストールできます。ベースラインの最新版は最新のモジュールに同梱されているので、以前にインストールしたことがある場合でも、使用前に同じコマンドを実行して最新版にアップデートすることをお勧めします。Windows Admin Center(v2)の「セキュリティ」ツールの「セキュリティベースライン」タブを選択すると、Microsoft.OSConfigモジュールが自動的にインストールされます。また、インストール済みであっても、更新バージョンが利用可能であれば最新版に更新されます。

 

PS C:¥> Install-Module -Name Microsoft.OSConfig -Scope AllUsers -Repository PSGallery –Force

 

画面1 PowerShellにMicrosoft.OSConfigモジュールをインストールする

画面1 PowerShellにMicrosoft.OSConfigモジュールをインストールする

 

利用可能なセキュリティベースラインを確認する

 

 利用可能な最新のセキュリティベースラインを確認します。

 

PS C:¥> Get-OSConfigMetadata |Select Name, Version, Description

 

 2025年4月から、Windows Server 2022向けのセキュリティベースラインが利用可能になっています。Windows Server 2022にMicrosoft.OSConfigモジュールをインストールすることで、ベースラインの適用と維持が可能であることを確認しました。ただし、一部のセキュリティ設定がエラーとなる上、Windows Server 2025のセキュリティベースラインとは異なり、github(https://github.com/microsoft/osconfig/tree/main/security)でベースラインの詳細は公開されていません。

 

画面2 Windows Server 2022のセキュリティベースラインも利用可能に。ただし、詳細は不明

画面2 Windows Server 2022のセキュリティベースラインも利用可能に。ただし、詳細は不明

 

ワークグループサーバー向けセキュリティベースラインで現在のシステム設定を評価する

 

 現在のシステム設定をワークグループサーバー(WorkgroupMember)向けのセキュリティベースラインと比較して、準拠(コンプライアンス)状況を評価します。ドメインコントローラー(DomainController)やメンバーサーバー(MemberServer)向けシナリオを使用する場合は、コメントアウト行を参考にしてください。

 

PS C:¥> $myscenario = "SecurityBaseline/WS2025/WorkgroupMember"
#$myscenario = "SecurityBaseline/WS2025/DomainController"
#$myscenario = "SecurityBaseline/WS2025/MemberServer"
PS C:¥> $results = (Get-OSConfigDesiredConfiguration -Scenario $myscenario) 
PS C:¥> $results

 

結果を見やすくテキストまたはCSV化する

 

 Get-OSConfigDesiredConfigurationの実行結果を、見やすいテキストやCSV(カンマ区切り値)ファイルに出力します。

 

PS C:¥> $results |  ft Name, @{ Name = "Status"; Expression={$_.Compliance.Status} }, @{ Name = "Severity"; Expression={$_.Compliance.Severity} }, @{ Name = "Reason"; Expression={$_.Compliance.Reason} } -AutoSize -Wrap 2>&1| Out-File -Encoding default -FilePath $env:Temp\output.log -width 160
PS C:¥> notepad $env:Temp\output.log

OSConfigの出力を可読性の高いテキストに

 

PS C:¥> $results |Select Name,Description,DataType,Value, @{ Name = "Status"; Expression={$_.Compliance.Status} }, @{ Name = "Severity"; Expression={$_.Compliance.Severity} }, @{ Name = "Reason"; Expression={$_.Compliance.Reason} }|Export-CSV -Path .\output.csv -NoTypeInformation
PS C:¥> start $env:Temp\output.csv

OSConfigの出力をCSVに

 

コンプライアンスの割合(%)を計算する

 

 準拠している(Compliant)/準拠していない(NotCompliant)ベースラインをカウントし、コンプライアンスの割合(%)を算出します。

 

PS C:¥> $numOfCompliant = 0
$numOfTotal = 0
foreach ($result in $results) {
  if($result.Compliance.Status -eq "Compliant") {
    $numOfCompliant++
    $numOfTotal++
  } elseif ($result.Compliance.Status -eq "NotCompliant") {
    $numOfTotal++
  }
}
Write-Host "Total: " $numOfTotal
Write-Host "Compilant: " $numOfCompliant
$perOfCompliant = [math]::Round(($numOfCompliant / $numOfTotal * 100),0)
Write-Host "Compliance Status: " $perOfCompliant "%"

 

画面3 評価結果のテキスト/CSV化と、準拠状況のカウント、割合の計算

画面3 評価結果のテキスト/CSV化と、準拠状況のカウント、割合の計算

 

Windows Admin Center(v2)でのOSConfig

 

 Windows Admin Center(v2)の管理対象サーバーがローカルまたはリモートのWindows Server 2025の場合、「セキュリティ」ツールに「セキュリティベースライン」タブが表示されるので、このタブからベースラインに対する準拠状況(コンプライアンスの割合)の確認や、適用と準拠を実施することができます。

 

 Windows Admin Center(v2)は、管理対象のMicrosoft.OSConfigモジュールをインストール/更新し、既定でWindows Server 2025がドメインコントローラー、メンバーサーバー、またはワークグループサーバーのどれかを自動的に検出して、適切なベースラインシナリオに対する現在のシステムの準拠状況を報告します。Windows Server 2025ワークグループサーバー(WorkgroupMember)シナリオのベースラインの設定項目は288項目です。これに対してPowerShellのGet-OSConfigDesiredConfigurationの結果は292項目あります。この4項目の差は、Windows Admin Center(v2)ではベースラインの既定(Default)値が存在するセキュリティ設定を対象にしており、以下のベースラインの設定が除かれているからです。これらの設定の値はユーザー入力が必要です。

  • MessageTextUserLogon(ログオンメッセージのテキスト)
  • MessageTextUserLogonTitle(ログオンメッセージのタイトル)
  • RenameAdministratorAccount(ビルトインAdministratorアカウントの変更後の名前)
  • RenameGuestAccount(ビルトインGuestアカウントの変更後の名前)

 

画面4 OSConfigはWindows Admin Center(v2)バージョン2410の「セキュリティ」ツールから操作することもできる。Microsoft.OSConfigのインストール/更新はこのページを表示する際に、必要に応じて行われる
画面4 OSConfigはWindows Admin Center(v2)バージョン2410の「セキュリティ」ツールから操作することもできる。PowerShellとの項目数の違いに注意

 

※注: 管理対象がWindows Server 2022など、Windows Server 2025でない場合、「セキュリティ」ツールに「セキュリティベースライン」タブは表示されません。リモートから管理する場合、Windows Admin Center(v2)はWindows Server 2025にインストールされている必要はありませんが(Windows 10以降、Windows Server 2026以降にインストールできます)、管理対象のサーバーやWindows Admin Center(v2)のインストールされている端末にセキュリティベースラインを適用すると、セキュリティ強化の影響で、Windows Admin Center (v2)へのアクセスや、Windows Admin Center(v2)から管理対象への接続に影響する場合があります。Windows Server 2025のローカルサーバーにWindows Admin Center(v2)がインストールされている場合、セキュリティベースラインの適用がWindows Admin Center(v2)のローカル管理に影響することはありません。

 

セキュリティベースラインを適用してコンプライアンスの割合を100%にする

 

 ワークグループサーバー(WorkgroupMember)向けのセキュリティベースラインを適用して、292全項目が準拠状態100%になるようにしてセキュリティを強化します。ドメインコントローラー(DomainController)やメンバーサーバー(MemberServer)向けシナリオを使用する場合は、コメントアウト行を参考にしてください。

 

PS C:¥> $myscenario = "SecurityBaseline/WS2025/WorkgroupMember"

$myscenario = "SecurityBaseline/WS2025/DomainController"
#$myscenario = "SecurityBaseline/WS2025/MemberServer"

PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Default
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name MessageTextUserLogon -Value "Hello"
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name MessageTextUserLogonTitle -Value "My Title"
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name RenameAdministratorAccount -Value "myadmin"
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name RenameGuestAccount -Value "myguest"
PS C:¥> Restart-Computer -Force

 

 Windows Admin Center(v2)の「適用と維持」のクリックによる適用は、上記の-Defaultで設定される既定値を持つ288項目が対象です。ユーザー入力が必要な4項目については、その次の4行のコマンドラインで設定できます。

 なお、設定の有効化にはコンピューターの再起動が必要です。セキュリティ設定の強化により、Administratorは使用できなくなります(代わりに、上記の例の場合はmyadminでログオンします)。また、パスワードポリシーが強化されるため(複雑さの要件を満たす、14字以上など)、ログオン時にパスワードの変更が要求される場合があります。さらに、ユーザーアカウント制御(UAC)が有効になるため、管理操作を行うためには昇格が必要になる点にも注意してください。

 

画面5 ワークグループサーバー向けシナリオをすべて設定する。設定の反映には再起動が必要
画面5 ワークグループサーバー向けシナリオをすべて設定する。設定の反映には再起動が必要

 

画面6 Windows Admin Center(v2)では188項目すべてが準拠しているに、PowerShellでは192(188+4)項目すべてがCompliantになった
画面6 Windows Admin Center(v2)では288項目のすべて準拠していると表示されるが、PowerShellでは292(288+4)項目すべてがCompliantになっている

 

ドリフト制御を維持しながらセキュリティベースラインを変更する

 

 Windows Server 2025のセキュリティベースラインを適用すると、リモートデスクトップ(RDP)接続での接続元と接続先間のコピー&貼り付け(ドライブのリダイレクト)操作が禁止されます。これを永続的に許可するためには、次のコマンドラインを実行して、OSConfigを使用してセキュリティベースラインを変更します。設定によっては変更を反映するために再起動が必要な場合もありますが、ドライブのリダイレクトの許可/禁止については再接続で即時反映されます。別の方法、例えばレジストリの編集などで設定を変更した場合、OSConfigのドリフト制御(Drift Control)機能によって定期間隔(既定は4時間ごと)で望ましい状態に修正されます。

 

PS C:¥> $myscenario = "SecurityBaseline/WS2025/WorkgroupMember"

$myscenario = "SecurityBaseline/WS2025/DomainController"
#$myscenario = "SecurityBaseline/WS2025/MemberServer"

PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name RemoteDesktopServicesDoNotAllowDriveRedirection -Value 0
#Restart-Computer -Force

 

画面7 既定では禁止されるRDP接続でのコピー&貼り付けも、ベースラインを変更することで許可できる。“準拠していない”設定と評価されるが、ドリフト制御機能で修正されることはない
画面7 既定では禁止されるRDP接続でのコピー&貼り付けも、ベースラインを変更することで許可できる。“準拠していない”設定と評価されるが、ドリフト制御機能で修正されることはない

 

ドリフト制御のリフレッシュ間隔の変更とその効果を確認する

 

 ドリフト制御機能は既定で有効になっていて、Disable/Enable-OSConfigDriftControlで切り替えることができます。既定のリフレッシュ間隔は4時間であり、Get/Set-OSConfigDriftControlで確認、変更することができます。例えば、2時間に変更したい場合は、次のように実行します。なお、リフレッシュ間隔は30分以上である必要があります。

 

PS C:¥> Set-OSConfigDriftControl -RefreshPeriod 120

 

画面8 ドリフト制御機能のリフレッシュ間隔を既定の4時間から2時間に変更する

画面8 ドリフト制御機能のリフレッシュ間隔を既定の4時間から2時間に変更する

 例えば、先ほどのドライブリダイレクトの許可設定を、OSConfigのSet-OSConfigDesiredConfigurationではなく、レジストリを直接変更して行った場合(レジストリ値「fDisableCdm」を0に変更)、対応するベースラインの設定が「準拠していない」状態に切り替わります。しかし、リフレッシュ間隔が経過すると望ましい状態に自動訂正されます。これに対して、Set-OSConfigDesiredConfigurationを使用したベースラインの設定の変更は、「準拠していない」状態として評価されるのは同じですが、ドリフト制御機能で修正されることはありません。

 

画面9 Set-OSConfigDesiredConfigurationではなく、レジストリを直接変更
画面9 Set-OSConfigDesiredConfigurationではなく、レジストリを直接変更(11:00頃変更)

 

osconfig_scr10
画面10 リフレッシュ間隔(既定の4時間から2時間に変更済み)が経過すると(13:00頃)、望ましい状態からの逸脱が自動修正され、レジストリ値が元の値に戻った

 

Windows Admin Center(v2)でのSecuredCoreシナリオの評価と適用(実験段階)

 

 MicrosoftはWindows Server 2025の他に、Microsoft Defender AntivirusとSecured Coreサーバー用のベースラインも提供しています。Microsoft Defender Antivirusのベースラインは、Windows Admin Center(v2)の「セキュリティ」ツールの「セキュリティ」タブから操作できます。Secured Coreサーバーのベースラインについては、Windows Admin Center(v2)の「設定|詳細設定」に以下の実験キーを追加することで、実験的に利用可能です。

 

msft.sme.security.siliconAssistedSecurityPreview

 

 実験キーを追加すると、「セキュリティ」ツールの標準の「Secured core」タブが「セキュリティ支援付きセキュリティ」タブに切り替わり、SecuredCoreシナリオの適用と維持、およびSecuredCoreStateシナリオによる評価ができるようになります。ただし、私の環境では「適用と維持」ボタンがグレーアウトして利用できませんでした。

 

画面11 実験キー「msft.sme.security.siliconAssistedSecurityPreview」を追加する
画面11 実験キー「msft.sme.security.siliconAssistedSecurityPreview」を追加する

 

画面12 「Secured core」タブがOSConfigのSecuredCoreシナリオに対応した「セキュリティ支援付きセキュリティ」タブに切り替わる
画面12 「Secured core」タブがOSConfigのSecuredCoreシナリオに対応した「セキュリティ支援付きセキュリティ」タブに切り替わる

 

 なお、対象のシステムに適用可能なセキュリティベースラインのシナリオは、1つだけに制限されません。利用可能なすべてのシナリオを適用することが可能です。

 

Windows Server 2025セキュリティベースラインとBOMの代理監視(セキュリティ強化の互換性問題の解消例)

 

 弊社製品「BOM for Windows Ver.8.0 SR2」は、2025年4月1日にリリースされた、Windows Server 2025対応バージョンです。BOMによるローカル監視を行っているWindows Server 2025のサーバーに、Windows Server 2025のセキュリティベースラインを適用してみましたが監視に影響はありませんでした。一方、BOMの代理監視(リモート監視)の対象となっているWindows Server 2025にセキュリティベースラインを適用すると、セキュリティ設定の強化の影響で監視ができなくなりました。以下は、BOMの代理監視を可能にするための、セキュリティベースラインのカスタマイズ例です。設定の詳細についてはこちら(セミナー資料より)を参照してください。セキュリティベースラインのカスタマイズの例として参考にしてください。

 

PS C:¥> $myscenario = "SecurityBaseline/WS2025/WorkgroupMember"
#$myscenario = "SecurityBaseline/WS2025/DomainController"
#$myscenario = "SecurityBaseline/WS2025/MemberServer"
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name AllowUIAccessApplicationsToPromptForElevation -Value 1
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name BehaviorOfTheElevationPromptForAdministrators -Value 5
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name SharingAndSecurityModelForLocalAccounts -Value 1
#MemberServerシナリオの場合:
#Set-OSConfigDesiredConfiguration -Scenario $myscenario -Name ApplyUACRestrictionsToLocalAccountsOnNetworkLogon -Value 1
#DomainControolerおよびWorkgroupMemberシナリオの場合:
PS C:¥>  REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

 

 なお、BOM for Windows Ver.8.0 SR2は、OSConfigに対応したWindows Server 2025用監視テンプレートが用意されています。そのテンプレートを使用すると、PowerShellの操作やWindows Admin Center(v2)を使用しなくても、現在のシステムのコンプライアンスの割合を監視することができます。詳しくは、製品コラムの以下の記事を参照してください。

 

What’s new in BOM 8.0 SR2: #2 Windows Server 2025正式対応と新しい監視テンプレート|製品コラム

 

 Set-OSConfigDesiredConfiguraionコマンドレットで適用したセキュリティ設定は、Remove-OSConfigDesiredConfiguraionコマンドレットを使用して削除することが可能です。ただし、300以上のベースライン設定を適用した後、そのすべての設定を削除したとしても、完全に元の状態には戻りません。OSConfigによるセキュリティベースラインの設定を運用環境に導入したいという場合は、Hyper-Vの仮想マシン(VM)環境でチェックポイントを利用してロールバックできるようにしながら、セキュリティ強化のアプリへの影響を調査し、互換性を確保するために適切なベースラインのカスタマイズ設定を見つけ、実装していくのが良いでしょう。

nfigDesiredConfiguration

関連:

vol.80 CIS対応のセキュリティ態勢を簡単に導入、維持できる新機能「OSConfig」 [2025.2.3]|Windows Server 2025大特集(17)

 ├ メモ. OSConfigのセキュリティベースライン対応状況の確認をスクリプト化する 

 ├ メモ. OSConfig対応状況確認スクリプトの改良版(CSV出力) 

 ├ メモ. OSConfig対応状況確認スクリプトのおまけ(詳細検索) 

 └ メモ. Windows Server 2025新機能OSConfig――使いこなしデモ|セイテク・シス管道場フォローアップ

Windows Server 2025大特集(1)|...|(17)|...|メモ

blog_yamanxworld_subscribe

blog_yamanxworld_comment

blog_yamanxworld_WP_ws2025

最新記事