-
Notifications
You must be signed in to change notification settings - Fork 0
/
system_info.ps1
53 lines (40 loc) · 1.55 KB
/
system_info.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<#
.SYNOPSIS
Powershell System Info Script
.DESCRIPTION
This is just a script for the sake of learning about various classes and something quick and useful to grab data.
#>
class SystemInfo {
[string] $ComputerName
[string] $BIOSmanufacturer
[string] $BIOSversion
[string] $Domain
[int] $NumberOfProcessors
[int] $NumberOfCores
[double] $TotalPhysicalMemory
[string] $OperatingSystemName
[string] $OperatingSystemArchitecture
[string] $TimeZone
[double] $SizeOfCdrive
[double] $CdriveFreeSpace
}
$sinfo = [SystemInfo]::new()
$compsys = Get-CimInstance -ClassName Win32_ComputerSystem
$sinfo.ComputerName = $compsys.Name
$sinfo.TotalPhysicalMemory = [math]::Ceiling($compsys.TotalPhysicalMemory / 1GB)
$sinfo.Domain = $compsys.Domain
$sinfo.NumberOfProcessors = $compsys.NumberOfProcessors
$proc = Get-CimInstance -ClassName Win32_processor
$sinfo.NumberOfCores = $proc.NumberOfCores
$bios = Get-CimInstance -ClassName Win32_Bios
$sinfo.BIOSmanufacturer = $bios.Manufacturer
$sinfo.BIOSversion = $bios.Version
$os = Get-CimInstance -ClassName Win32_OperatingSystem
$sinfo.OperatingSystemName = $os.Caption
$sinfo.OperatingSystemArchitecture = $os.OSArchitecture
$sinfo.TimeZone = (Get-TimeZone).DisplayName
$disk = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DeviceID='C:'"
$sinfo.SizeOfCdrive = [math]::Round(($disk.Size / 1GB), 2)
$sinfo.CdriveFreeSpace = [math]::Round(($disk.FreeSpace / 1GB), 2)
$sinfo