środa,
PowerShell: Informacje o sprzęcie
PowerShell to zaawansowane narzędzie do zarządzania systemem i sprzętem za pomocą poleceń tekstowych. Z jego pomocą można m.in. uzyskać szczegółowe informacje o sprzęcie. PowerShell korzysta z Windows Management Instrumentation (WMI) i CIM (Common Information Model), które zapewniają bogaty zestaw narzędzi do zbierania danych o systemie. Dostępne informacje mogą się różnić w zależności od sprzętu i konfiguracji systemu. Ponadto, w niektórych środowiskach korporacyjnych, polityki bezpieczeństwa mogą ograniczać dostęp do niektórych informacji o sprzęcie. Maksymalne możliwości daje uruchamianie prezentowanych przykładów z poziomu konta administracyjnego.
Przykłady
Dostępność informacji może zależeć od konkretnego sprzętu i sterowników. Niektóre komputery mogą nie dostarczać wszystkich danych, na przykład informacji o temperaturze. Ponadto, w niektórych przypadkach, może być konieczne uruchomienie PowerShell jako administrator, aby uzyskać dostęp do niektórych danych.
Płyta główna i BIOS
Get-WmiObject Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber
Get-WmiObject Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion, Version
Karta sieciowa
Get-WmiObject Win32_NetworkAdapter | Where-Object { $_.NetConnectionStatus -eq 2 } | Select-Object Name, NetConnectionStatus, Speed
System operacyjny
Get-WmiObject Win32_OperatingSystem | Select-Object Caption, Version, ServicePackMajorVersion, OSArchitecture, InstallDate
Drukarki
Get-WmiObject Win32_Printer | Select-Object Name, Default, Network, Shared
Urządzenia USB
Get-WmiObject Win32_USBControllerDevice | ForEach-Object { [Wmi]$_.Dependent } | Select-Object Name, Description, DeviceID
Stan baterii (dla laptopów)
Get-WmiObject Win32_Battery | Select-Object EstimatedChargeRemaining, EstimatedRunTime, Status
Informacje o partycjach dysku
Get-WmiObject Win32_DiskPartition | Select-Object Name, BootPartition, Size
Informacje o temperaturze (jeśli dostępne)
Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi" | ForEach-Object { $_.CurrentTemperature / 10 - 273.15 }
1### Informacje o dźwięku
Get-WmiObject Win32_SoundDevice | Select-Object Name, Manufacturer, Status
Informacje o kontrolerach SATA
Aby uzyskać informacje o kontrolerach SATA w systemie Windows za pomocą PowerShell, możesz skorzystać z WMI (Windows Management Instrumentation), podobnie jak w przypadku innych komponentów sprzętowych. Mogą być wymienione pod różnymi klasami WMI, ale najczęściej używane to Win32_IDEController
i Win32_SCSIController
, ponieważ kontrolery SATA mogą być prezentowane jako jedno z tych urządzeń w zależności od konfiguracji systemu i sterowników. Warto sprawdzić obie opcje, aby uzyskać pełny obraz dostępnych kontrolerów.
Dla kontrolerów IDE (które mogą obejmować niektóre kontrolery SATA)
Get-WmiObject Win32_IDEController | Select-Object Name, Manufacturer, DeviceID
Dla kontrolerów SCSI (które również mogą obejmować kontrolery SATA)
Get-WmiObject Win32_SCSIController | Select-Object Name, Manufacturer, DeviceID
Informacje o podłączonych dyskach
Ponadto, jeśli chcesz uzyskać bardziej szczegółowe informacje o dyskach podłączonych do kontrolerów SATA, możesz użyć klasy Win32_DiskDrive
, która dostarcza informacji o fizycznych dyskach twardych w systemie:
Get-WmiObject Win32_DiskDrive | Select-Object Model, InterfaceType, MediaType, Size
W tym przypadku, InterfaceType
może wskazywać na IDE
lub SCSI
, ale dla nowoczesnych systemów często dyski SATA są prezentowane jako SCSI
ze względu na sposób, w jaki są zarządzane przez system operacyjny i sterowniki.
Przykładowy skrypt
Prezentowany skrypt PowerShell wyświetla podstawowe informacje o sprzęcie komputera i korzysta z różnych poleceń cmdlet, aby uzyskać informacje o takich komponentach jak procesor, pamięć RAM, dysk twardy i karta graficzna. Informacje na temat tworzenia i uruchamiania skryptów PowerShell w środowisku Windows znajdziesz w materiale „Jak napisać i uruchomić skrypt PowerShell w Windows?”.
Prezentowany skrypt wyświetla podstawowe informacje o sprzęcie komputera i korzysta z różnych poleceń cmdlet, aby uzyskać informacje o takich komponentach jak procesor, pamięć RAM, dysk twardy i karta graficzna.
# Pobierz informacje o procesorze
$cpu = Get-WmiObject -Class Win32_Processor
Write-Host "Procesor: " $cpu.Name
# Pobierz informacje o pamięci RAM
$ram = Get-WmiObject -Class Win32_PhysicalMemory
$totalRam = 0
foreach ($memory in $ram) {
$totalRam += $memory.Capacity
}
$totalRamGB = $totalRam / 1GB
Write-Host "Pamięć RAM: " $totalRamGB "GB"
# Pobierz informacje o dysku twardym
$disks = Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3"
foreach ($disk in $disks) {
$sizeGB = $disk.Size / 1GB -as [int]
$freeSpaceGB = $disk.FreeSpace / 1GB -as [int]
Write-Host "Dysk twardy: " $disk.DeviceID " - Rozmiar: " $sizeGB "GB, Wolne miejsce: " $freeSpaceGB "GB"
}
Ten skrypt wykonuje następujące czynności:
- Używa
Get-WmiObject
z różnymi klasami WMI (Windows Management Instrumentation) do pobierania informacji o sprzęcie. - Wyświetla informacje o procesorze (
Win32_Processor
). - Sumuje całkowitą ilość pamięci RAM z wszystkich modułów (
Win32_PhysicalMemory
). - Wyświetla informacje o każdym dysku twardym, w tym rozmiar i dostępną przestrzeń (
Win32_LogicalDisk
). - Wyświetla informacje o zainstalowanych kartach graficznych (
Win32_VideoController
).