Das Skript von Teil 6 gibt separate Dateien für jeden PC und für die Monitore vom Typ CSV aus. Diese Textdateien beinhalten genau eine Zeile.
Für den PC beispielsweise EURITX.csv mit folgendem Inhalt:
EURITX HP Compaq 8000 Elite SFF PC CZC01234567 Intel Core2 Quad CPU Q8400 @ 2.66GHz 2.67 GHz 8196 256 Microsoft Windows 10 Enterprise 172.22.3.111 OU=WIN10Pilot,OU=TEST,OU=DE,DC=europe,DC=hanjin,DC=com 04912345 (Engelke, Olaf) IT 09-28-2016 17:04 Inventory Script 1 176.31
Im Zielverzeichnis für die Logdateien befinden sich zahlreiche dieser Dateien, die so noch nicht besonders gut lesbar sind. Damit wir besser damit umgehen können und eine einfache Verarbeitung mit Access oder Excel möglich wird, ziehen wir diese Dateien mit folgendem PowerShell-Skript zusammen:
#Erzeugt eine einzelne Logdatei aus den durch das Asset WMI-Skript generierten Dateien, getrennt für PC und Monitore unter T:\Asset\logfile.csv and monitors.csv
#Archiviert erfasste Einzeldateien durch Verschieben
$ErrorActionPreference = 'SilentlyContinue'
#Festlegen der Pfade
$pcsource = "\\server\assetLog$\Computer*.csv"
$pclog = "t:\asset_db\logfile.csv"
$dspsource = "\\server\assetLog$\Monitor*.csv"
$dsplog = "t:\asset_db\monitors.csv"
$pcarchive = "\\server\assetlog$\oldlog\computer\"
$dsparchive = "\\server\assetlog$\oldlog\monitor\"
#Löschen der alten Logdateien
del $pclog
del $dsplog
#Überschriftszeile generieren
$pcinfo="SystemName"+"`t"+"ModelName"+"`t"+"SerialNbr"+"`t"+"Property1"+"`t"+"Property2"+"`t"+"Property3"+"`t"+"Property4"+"`t"+"Property5"+"`t"+"Property6"+"`t"+"SystemADOU"+"`t"+"LastUser"+"`t"+"Team"+"`t"+"LastModified"+"`t"+"LastModifiedBy"+"`t"+"StatusID"
#Überschrift in neue Gesamtlogdatei übertragen und die Inhalte der Dateien an diese anhängen
write-output $pcinfo | format-table | out-file $pclog
cat $pcsource >> $pclog
#Verschieben der alten Einzellogs für Computer
move-item $pcsource $pcarchive -force
#Wiederholung für Monitore, gefiltert für die Hersteller der Monitore, um virtuelle und sonstige Displays auszuklammern sowie Entfernen störender Inhalte
$dspinfo="ModelName"+"`t"+"SerialNbr"+"`t"+"PCSerial"+"`t"+"LastModified"+"`t"+"LastModifiedBy"+"`t"+"StatusID"
write-output $dspinfo | format-table | out-file $dsplog
cat $dspsource | select-string -pattern "Dell","HP" | foreach-object {$_ -replace "`0",""} >> $dsplog
#Verschieben der alten Einzellogs für Displays
move-item $dspsource $dsparchive -force
Im Ergebnis erhalten wir zwei CSV-Dateien, in denen die wichtigsten Daten aller geloggten PCs und Monitore tabellarisch abgelegt sind.
Donnerstag, 29. September 2016
PowerShell: PC-Hardware inventarisieren: 7. Dateien zusammenziehen
Trackbacks
Trackback-URL für diesen Eintrag
Keine Trackbacks