"=== WINDOWS ==="
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber
Get-CimInstance Win32_ComputerSystem |
Select-Object Manufacturer, Model,
@{N="RAM_GB";E={[math]::Round($_.TotalPhysicalMemory/1GB,1)}}
"=== DISK C ==="
Get-Volume -DriveLetter C |
Select-Object DriveLetter,
@{N="Size_GB";E={[math]::Round($_.Size/1GB,1)}},
@{N="Free_GB";E={[math]::Round($_.SizeRemaining/1GB,1)}}
"=== CPU AND VIRTUALIZATION ==="
Get-CimInstance Win32_Processor |
Select-Object Name, NumberOfCores, NumberOfLogicalProcessors,
VirtualizationFirmwareEnabled,
VMMonitorModeExtensions,
SecondLevelAddressTranslationExtensions
"=== BITLOCKER STATUS — NO RECOVERY KEY SHOWN ==="
Get-BitLockerVolume -MountPoint C: |
Select-Object MountPoint, VolumeStatus, ProtectionStatus,
EncryptionMethod, LockStatus
"=== PENDING REBOOT ==="
[pscustomobject]@{
ComponentServicing = Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"
WindowsUpdate = Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
}
"=== WSL ==="
wsl --status
wsl --version
wsl --list --verbose
"=== WINDOWS FEATURES ==="
@(
"Microsoft-Windows-Subsystem-Linux",
"VirtualMachinePlatform",
"Microsoft-Hyper-V-All"
) | ForEach-Object {
Get-WindowsOptionalFeature -Online -FeatureName $_ -ErrorAction SilentlyContinue |
Select-Object FeatureName, State
}
"=== TAILSCALE ==="
Get-Service Tailscale -ErrorAction SilentlyContinue |
Select-Object Name, Status, StartType
$ts = "$env:ProgramFiles\Tailscale\tailscale.exe"
if (Test-Path $ts) {
& $ts version
} else {
"tailscale.exe not found at standard path"
}
"=== OPENSSH SERVER ==="
Get-WindowsCapability -Online |
Where-Object Name -Like "OpenSSH.Server*" |
Select-Object Name, State
Get-Service sshd -ErrorAction SilentlyContinue |
Select-Object Name, Status, StartType