[Win] Verwenden Sie PowerShell-Befehle, um Informationen zur Computerhardware abzurufen

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-CimInstanceZuerst müssen wir den Befehl verwenden , um den veralteten Get-WmiObjectBefehl zu ersetzen. Dies macht Ihren Code effizienter und Get-CimInstanceist 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-CimInstanceden Befehl auf und wählt Win32_BIOSdie Klasse aus, ruft dann SMBIOSBIOSVersionden 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-CimInstanceabzurufen 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_OperatingSystemCaptionGet-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-CimInstanceden Befehl auf und wählt Win32_Processordie Klasse aus, ruft dann Nameden 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-CimInstanceden Befehl auf, wählen Win32_PhysicalMemorydie Klasse aus und speichern das Ergebnis in $Memoryseiner 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-CimInstanceabzurufen , 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-CimInstanceden Befehl auf, wählt Win32_DiskDrivedie Klasse aus und MediaTypefiltert dann feste Festplatten basierend auf den Eigenschaften heraus. Anschließend verwenden wir den Befehl , um die Laufwerke Sort-Objectnach ihren Eigenschaften zu sortieren. IndexIn der Schleife ermitteln wir die Bezeichnung und Größe jedes Festplattenlaufwerks und fügen es dem $HDArray 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-CimInstanceden Befehl auf, wählt Win32_NetworkAdapterdie 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 $NTeinem 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.

おすすめ

転載: blog.csdn.net/u012153104/article/details/132274558