Die folgende Beitragsserie hilft bei der Erfassung von PC-Inventar nur mit PowerShell und MS Office in Active Directory-Umgebungen, ohne dass eine spezielle Softwarelösung vorhanden sein muss.
Beginnen wir mit der Erkennung des Prozessors:
Angaben zu den installierten Prozessoren lassen sich mit get-wmiobject Win32_Processor ermitteln.
Die Ausgabe des Befehls sieht beispielsweise so aus:
Caption : Intel64 Family 6 Model 23 Stepping 10
DeviceID : CPU0
Manufacturer : GenuineIntel
MaxClockSpeed : 2667
Name : Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
SocketDesignation : XU1 PROCESSOR
Innerhalb des Inventarisierungsskripts legen wir diese Information in die Variable $colCPUs:
$colCPUs = gwmi win32_processor
Da wir bei Servern oder Workstations auch einmal auf mehrere Prozessoren stoßen können, sollten wir auch alle erfassen.
Interessant sind für uns der Prozessorname (hinterlegt in der neuen Variable $processor) und die Geschwindigkeit (hinterlegt in $cpuspeed).
$n = 0
foreach ($cpu in $colCPUs)
{
$n = $n + 1
$processor = ((($cpu.name -replace ' {2,}',' ') -replace "\(TM\)") -replace '\(R\)')
}
In diesem Beispiel ersetzen wir einige aus technischer Sicht uninteressante Zeichenfolgen und Leerzeichen entweder durch Leerzeichen oder durch gar nichts, um die Lesbarkeit zu erhöhen.
Das Ergebnis liest sich dann:
Intel Core2 Quad CPU Q8400 @ 2.66GHz
Die Geschwindigkeit wird in der Eigenschaft maxclockspeed standardmäßig in KHz ausgegeben, die folgende Zeile konvertiert diese Information zu GHz und formatiert sie entsprechend:
$cpuspeed = "{0:0.00 GHz}" -f($cpu.maxclockspeed/1000)
hinterlegt in der Variable $cpuspeed den Eintrag
2.67 GHz
Donnerstag, 1. September 2016
PowerShell: PC Hardware inventarisieren - 1. Prozessoren
Trackbacks
Trackback-URL für diesen Eintrag
Keine Trackbacks