Bei der Verwaltung und Wartung von Computersystemen ist es sehr wichtig, Informationen zur Computerhardware zu erhalten. Das Verständnis der Hardwarekonfiguration kann uns helfen, die Leistung und Skalierbarkeit des Systems besser zu verstehen, Probleme zu identifizieren und Fehler zu beheben. PowerShell ist ein leistungsstarkes Tool, wenn Sie Informationen über Ihr Computersystem abrufen möchten. Hier erklären wir, wie Sie PowerShell verwenden, um die BIOS-Version, Betriebssysteminformationen, CPU-Modell, Speicherinformationen, Grafikkarteninformationen, Festplatteninformationen und Netzwerkadapterinformationen Ihres Computers abzurufen.
Get-CimInstance
Zuerst müssen wir den Befehl verwenden , um den veralteten Get-WmiObject
Befehl zu ersetzen. Dies macht Ihren Code effizienter und Get-CimInstance
ist ein neuerer Befehl in PowerShell. Als nächstes holen wir uns nacheinander die benötigten Systeminformationen und speichern sie in den entsprechenden Variablen.
Holen Sie sich die BIOS-Version
Zuerst verwenden wir den folgenden Code, um die BIOS-Versionsnummer des Computers abzurufen:
$BIOS_Version = (Get-CimInstance -ClassName Win32_BIOS).SMBIOSBIOSVersion.trim().toupper()
Diese Codezeile ruft Get-CimInstance
den Befehl auf und wählt Win32_BIOS
die Klasse aus, ruft dann SMBIOSBIOSVersion
den Wert der Eigenschaft ab, verwendet trim()
die Funktion zum Entfernen von Leerzeichen und wandelt das Ergebnis in Großbuchstaben um.
Informationen zum Betriebssystem abrufen
Als nächstes erhalten wir die Betriebssysteminformationen des Computers, einschließlich Name und Versionsnummer:
$OS = (((Get-CimInstance -ClassName Win32_OperatingSystem).Caption).caption) + " (" + (Get-ItemPropertyValue -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name DisplayVersion) + ")"
Diese Codezeile ruft den Befehl auf, um eine Instanz der Klasse Get-CimInstance
abzurufen und das Attribut als Namen des Betriebssystems auszuwählen. Als nächstes verwenden wir die Funktion, um die Versionsnummer aus der Registrierung abzurufen und sie mit dem Namen des Betriebssystems zu verketten.Win32_OperatingSystem
Caption
Get-ItemPropertyValue
CPU-Modell abrufen
Wir können PowerShell auch verwenden, um das CPU-Modell des Computers abzurufen:
$CPU = (Get-CimInstance -ClassName Win32_Processor).Name.trim()
Diese Codezeile ruft Get-CimInstance
den Befehl auf und wählt Win32_Processor
die Klasse aus, ruft dann Name
den Wert der Eigenschaft ab und verwendet trim()
die Funktion, um die Leerzeichen zu entfernen.
Speicherinformationen abrufen
Nachfolgend erhalten wir die Speicherinformationen des Computers, einschließlich der Gesamtkapazität sowie der Kapazität und Geschwindigkeit jedes physischen Speichersticks:
$Memorys = Get-CimInstance -ClassName Win32_PhysicalMemory
$TotalMemory = 0
$Memory = foreach ($obj in $Memorys) {
$TotalMemory += $obj.Capacity
($obj.Capacity/1GB).ToString() + " GB " + $obj.Speed + "MHz"
}
$Memory = ($TotalMemory/1GB).ToString() + " GB (" + ($Memory -join " / ") + ")"
Zuerst rufen wir Get-CimInstance
den Befehl auf, wählen Win32_PhysicalMemory
die Klasse aus und speichern das Ergebnis in $Memorys
einer Variablen. Anschließend verwenden wir eine Schleife, um jede physische Speicherbank zu durchlaufen und die Gesamtspeicherkapazität zu berechnen. In der Schleife bauen wir ein Array auf, das die Kapazität und Geschwindigkeit jedes physischen Speichersticks nutzt $Memory
. Schließlich fügen wir die Gesamtspeicherkapazität und die Informationen zum Speichermodul zusammen.
Informationen zur Grafikkarte abrufen
In PowerShell können wir auch die Grafikkarteninformationen des Computers abrufen:
$Displays = Get-CimInstance -ClassName Win32_VideoController
$Display = foreach ($controller in $Displays) {
$controller.Name
}
$Display = ($Display -join " / ")
Dieser Code ruft zunächst einen Befehl auf, um eine Instanz der Klasse Get-CimInstance
abzurufen , und speichert das Ergebnis in einer Variablen. Anschließend verwenden wir eine Schleife, um jeden Videocontroller zu durchlaufen und seinen Namen dem Array hinzuzufügen. Schließlich können wir durch die Verkettung aller Elemente im Array eine Zeichenfolge erhalten, die die Namen aller Grafikkarten enthält.Win32_VideoController
$Displays
$Display
$Display
Informationen zum Festplattenlaufwerk abrufen
Als Nächstes erhalten wir die Informationen zum Festplattenlaufwerk des Computers, einschließlich Laufwerksbezeichnung und Kapazität:
$Disks = Get-CimInstance -ClassName Win32_DiskDrive | Where-Object {
$_.MediaType -eq 'Fixed hard disk media' } | Sort-Object -Property Index
$HD = foreach ($disk in $Disks) {
$disk.Caption + " (" + [Math]::Round($disk.Size/1GB) + " GB )"
}
$HD = ($HD -join " / ")
Dieser Code ruft zunächst Get-CimInstance
den Befehl auf, wählt Win32_DiskDrive
die Klasse aus und MediaType
filtert dann feste Festplatten basierend auf den Eigenschaften heraus. Anschließend verwenden wir den Befehl , um die Laufwerke Sort-Object
nach ihren Eigenschaften zu sortieren. Index
In der Schleife ermitteln wir die Bezeichnung und Größe jedes Festplattenlaufwerks und fügen es dem $HD
Array hinzu. Schließlich verketten wir alle Laufwerksinformationen.
Informationen zum Netzwerkadapter abrufen
Schließlich erhalten wir die Netzwerkadapterinformationen des Computers, einschließlich Adaptername und MAC-Adresse:
$Adapters = Get-CimInstance -ClassName Win32_NetworkAdapter -Filter "PNPDeviceID LIKE 'PCI%'"
$NT = foreach ($adapter in $Adapters) {
$adapter.Name + " (" + $adapter.MACAddress + ")"
}
$NT = ($NT -join " / ")
Dieser Code ruft Get-CimInstance
den Befehl auf, wählt Win32_NetworkAdapter
die Klasse aus und verwendet einen Filter, um PCI-Adapter herauszufiltern. Anschließend durchlaufen wir jeden Adapter und verketten den Namen und die MAC-Adresse des Adapters in $NT
einem Array. Zum Schluss fügen wir alle Informationen zum Netzwerkadapter zusammen.
Die endgültige Ausgabe sieht folgendermaßen aus:
BIOS 版本: 1.15.0
操作系统: Microsoft Windows 11 企业版 (22H2)
CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
内存: 32 GB (16 GB 3200MHz / 16 GB 3200MHz)
显卡: NVIDIA GeForce RTX 3050 Ti Laptop GPU / Intel(R) UHD Graphics
硬盘: NVMe Fanxiang S690 2TB (1863 GB) / NVMe KBG40ZNS1T02 NVMe KIOXIA 1024GB (954 GB)
网络适配器: Intel(R) Wi-Fi 6 AX201 160MHz (7C:**:**:**:**:B5) #此处隐藏了MAC地址具体信息
Diese Beispielausgabe enthält die von Ihnen bereitgestellten Hardwareinformationen, einschließlich Details zu BIOS-Version, Betriebssystem, CPU, Speicher, Grafikkarte, Festplatte und Netzwerkadapter.
Bitte beachten Sie, dass die genaue Ausgabe je nach Hardwarekonfiguration Ihres Computers variieren kann. Das Obige ist nur ein Beispiel und stellt nicht die tatsächliche Ausgabe aller Computer dar.
Ich hoffe, dieser Blog ist hilfreich für Sie! Wenn Sie Fragen haben, können Sie diese gerne stellen.