Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【Windows PowerShell】使用しているWindowsが64ビットWindowsか32ビットWindowsかの判定

現在使用しているWindowsが64ビットウィンドウズか32ビットウィンドウズかを調べるには、Win32_OperatingsystemクラスのOSArchitectureプロパティの値を見ればよい。

64ビットOSの場合。

PS > $os = Get-WmiObject -Class Win32_OperatingSystem
PS > $os.OSarchitecture
64 ビット
PS > $os.OSarchitecture -match "64"
True
PS > $os.OSarchitecture -match "32"
False

32ビットOSの場合。

PS > $os = Get-WmiObject -Class Win32_OperatingSystem
PS > $os.OSarchitecture
32 ビット
PS > $os.OSarchitecture -match "64"
False
PS > $os.OSarchitecture -match "32"
True

Windows PowerShell実践システム管理ガイドの初版の初版164ページに掲載のスクリプトでは、上部で64ビットWindowsがインストールされているか否かの判定に、Win32_ComputerSystemクラスのOSArchitectureプロパティを参照せよと書かれているが、これは誤り。Win32_ComputerSystemクラスにそのようなプロパティは無い。

さらに、64ビットOSがインストールされているか否かの判定に"64-bit"という文字列と-match比較演算子を使用して判定しているが、現在の日本語Windowsでは通常"64 ビット"という文字列が返されるので注意。日本語Windowsではこのページのスクリプトは期待どおりの動作をしないので注意。

なお、Windows PowerShell実践システム管理ガイドの初版の初版の前半13ページには、記述はWindows PowerShell V2 Community Technology Preview 3 (CTP3)に基づいて書かれており、PowerShell V2の正式版では昨日や動作が異なる可能性がある旨、記載されている。

【改訂新版】 Windows PowerShell ポケットリファレンス Windows PowerShell超入門 [4.0対応] Windows PowerShellクックブック Windows PowerShell逆引きハンドブック PowerShell for Azure Windows PowerShell 実践システム管理ガイド2版 (TechNet ITプロシリーズ) ネットワーク管理に使うWMI―PowerShellによるWindowsマシン管理 動くサンプルで学べる Windows PowerShell コマンド&スクリプティングガイド PowerShell 4.0対応