製品コラム

セイテクエンジニアのブログ  製品コラム  Windows Server 2025で非推奨になった機能の状態を監視する(+2)-BOM for Windows活用例

 

 

Windows Server 2025で非推奨になった機能の状態を監視する(+2)-BOM for Windows活用例

2025年05月07日配信
執筆者:セイ・テクノロジーズ エバンジェリスト

 「BOM for Windows Ver.8.0」(以下、BOM)の「カスタム監視」を使用すると、BOM標準の監視設定にはない、独自の監視を行えます。監視対象のサーバーが、最新のサーバーOSである「Windows Server 2025」にアップグレードされることを想定した、監視例を紹介します。以前に非推奨機能の状態を監視するスクリプト群を紹介しましたが、VPNサーバーのレガシプロトコルのサポート状況とActive Directoryで非推奨になるDESの使用状況を監視する2つのスクリプトを紹介します。

 

VPNサーバーでL2TPとPPTPが非推奨に、Windows Server 2025は既定で無効

 

 BOMでの利用を想定した、Windows Server 2025から非推奨になった機能を監視するPowerShellスクリプトについては以下の製品コラムの記事をご覧ください。

Windows Server 2025で非推奨になった機能の状態を監視する-BOM for Windows活用例

 当時、Windows PowerShell 2.0エンジンはWindows Server 2025から削除されたことになっていましたが、実際には削除されておらず、以下のURLの最新版では非推奨一覧に移動されました。そのため、上記記事にはWindows PowerShell 2.0エンジンの状態をチェックする「checklecagyfeature_pshv2.ps1」を2025年3月13日に追加しました。

Features removed or no longer developed in Windows Server|Windows Server(Microsoft Learn)

 上記の非推奨一覧は以前はWindows Serverバージョンごとの一覧に分かれていた中のWindows Server 2025の一覧でした。しかし、2025年2月上旬に上記のURLに一本化されました。以前の一覧には、ルーティングとリモートアクセスサービス(RRAS、RRASは古い名称で、現在の「リモートアクセス」の役割の「DirectAccessとVPN」のこと)でPPTPとL2TPプロトコルの使用が非推奨なり、Windows Server 2025のRRASの新規の展開では既定でPPTPとL2TPプロトコルを使用したVPN接続を受け付けないことが記されていました(画面1)。

 

画面1
画面1 2025年2月初めまで存在した旧非推奨一覧には、PPTPとL2TPの項目があった

 PPTPとL2TPの非推奨化については、2024年10月に以下のブログで初めて発表され、その後、情報に変化はありませんが、最新の非推奨一覧(2025年3月4日版)にはPPTPとL2TPに関する項目を確認できません。

PPTP and L2TP deprecation: A new era of secure connectivity|Windows Server News and Best Practices(Tech Community)

 実際にWindows Server 2025でVPNサーバーを新規に展開してみると、確かに既定でPPTPとL2TPを使用しない構成になっていることを確認しました(画面2)。非推奨一覧から漏れてしまったのは、ドキュメントの単純なミスだと思います。なお、VPNサーバーを展開したWindows Server 2022以前をWindows Server 2025にインプレースアップグレードの場合は、PPTPとL2TPを使用可能な非推奨な状態になる可能性があるため、確認して、無効化できるなら無効にすることをお勧めします。

 

画面2
画面2 Windows Server 2025で新規展開したVPNサーバーでは、PPTPとL2TPは受け付けない構成。「ルーティングとリモートアクセス」管理ツールの「ポートのプロパティ」から確認できる(接続: なし)

 

