Windows Updateがしっかりあたっているか、
管理者がリモートでちゃちゃっと確認したいときなどに使えるかもしれません。
※ドメイン環境を想定しています。
検証環境
PC
Windows10 21H1
PowerShell
$PSVersionTable Name Value ---- ----- PSVersion 5.1.19041.1645 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.19041.1645 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1
Buildnumberとバージョンについて
以下では、Buildnumberを得る方法を書いています。
WindowsのバージョンとBuildnumberは1対1の関係になっているので、ググってもらえますようお願いします。
WMIを使う
WMI(Windows Management Instrumentation)を使用する例。
(wmic /node: "コンピュータ名" /user:"ユーザー名" /password:"パスワード" os get buildnumber)[2]
構文が独特。
また、戻り値が「Buildnumber」という文字列+改行+Buildnumber なので要素の3つ目を取得しています。
Get-WmiObjectコマンドレットを使う
WMI Query Language (WQL)を使うバージョンです。
$cr=Get-Crdential (Get-WmiObject -Credential ($cr) -ComputerName コンピュータ名 -Query "Select buildnumber from Win32_operatingsystem").BuildNumber
WQLが少しわかりにくいので、WMI クラスを全部持ってきて、BuildNumberを取得することもできます。
$cr=Get-Crdential (Get-WmiObject -ComputerName コンピュータ名 -Credential $cr -Class Win32_OperatingSystem).BuildNumber
WQLはSQLのサブセットなのでSQLがわかればこっちの方が直感的。
注意
どちらにも言えることですが、セキュリティ環境によってはブロックされる可能性もあります。
また、環境にもよるかも知れませんが、ここで書いてあるユーザーは管理者権限を持つ管理者です。
余談
リモートではなく、自分のPCのバージョンを調べたいときは、次のようにします。
WMIを使う。
(wmic os get buildnumber)[2]
Get-WmiObjectを使う1
(Get-WmiObject -Query "Select buildnumber from Win32_operatingsystem").BuildNumber
Get-WmiObjectを使う2
(Get-WmiObject -Class Win32_OperatingSystem).BuildNumber
最も、自分のWindowsのバージョンを調べたいなら、winverで事足りてしまいますが・・・。