#author("2018-09-11T23:34:44+09:00","","") #author("2018-09-11T23:35:41+09:00","","") #navi(../) * PowerShellでWindowsの製品情報を取得する方法 [#k03621b9] 本資料では、PowerShellを使ってWindowsのエディション名やバージョン、32ビット/64ビットなど、~ Windows OSに関する情報を取得する方法を以下に記します。 #contents * 使用環境 [#a295e983] -Windows PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption Microsoft Windows 10 Home -PSVersion PS C:\> ($PSVersionTable).PSVersion.toString() 5.1.17134.165 #htmlinsertpcsp(win-top.html,win-sp.html) * Windowsの製品名を取得する [#j7ab6f55] Windowsの製品名を取得するサンプルスクリプトを以下に記します。 ** Get-WmiObjectを使用する [#q58e141e] 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(); 上記の通り、たくさんのプロパティがあるのが確認できます。~ 実際に製品名を取得しています。 ** 製品名の取得 [#zdc0dfb1] Captionプロパティに製品名が格納されています。 PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption Microsoft Windows 10 Home ** OSアーキテクチャ(32bit or 64bit) [#h28833a9] OSArchitectureプロパティにOSアーキテクチャーが格納されています。 PS C:\> (Get-WmiObject Win32_OperatingSystem).OSArchitecture 64 ビット ** OSバージョン [#cbf66bab] VersionプロパティにOSバージョンが格納されています。 PS C:\> (Get-WmiObject Win32_OperatingSystem).Version 10.0.17134 他にもいろいろな情報を取得できますので試してみてください。 * [System.Environment]::OSVersionを使う [#b7bb7b3d] 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 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アーキテクチャなどを取得する方法でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)