Windows 10クライアントのエディションやバージョン情報を収集する便利な方法:企業ユーザーに贈るWindows 10への乗り換え案内(106)
膨大な数のWindowsクライアントPCやWindows Serverを管理している企業や組織にとって、どのバージョンのOSが稼働しているのかを把握することは重要です。半期に一度、新しいバージョンが登場するWindows 10を導入した場合はなおさらです。
Windows 10になって重要度を増したバージョン管理
「Windows 10」および「Windows Server 2016」以降、Windows/Windows Serverのバージョン(Windows 10の機能更新プログラム)ごとに異なるOSビルド番号(例:19043)や、品質更新プログラムによってインクリメントされるリビジョン番号(例:19043.1052の「1052」の部分)では、そのOSがサポート期間中であるかどうかや、最新状態に更新されているかどうかを判断することができます。半期チャネル(SAC)のWindows 10は「18カ月」(標準)または「30カ月」(EnterpriseおよびEducationの下半期リリース)の短いライフサイクルであるため、バージョン管理は特に重要です。
最新情報は以下の「Windows 10リリース情報」のサイトで確認できます。このサイトは2021年7月8日(米国時間)に日本語を含む各国語にローカライズされました。
- Windows 10リリース情報(Microsoft Docs)
2021年4月からWindows 10の標準になったChromiumベースの新しい「Microsoft Edge」は、6週ごと(バージョン94以降は4週ごと)のより短いリリースサイクルとなり、セキュリティ更新はさらに頻繁にリリースされています。日本語ページに最新情報が反映されるまでにはタイムラグがあります。
- Microsoft Edge Stableチャネルのリリースノート[日本語](Microsoft Docs)
- Release notes for Microsoft Edge Stable Channel[英語](Microsoft Docs)
「Microsoft 365」アプリを導入している場合は、そのバージョン管理も必要です。こちらも日本語ページに最新情報が反映されるまでにはタイムラグがあります。
- Microsoft 365 Appsの更新履歴(日付別の一覧)[日本語](Microsoft Docs)
- Update history for Microsoft 365 Apps(listed by date)[英語](Microsoft Docs)
管理対象となるPCのバージョン管理ができていないと、更新プログラムの配布や機能更新プログラムの展開作業、Windows 10の新バージョンに追加された新しいセキュリティ技術への対応などを困難にするでしょう
Active DirectoryからOSのバージョン情報を取得するには
Active Directoryドメインに参加しているクライアントPCやサーバの場合は、コンピュータアカウントの属性値として、ドメインに最後にログオンしたときのOS名とバージョン、「Service Pack」(「Windows 7」および「Windows Server 2008 R2」以前)が記録されています。
ドメインコントローラーまたはActive Directory用の「リモートサーバー管理ツール(RSAT)」がインストールされているWindows 10クライアントから「Get-ADComputer」コマンドレットを実行することで、これらの情報を一覧として簡単に取得できます。例えば、次のコマンドラインをPowerShellで実行します(画面1)。Windows 10とWindows Server 2016以降の場合は、「OperatingSystemVersion」プロパティに「10.0(OSビルド番号)」の形式でビルド番号を取得できます。
Get-ADComputer -Filter "objectClass -eq 'computer'" -Property * | Select Name, OperatingSystem, OperatingSystemVersion, OperatingSystemServicePack
既に存在しない、あるいは長期間ドメインにログオンしていないクライアントやサーバも出力されますが、その判断のために「LastLogonDate」プロパティを合わせて取得し、確認するとよいでしょう。
ログオンスクリプトで詳細なバージョン情報を入手するには
「グループポリシー」を利用してユーザーのログオンスクリプトとして次のPowerShellスクリプトを実行すると、指定した共有フォルダ内に「コンピュータ名.txt」のファイル名でWindows、Microsoft Edge、Microsoft 365アプリ(クイック実行、C2R版)のバージョン情報を出力することができます(画面2)。
$filename = "\\コンピュータ名\共有名\" + $env:Computername + ".txt" # Get Windows Version and Build if ($env:PROCESSOR_ARCHITECTURE -eq "AMD64") { $winArc = "x64" } else { $winArc = "x86" } $winReg = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ErrorAction SilentlyContinue) $winName = $winReg.Productname $winVer = $winReg.DisplayVersion if ($winVer.Length -eq 0) { $winVer = $winReg.ReleaseId } $winBuild = $winReg.CurrentBuild $winRev = $winReg.UBR #Write-Host "$WinName ($winArc), version $winVer, OS build: $winBuild.$winRev" "$WinName ($winArc), version $winVer, OS build: $winBuild.$winRev" > $filename # Get Microsoft Edge Version $edgeVer = (Get-ItemProperty "${env:ProgramFiles(x86)}\Microsoft\Edge\Application\msedge.exe" -ErrorAction SilentlyContinue).VersionInfo.ProductVersion if ($edgeVer.Length -eq 0) { $edgeVer = (Get-ItemProperty "${env:ProgramFiles}\Microsoft\Edge\Application\msedge.exe").VersionInfo.ProductVersion } if ($edgeVer.Length -eq 0) { #Write-Host "Microsoft Edge (Chromium) is not installed on this PC." "Microsoft Edge (Chromium) is not installed on this PC." >> $filename } else { #Write-Host "Microsoft Edge (Chromium), version: $edgeVer" "Microsoft Edge (Chromium), version: $edgeVer" >> $filename } # Get Microsoft 365 Apps (C2R) Version $m365Ver = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" -ErrorAction SilentlyContinue).VersionToReport if ($m365Ver.Length -eq 0) { #Write-Host "Microsoft 365 Apps (C2R) is not installed on this PC." "Microsoft 365 Apps (C2R) is not installed on this PC." >> $filename } else { #Write-Host "Microsoft 365 Apps (C2R), version: $m365Ver" "Microsoft 365 Apps (C2R), version: $m365Ver" >> $filename }
なお、OSやアプリの新製品(新バージョン)が登場した際には、このスクリプトは見直しが必要になる可能性があります。このスクリプトではWindowsの製品名をレジストリ値「ProductName」から取得していますが、「Windows 11」の早期プレビュービルド(OSビルド10.0.22000)では「Windows 10 Enterprise」が設定されています。
常に最後にログオンしたときの情報に更新されるため、最新情報を収集することができます。PowerShellスクリプトをカスタマイズすることで、その他の業務アプリのバージョン情報やネットワークの情報、ユーザーの情報なども収集対象に簡単に追加できます。
WMIフィルターでバージョンごとのGPOを制御するには
WindowsやWindows Serverのバージョンごとに異なる処理を実行する際、その処理をグループポリシーで実現できる場合は、「グループポリシーオブジェクト(GPO)」の適用先を「WMIフィルター」で絞り込むのが簡単です(画面3、画面4)。WMIフィルターの例を幾つか紹介します。WMIフィルターを利用する場合も、新しいOSが登場した際には見直しが必要になる可能性があります。
Windows Server 2016以降のLTSC(長期サービスチャネル)
select * from win32_OperatingSystem where Caption like "Microsoft Windows Server 20%"
Windows 10 Enterprise(評価版を除く)
select * from Win32_OperatingSystem where Caption like "Microsoft Windows 10%" and OperatingSystemSKU = "4"
Windows 10 Pro
select * from Win32_OperatingSystem where Caption like "Microsoft Windows 10%" and OperatingSystemSKU = "48"
Windows 10 バージョン2004/20H2/21H1
select * from Win32_OperatingSystem where Caption like "Microsoft Windows 10%" and Version like "10.0.1904%"
画面3 Windows Server 2016以降のLTSC(長期サービスチャネル)版Windows Serverを識別するWMIフィルターの例。クエリの妥当性は対象のコンピュータで「Get-CimInstance -Query 'クエリ文字列' 」を実行して確認するとよい
WMIフィルターの作成方法や「Win32_OperatingSystem」クラスで利用可能な属性については、以下のドキュメントを参考にしてください。
- GPOのWMIフィルターを作成する(Microsoft Docs)
- Win32_OperatingSystem class[英語](Microsoft Docs)
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2020-2021)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Windows 10 バージョン1909以降の機能更新プログラム、これに注意しないと「ハマる」
ここ数カ月、Windows 10の機能更新プログラムおよびISOメディアを使用したバージョンアップグレードに関して、特定の条件下で発生する既知の問題が明らかになっています。企業のクライアントPCのバージョンアップグレードを今計画している場合は、影響を受けないように注意してください。 - 2021年にサポートが終了するMicrosoft製品まとめ
前回(第90回)は、Windows 10とMicrosoft Office製品について、2021年以降のサポートライフサイクルを再確認しました。今回は視点を変えて、2021年内にサポートが終了するMicrosoftの製品/技術についてまとめます。 - 【速報】Windows 10 October 2020 Update(バージョン20H2)が正式リリースに
Windows 10の最新バージョン「Windows 10 October 2020 Update(バージョン20H2)」が正式にリリースされました。Windows Updateを通じて段階的にロールアウトされるため、全てのPCで利用可能になっているわけではありません。案内が来るのを気長にお待ちください。 - Windows 10におけるレガシーSMBプロトコルに関する重要な変更とSMB v3新機能まとめ
Windows 10およびWindows Server 2016以降、レガシーなSMB(SMB v1やSMB v2)の扱いについて、既定の動作に幾つか重要な変更が行われています。Windows 10やWindows Server 2016以降への移行時、または機能更新プログラムによる新バージョンへのアップグレードのタイミングで、以前のWindowsネットワークになかった挙動に遭遇した場合は、変更点を確認してみてください。