- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-09-11T23:34:11+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)