Windows か Linux か MacOS か調べる

PowerShell はマルチプラットフォームで動作するスクリプトです。動作しているOSが Windows か Linux か MacOS か判定する方法を紹介します。

$IsWindows、$IsLinux、$IsMacOS という変数がブール値で True/False を格納しています。Windows パソコンでは下記のような結果になります。

PS C:\tmp> $IsWindows
True
PS C:\tmp> $IsLinux
False
PS C:\tmp> $IsMacOS
False

Windows かどうかだけ確かめるならば、$PSVersionTable 変数のメンバ OS の文字列が "Windows" を含むか判定してもいいですが、if 文とともに使うならば断然 $IsWindows を使って判定するほうが簡単です。

PS C:\tmp> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.2.5
PSEdition                      Core
GitCommitId                    7.2.5
OS                             Microsoft Windows 10.0.19044
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0