WMIC-Batchdatei zum Durchlaufen von CSV und Abrufen des Laufwerksstatus

0

Ich verwende diesen Code, um den Status des Laufwerks von Remote-PCs in meinem Unternehmen zu überprüfen

for /f "tokens=1 delims= " %%a in (C:\temp\HOSTNAMES.csv) do (
    WMIC /Node:%%a  DiskDrive GET Caption, Status
)

Dies funktioniert gut, aber ich muss den Status (OK) oder (Pred Fail) für jeden PC-HOSTNAME in unserem Netzwerk erfassen und einen einfachen CSV-Bericht erstellen, da über 2000 PCs zu überprüfen sind

Der Bericht würde also so aussehen

PC HOSTNAME  - STATUS
HOSTNAME01A  - OK
HOSTNAME02B  - Pred Fail
HOSTNAME03C   - Pred Fail
HOSTNAME04D   - OK

Ich habe wirklich Mühe, einer Variablen den Laufwerksstatus zuzuweisen, damit ich den Bericht erstellen kann.

Keiren Medlock
quelle
Hängt die WMIC-Ausgabe an eine Textdatei an. Entfernen Sie dann die Überschriften aus dieser Datei mit FIND / v
Akina
Hallo Akina, danke für deine Antwort. Würde es dir etwas ausmachen, den Code in meinen ursprünglichen Code zu schreiben, da ich noch sehr neu im Schreiben von Batch-Cmds bin und ich für immer Versuch und Irrtum verwenden werde. Danke noch einmal.
Keiren Medlock
Die Option / NODE verwendet auch einen Dateinamen als Eingabe. wmic /node:@Hostnames.txt.
Squashman

Antworten:

1
  • "tokens=1 delims= " ist die Standardeinstellung und muss nicht angegeben werden.
  • Bei Verwendung von wmic mit wird der /Format:csvKnoten Teil der Ausgabe

:: Q:\Test\2018\10\30\SU_1371253.cmd
@Echo off
SetLocal EnableExtensions EnableDelayedExpansion

( for /f %%H in (HOSTNAMES.csv) do (
      Echo:Processing %%H>CON:
      for /f "delims=" %%A in ('
          WMIC /node:%%H DiskDrive GET Caption^,Status /Format:csv ^|findstr /i "%%H"
      ') do @Echo %%A
  )
) > "%~dpn0.Log"
LotPings
quelle
Hallo LotPings, vielen Dank für deine Antwort, wenn alles perfekt geklappt hat.
Keiren Medlock
Ich habe vergessen zu erwähnen, dass die Ausgabedatei derselbe Speicherort und Name wie der Stapel ist, aber mit der Erweiterung.Log
LotPings
0

Wie von LotPings angegeben, enthält das csvAusgabeformat den Knotennamen. Wenn wir dies mit der Fähigkeit kombinieren wmic, die Liste der Hosts aus einer Datei zu lesen, die wir verwenden können

wmic /node:@"c:\temp\hostnames.csv" DiskDrive get Caption,Status /format:csv > report.csv

Oder

wmic /node:@"c:\temp\hostnames.csv" /output:"report.csv" DiskDrive get Caption,Status /format:csv 

Auf diese Weise starten wir nur einen wmicProzess anstelle von einem für jeden Knoten.

MC ND
quelle