The Win32_ComputerOperatingSystem class can provide a good deal of information about the OS installed on your machines. These examples are converted from those presented here: http://msdn.microsoft.com/en-us/library/aa394596%28v=vs.85%29.aspx
# ServicePack version
Get-CimInstance -ClassName Win32_OperatingSystem |
select ServicePackMajorVersion, ServicePackMinorVersion
# install date of OS
Get-CimInstance -ClassName Win32_OperatingSystem |
select Installdate
# Windows version
Get-CimInstance -ClassName Win32_OperatingSystem |
select Caption, Version
# windows folder
Get-CimInstance -ClassName Win32_OperatingSystem |
select WindowsDirectory
# all
Get-CimInstance -ClassName Win32_OperatingSystem |
select Caption, Version, ServicePackMajorVersion,
ServicePackMinorVersion, Installdate, WindowsDirectory
You could create a function:
function get-OS {
[CmdletBinding()]
param(
[string]$computername = $env:COMPUTERNAME
)
Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName $computername|
select Caption, Version, ServicePackMajorVersion,
ServicePackMinorVersion, Installdate, WindowsDirectory
}
and then choose properties if required:
£> get-OS | Format-Table Caption, Installdate
Caption Installdate
——- ———–
Microsoft Windows 8.1 Pro 05/12/2013 10:16:49
£> get-OS
Caption : Microsoft Windows 8.1 Pro
Version : 6.3.9600
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0
Installdate : 05/12/2013 10:16:49
WindowsDirectory : C:\windows
£> get-OS | Format-Table Caption, Service* -AutoSize
Caption ServicePackMajorVersion ServicePackMinorVersion
——- ———————– ———————–
Microsoft Windows 8.1 Pro 0 0
£> get-OS | Format-Table Caption, Installdate -AutoSize
Caption Installdate
——- ———–
Microsoft Windows 8.1 Pro 05/12/2013 10:16:49