You are here: Sysadmins of the North » Code base » PowerShell » Emulate ternary operator in PowerShell

Emulate ternary operator in PowerShell

Quickly and dirty determine if a condition is true or false in PowerShell 5.1 by emulating the ternary operator. For example when determinering if the server you are servicing is a Windows Server Desktop Experience version or not (and thus Server Core):

$condition = (Get-CimInstance Win32_OptionalFeature | Where-Object Name -eq 'Server-Gui-Mgmt').InstallState
({true}, {false})[!$condition]Code language: PowerShell (powershell)

This returns true for a GUI enabled Windows Server instance and false for Windows Server Core.

Source: Stack Overflow “Ternary operator in PowerShell” comment by Roman Kuzmin.

And yes, PowerShell Core 7 (pwsh) supports it natively:

(Get-CimInstance Win32_OptionalFeature | Where-Object Name -eq 'Server-Gui-Mgmt').InstallState ? "true" : "false"
falseCode language: PowerShell (powershell)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top