A bunch of scriptlets I created or found
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
CLITools/screenfetch.ps1

140 lines
5.2 KiB

#### Screenfetch for powershell
#### Author Julian Chow
Add-Type -AssemblyName System.Windows.Forms
####### Functions ########
Function Get-PrimaryResolution{ Param ($monitorArray)
foreach ($monitor in $monitorArray){
if($monitor.Primary){
$primaryResolution = [System.Tuple]::Create($monitor.Bounds.Width, $monitor.Bounds.Height);
return $primaryResolution;
}
}
}
####### Information Collection #########
## Resolution Information
$PrimaryResolution = Get-PrimaryResolution([System.Windows.Forms.Screen]::AllScreens);
$Horizontal = $PrimaryResolution.Item1;
$Vertical = $PrimaryResolution.Item2;
## Uptime Information
$uptime = ((gwmi Win32_OperatingSystem).ConvertToDateTime((gwmi Win32_OperatingSystem).LocalDateTime) -
(gwmi Win32_OperatingSystem).ConvertToDateTime((gwmi Win32_OperatingSystem).LastBootUpTime));
## Disk Information
# Available Space
$FreeDiskSize = (gwmi Win32_LogicalDisk).FreeSpace | select -f 1;
$FreeDiskSizeGB = $FreeDiskSize / 1073741824;
$FreeDiskSizeGB = "{0:N0}" -f $FreeDiskSizeGB;
# Total Space
$DiskSize = (gwmi Win32_LogicalDisk).size | select -f 1;
$DiskSizeGB = $DiskSize / 1073741824;
$DiskSizeGB = "{0:N0}" -f $DiskSizeGB;
$FreeDiskPercent = ($FreeDiskSizeGB / $DiskSizeGB) * 100;
$FreeDiskPercent = "{0:N0}" -f $FreeDiskPercent;
# Used Space
$UsedDiskSizeGB = $DiskSizeGB - $FreeDiskSizeGB;
$UsedDiskPercent = ($UsedDiskSizeGB / $DiskSizeGB) * 100;
$UsedDiskPercent = "{0:N0}" -f $UsedDiskPercent;
## Environment Information
$Username = $env:username;
$Machine = (gwmi Win32_OperatingSystem).CSName;
$OS = (gwmi Win32_OperatingSystem).Caption;
$BitVer = (gwmi Win32_OperatingSystem).OSArchitecture;
$Kernel = (gwmi Win32_OperatingSystem).Version;
## Hardware Information
$Motherboard = Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product;
$CPU = (((gwmi Win32_Processor).Name) -replace '\s+', ' ');
$GPU = (gwmi Win32_DisplayConfiguration).DeviceName;
$FreeRam = ([math]::Truncate((gwmi Win32_OperatingSystem).FreePhysicalMemory / 1KB));
$TotalRam = ([math]::Truncate((gwmi Win32_ComputerSystem).TotalPhysicalMemory / 1MB));
$UsedRam = $TotalRam - $FreeRam;
$FreeRamPercent = ($FreeRam / $TotalRam) * 100;
$FreeRamPercent = "{0:N0}" -f $FreeRamPercent;
$UsedRamPercent = ($UsedRam / $TotalRam) * 100;
$UsedRamPercent = "{0:N0}" -f $UsedRamPercent;
####### Printing Output #########
# Line 1 - HostName
Write-Host " ....:::: " -f Cyan -NoNewline;
Write-Host $Username -f red -nonewline;
Write-Host "@" -f gray -nonewline;
Write-Host $Machine -f red;
# Line 2 - OS
Write-Host " ....:::::::::::: " -f Cyan -NoNewline;
Write-Host "OS: " -f Red -NoNewline;
Write-Host $OS $BitVer;
# Line 3 - Kernel
Write-Host " ....:::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "Kernel: " -f Red -nonewline;
Write-Host $Kernel;
# Line 4 - Uptime
Write-Host "....:::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "Uptime: " -f Red -nonewline;
Write-Host $uptime.Days"d " $uptime.Hours"h " $uptime.Minutes"m " $uptime.Seconds"s " -separator "";
# Line 5 - Motherboard
Write-Host ":::::::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "Motherboard: " -f Red -nonewline;
Write-Host $Motherboard.Manufacturer $Motherboard.Product;
# Line 6 - Shell (Hardcoded since it is unlikely anybody can run this without powershell)
Write-Host ":::::::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "Shell: " -f Red -nonewline;
Write-Host "PowerShell $($PSVersionTable.PSVersion.ToString())"
# Line 7 - Resolution (for primary monitor only)
Write-Host ":::::::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "Resolution: " -f Red -NoNewline;
Write-Host $Horizontal "x" $Vertical;
# Line 8 - Windows Manager (HARDCODED, sorry bbzero users)
Write-Host ":::::::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "Window Manager: " -f Red -nonewline;
Write-Host "DWM";
# Line 10 - Font (HARDCODED)
Write-Host "................ ................ " -f Cyan -NoNewline;
Write-Host "Font: " -f Red -nonewline;
Write-Host "Segoe UI";
# Line 11 - CPU
Write-Host ":::::::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "CPU: " -f Red -nonewline;
Write-Host $CPU;
# Line 12 - GPU
Write-Host ":::::::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "GPU: " -f Red -nonewline;
Write-Host $GPU;
# Line 13 - Ram
Write-Host ":::::::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "RAM: " -f Red -nonewline;
Write-Host $UsedRam "MB / $TotalRam MB" -NoNewline;
Write-Host " (" -NoNewline
Write-Host $UsedRamPercent"%" -f Green -NoNewline;
Write-Host ")";
# Line 13 - Disk Usage
Write-Host "'''':::::::::::: :::::::::::::::: " -f Cyan -NoNewline;
Write-Host "Disk: " -f Red -NoNewline;
Write-Host $UsedDiskSizeGB"GB" " / " $DiskSizeGB"GB" -NoNewline;
Write-Host " (" -NoNewline;
Write-Host $UsedDiskPercent"%" -f Green -NoNewline;
Write-Host ")";
# Empty Lines
Write-Host " '''':::: :::::::::::::::: " -f Cyan;
Write-Host " '''':::::::::::: " -f Cyan;
Write-Host " '''':::: " -f Cyan;