Private/Get-OSName.ps1
function Get-OSName { # OS name based on version if ($IsCoreCLR) { $os = if ($IsWindows) { (Get-CimInstance Win32_OperatingSystem).Caption } elseif ($IsLinux) { (uname) # Assuming you're in a shell context or using Invoke-Expression } elseif ($IsMacOS) { "macOS" # Or use `sw_vers` for more granularity } } else { # PowerShell 5.1 fallback via WMI try { $os = (Get-CimInstance Win32_OperatingSystem).Caption } catch { $os = "Unknown Windows" } } return $os } |