MSWindows Hardware info CMD
# Hardware Information Report Script
# Compatible with PowerShell 2.0+ (Windows 7 and above)
$OutputFile = "hardware_info.txt"
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " HARDWARE INFORMATION REPORT" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
Write-Host "Generating report... Please wait..." -ForegroundColor Yellow
Write-Host ""
# Start building the report
$Report = @"
========================================
HARDWARE INFORMATION REPORT
========================================
Generated: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss")
"@
# System Information
$Report += "`n[SYSTEM INFORMATION]`n`n"
$OS = Get-WmiObject -Class Win32_OperatingSystem
$CS = Get-WmiObject -Class Win32_ComputerSystem
$Report += "OS Name: $($OS.Caption)`n"
$Report += "OS Version: $($OS.Version)`n"
$Report += "OS Architecture: $($OS.OSArchitecture)`n"
$Report += "Computer Name: $($CS.Name)`n"
$Report += "Manufacturer: $($CS.Manufacturer)`n"
$Report += "Model: $($CS.Model)`n"
$Report += "System Type: $($CS.SystemType)`n"
# BIOS Information
$Report += "`n[BIOS INFORMATION]`n`n"
$BIOS = Get-WmiObject -Class Win32_BIOS
$Report += "Manufacturer: $($BIOS.Manufacturer)`n"
$Report += "Version: $($BIOS.Version)`n"
$Report += "Serial Number: $($BIOS.SerialNumber)`n"
$Report += "Release Date: $($BIOS.ReleaseDate)`n"
# CPU Information
$Report += "`n[CPU INFORMATION]`n`n"
$CPU = Get-WmiObject -Class Win32_Processor
$Report += "Name: $($CPU.Name)`n"
$Report += "Number of Cores: $($CPU.NumberOfCores)`n"
$Report += "Number of Logical Processors: $($CPU.NumberOfLogicalProcessors)`n"
$Report += "Max Clock Speed: $($CPU.MaxClockSpeed) MHz`n"
$Report += "Current Clock Speed: $($CPU.CurrentClockSpeed) MHz`n"
$Report += "Architecture: $($CPU.Architecture)`n"
$Report += "L2 Cache Size: $($CPU.L2CacheSize) KB`n"
$Report += "L3 Cache Size: $($CPU.L3CacheSize) KB`n"
# Memory Information
$Report += "`n[MEMORY INFORMATION]`n`n"
$Memory = Get-WmiObject -Class Win32_PhysicalMemory
$TotalRAM = [math]::Round($CS.TotalPhysicalMemory / 1GB, 2)
$Report += "Total Physical Memory: $TotalRAM GB`n`n"
$MemorySlot = 1
foreach ($Stick in $Memory) {
$Capacity = [math]::Round($Stick.Capacity / 1GB, 2)
$Report += "Memory Slot $MemorySlot:`n"
$Report += " Capacity: $Capacity GB`n"
$Report += " Speed: $($Stick.Speed) MHz`n"
$Report += " Manufacturer: $($Stick.Manufacturer)`n"
$Report += " Part Number: $($Stick.PartNumber)`n"
$Report += " Serial Number: $($Stick.SerialNumber)`n`n"
$MemorySlot++
}
# Disk Information
$Report += "`n[DISK INFORMATION]`n`n"
$Disks = Get-WmiObject -Class Win32_DiskDrive
$DiskNum = 1
foreach ($Disk in $Disks) {
$Size = [math]::Round($Disk.Size / 1GB, 2)
$Report += "Disk $DiskNum`:`n"
$Report += " Model: $($Disk.Model)`n"
$Report += " Size: $Size GB`n"
$Report += " Interface: $($Disk.InterfaceType)`n"
$Report += " Serial Number: $($Disk.SerialNumber)`n"
$Report += " Partitions: $($Disk.Partitions)`n`n"
$DiskNum++
}
# Logical Drives
$Report += "`n[LOGICAL DRIVES]`n`n"
$LogicalDisks = Get-WmiObject -Class Win32_LogicalDisk | Where-Object { $_.DriveType -eq 3 }
foreach ($LD in $LogicalDisks) {
$Size = [math]::Round($LD.Size / 1GB, 2)
$FreeSpace = [math]::Round($LD.FreeSpace / 1GB, 2)
$UsedSpace = $Size - $FreeSpace
$PercentFree = [math]::Round(($FreeSpace / $Size) * 100, 2)
$Report += "Drive $($LD.DeviceID)`n"
$Report += " Volume Name: $($LD.VolumeName)`n"
$Report += " File System: $($LD.FileSystem)`n"
$Report += " Total Size: $Size GB`n"
$Report += " Used Space: $UsedSpace GB`n"
$Report += " Free Space: $FreeSpace GB ($PercentFree%)`n`n"
}
# Motherboard Information
$Report += "`n[MOTHERBOARD INFORMATION]`n`n"
$Motherboard = Get-WmiObject -Class Win32_BaseBoard
$Report += "Manufacturer: $($Motherboard.Manufacturer)`n"
$Report += "Product: $($Motherboard.Product)`n"
$Report += "Version: $($Motherboard.Version)`n"
$Report += "Serial Number: $($Motherboard.SerialNumber)`n"
# Graphics Card Information
$Report += "`n[GRAPHICS CARD INFORMATION]`n`n"
$GPU = Get-WmiObject -Class Win32_VideoController
$GPUNum = 1
foreach ($Card in $GPU) {
$VRAM = [math]::Round($Card.AdapterRAM / 1GB, 2)
$Report += "GPU $GPUNum`:`n"
$Report += " Name: $($Card.Name)`n"
$Report += " Video Memory: $VRAM GB`n"
$Report += " Driver Version: $($Card.DriverVersion)`n"
$Report += " Driver Date: $($Card.DriverDate)`n"
$Report += " Video Processor: $($Card.VideoProcessor)`n"
$Report += " Current Resolution: $($Card.CurrentHorizontalResolution) x $($Card.CurrentVerticalResolution)`n"
$Report += " Current Refresh Rate: $($Card.CurrentRefreshRate) Hz`n`n"
$GPUNum++
}
# Network Adapters
$Report += "`n[NETWORK ADAPTERS]`n`n"
$Network = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object { $_.PhysicalAdapter -eq $true -and $_.MACAddress -ne $null }
$NetNum = 1
foreach ($Adapter in $Network) {
$Report += "Adapter $NetNum`:`n"
$Report += " Name: $($Adapter.Name)`n"
$Report += " MAC Address: $($Adapter.MACAddress)`n"
$Report += " Speed: $($Adapter.Speed)`n"
$Report += " Status: $($Adapter.NetConnectionStatus)`n`n"
$NetNum++
}
# Network Configuration
$Report += "`n[NETWORK CONFIGURATION]`n`n"
$NetConfig = Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled -eq $true }
foreach ($Config in $NetConfig) {
$Report += "Interface: $($Config.Description)`n"
$Report += " IP Address: $($Config.IPAddress -join ', ')`n"
$Report += " Subnet Mask: $($Config.IPSubnet -join ', ')`n"
$Report += " Default Gateway: $($Config.DefaultIPGateway -join ', ')`n"
$Report += " DNS Servers: $($Config.DNSServerSearchOrder -join ', ')`n"
$Report += " DHCP Enabled: $($Config.DHCPEnabled)`n`n"
}
# Battery Information (for laptops)
$Battery = Get-WmiObject -Class Win32_Battery
if ($Battery) {
$Report += "`n[BATTERY INFORMATION]`n`n"
$Report += "Name: $($Battery.Name)`n"
$Report += "Status: $($Battery.Status)`n"
$Report += "Estimated Charge Remaining: $($Battery.EstimatedChargeRemaining)%`n"
$Report += "Battery Status: $($Battery.BatteryStatus)`n"
}
# Save report to file
$Report | Out-File -FilePath $OutputFile -Encoding UTF8
Write-Host "========================================" -ForegroundColor Green
Write-Host "Report generated successfully!" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Green
Write-Host ""
Write-Host "Output saved to: $OutputFile" -ForegroundColor Yellow
Write-Host ""
Write-Host "Opening report..." -ForegroundColor Yellow
# Open the report
notepad $OutputFile
Login
0 Comments
Oldest