VPNサーバーの役割と有効化状態とレガシVPNプロトコルを監視するスクリプト

 

 「ルーティングとリモートアクセス」管理ツールの「ポートのプロパティ」の情報は、「netsh ras show wanport」コマンドを実行することで可能です。デバイス「WAN Miniport (PPTP)」と「WAN Miniport (L2TP)」の使用対象(Used for)に「リモート アクセス接続・・・(Remote Access connections・・・」など値が設定されていなければ「ポートのプロパティ」の「接続: なし」と判断できそうです。しかし、netshコマンドの出力結果をPowerShellで扱おうとすると、文字化けが発生し、思うようにフィルターできません。この問題は、Windows 11バージョン24H2(およびWindows Server 2025)の問題のようです。詳しくは、以下のブログを参照してください。次のように実行することで、$result変数に出力結果(ASCII英字)を格納することができました(画面3)。なお、文字化け解消のこのテクニックは、netsh以外にも利用できそうなので、覚えておくとよいかもしれません。

 

[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$result = (netsh.exe ras show wanport)

 

Windows 11 バージョン 24H2 で netsh.exe の出力を PowerShell の変数に代入すると、非 ASCII 文字が文字化けする事象について|Microsoft Japan Windows Technology Support Blog(Microsoft)

画面3
画面3 netshの実行結果をPowerShellの変数に格納する。Windows 11バージョン24H2およびWindows Server 2025の日本語版では文字化けに配慮が必要

 次のサンプルスクリプト「checkvpnprotocol.ps1」は、「リモートアクセス」の役割の「DirectAccess-VPN」の有効化状態を確認し、有効になっていなければ0を返します。また、有効になっている場合は、デバイス「WAN Miniport (PPTP)」と「WAN Miniport (L2TP)」の使用対象(Used for)をチェックし、「Remote Access connections」という文字列が見つかったら、PPTPまたはL2TPをサポートしているとみなして「1」を返します。PPTPとL2TPが利用できる状態になっていなければ、「0」を返します(画面4、画面5)。このスクリプトは、Windows Server 2025だけでなく、Windows Server 2022以前でも動作します。

 

画面4
画面4 Windows Server 2025の新規VPNサーバー展開では、既定でPPTPとL2TPは無効なので、スクリプトは0を返す

 

画面5
画面5 Windows Server 2025のVPNサーバーで明示的にPPTPおよび/またはL2TPを有効化すると、スクリプトは1を返す

 

[checkvpnprotocol.ps1]プレーンテキストで表示

[CmdletBinding()]Param()
[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8
If ((Get-WindowsFeature DirectAccess-VPN).InstallState -eq "Available"){
  return 0
} else { #Installed
  $protocolSupport = $false
  $result = (netsh.exe ras show wanport)
  for ($i = 0; $i -lt $result.Count; $i++){
    if($result[$i] -like "*PPTP*") {
      if ($result[$i+1] -Like "*Remote Access Connections*") {
         $protocolSupport = $true
         Write-Verbose "PPTP Supported"
      }
    } elseif ($result[$i] -like "*L2TP*") {
      if ($result[$i+1] -Like "*Remote Access Connections*") {
         $protocolSupport = $true
         Write-Verbose "L2TP Supported"
      }
    }
  }
  if ($protocolSupport) {
    return 1
  } else {
    return 0
  }
}

BOMで利用する場合のしきい値の設定例: 注意 1以上、危険 1以上

 

Active DirectoryでのDESの使用を監視するスクリプト

 

 Windows Server 2025の削除一覧には、2025年2月に新たに「Data Encryption Standard(DES)」の項目が追加されました。現在、DESはWindows Server 2025のActive Directoryでサポートされている暗号化方式の1つですが、DESはWindows Server 2008 R2で既定で無効化され、より強力なアルゴリズムに置き換えられました。Windows Server 2025およびWindows 11バージョン24H2では、2025年9月の品質更新プログラムでDESのサポートは完全に削除される予定です。

Removal of DES in Kerberos for Windows Server and Client|Windows Server News and Best Practices(Tech Community)

 上記ブログでも説明されていますが、以下のURLから入手できるPowerShellスクリプト「Get-KerbEncryptionUsage.ps1」を使用すると、イベントログを調査して、DESやその他の暗号化アルゴリズムの使用状況を調査することができます(画面6)。

microsoft/Kerberos-Crypto(github.com)

 次のサンプルスクリプト「checkadusedes.ps1」は、Windows Server 2025のドメインコントローラーである場合に、「Get-KerbEncryptionUsage.ps1」を実行し、DESが使用されていなければ「0」を、使用されていれば「1」以上を返します。また、ドメインコントローラーでない場合は「0」を返し、「Get-KerbEncryptionUsage.ps1」が存在しない場合は$nullを返します。

 

[checkadusedes.ps1]プレーンテキストで表示

[cmdletBinding()]
param($outDir)

function Check-isWindowsServer2025 {
$osname = (get-wmiobject Win32_OperatingSystem).Caption
if ($osname.Contains("Windows Server 2025")) {
return $true
} else {
return $false
}
}

function Check-isDomainController {
If ((Get-WMIObject Win32_ComputerSystem).PartOfDomain) {
#Domain Member or Domain Controller"
$domainRole = (get-wmiobject Win32_ComputerSystem).DomainRole
if ($domainRole -eq 3) {
return $false
} elseif ($domainRole -gt 4) {
return $true
}
} else {
return $false
}
}


if (Check-isWindowsServer2025) {
Write-Verbose "Check-isWindowsServer2025: Windows Server 2025"
} else {
Write-Verbose "Check-isWindowsServer2025: Unsupported Operating System"
return 0
exit
}

if (Check-isDomainController) {
Write-Verbose "Check-isDomainController: Yes"
} else {
Write-Verbose "Check-isDomainController: No"
return 0
exit
}


if (!(Test-Path(".\Get-KerbEncryptionUsage.ps1"))) {
# Download script from
# https://github.com/microsoft/Kerberos-Crypto/blob/main/Get-KerbEncryptionUsage.ps1
# to current dir
Write-Verbose "Test-Path: script not found"
return $null
exit
}

return (.\Get-KerbEncryptionUsage.ps1 -Encryption DES).Count

BOMで利用する場合のしきい値の設定例: 注意 1以上、危険 1以上

 

画面6

画面6 「Get-KerbEncryptionUsage.ps1」は、DESの使用状況を監視するMicrosoft提供のPowerShellスクリプト

 

関連:

Windows Server 2025大特集|かつて山市良と呼ばれたおじさんのブログ

blog_column_subscribe

blog_column_comment

最新記事