本資料では、PowerShellを使ってWindowsのエディション名やバージョン、32ビット/64ビットなど、
Windows OSに関する情報を取得する方法を以下に記します。
PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption Microsoft Windows 10 Home
PS C:\> ($PSVersionTable).PSVersion.toString() 5.1.17134.165
Windowsの製品名を取得するサンプルスクリプトを以下に記します。
Get-WmiObjectコマンドレットを使うと簡単にWindowsの情報を取得することができます。
PS C:\> Get-WmiObject Win32_OperatingSystem SystemDirectory : C:\WINDOWS\system32 Organization : BuildNumber : 17134 RegisteredUser : xxxxxxxxxx SerialNumber : 00000-00000-00000-00000 Version : 10.0.17134
しかし上記のコマンド出力では、製品名が表示されていません。
ここで、Get-WmiObject Win32_OperatingSystem で返却されたオブジェクトに
どのようのプロパティがあるかGet-Memberコマンドレットを使用して確認してみます。
PS C:\> (Get-WmiObject Win32_OperatingSystem) | Get-Member TypeName: System.Management.ManagementObject#root\cimv2\Win32_OperatingSystem Name MemberType Definition ---- ---------- ---------- PSComputerName AliasProperty PSComputerName = __SERVER Reboot Method System.Management.ManagementBaseObject Reboot() SetDateTime Method System.Management.ManagementBaseObject SetDateTime(System.St... Shutdown Method System.Management.ManagementBaseObject Shutdown() Win32Shutdown Method System.Management.ManagementBaseObject Win32Shutdown(System.... Win32ShutdownTracker Method System.Management.ManagementBaseObject Win32ShutdownTracker(... BootDevice Property string BootDevice {get;set;} BuildNumber Property string BuildNumber {get;set;} BuildType Property string BuildType {get;set;} Caption Property string Caption {get;set;} CodeSet Property string CodeSet {get;set;} CountryCode Property string CountryCode {get;set;} CreationClassName Property string CreationClassName {get;set;} CSCreationClassName Property string CSCreationClassName {get;set;} CSDVersion Property string CSDVersion {get;set;} CSName Property string CSName {get;set;} CurrentTimeZone Property int16 CurrentTimeZone {get;set;} <省略> PSStatus PropertySet PSStatus {Status, Name} ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime(); ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();
上記の通り、たくさんのプロパティがあるのが確認できます。
実際に製品名を取得しています。
Captionプロパティに製品名が格納されています。
PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption Microsoft Windows 10 Home
OSArchitectureプロパティにOSアーキテクチャーが格納されています。
PS C:\> (Get-WmiObject Win32_OperatingSystem).OSArchitecture 64 ビット
VersionプロパティにOSバージョンが格納されています。
PS C:\> (Get-WmiObject Win32_OperatingSystem).Version 10.0.17134
他にもいろいろな情報を取得できますので試してみてください。
PS C:\> [System.Environment]::OSVersion Platform ServicePack Version VersionString -------- ----------- ------- ------------- Win32NT 10.0.17134.0 Microsoft Windows NT 10.0.17134.0 PS C:\> [System.Environment]::OSVersion | Format-List Platform : Win32NT ServicePack : Version : 10.0.17134.0 VersionString : Microsoft Windows NT 10.0.17134.0
以上、PowerShellを使ってWindowsの製品名やOSアーキテクチャなどを取得する方法でした。