WinFuture-Forum.de: WMIC ABfrage für mehere Parameter - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

WMIC ABfrage für mehere Parameter


#1 Mitglied ist offline   stefan4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 41
  • Beigetreten: 22. April 20
  • Reputation: 0

geschrieben 04. Juli 2020 - 11:17

Liebe Leute,

ich wollte mir ein kleines Abfragescript bauen, was folgendes tut, Im Lan per Schleife, aus einer Rechnerliste, die Namen auslesen, und für jeden Rechner einige Parameter abfragen und in eine csv eintragen. Folgender Einzelefehl funktioniert aber nicht, auch einzeln in der cmdbox nicht. Lokal funktioniert er.

wmic /node:\\%%g get Manufacturer^,Model^,TotalPhysicalMemory^,SystemType^,Workgroup




Auch wenn ich die variable durch einen rechnernamen ersetze kommt immer get Alias konnte nicht gefunden werden, wie muss die Syntax richtig lauten. Für die interessierten kann ich auch gerne das komplette Script posten, aber erst mal muss diese Syntax ja stimmen


Danke i.V:

LG und schönen Samstag
0

Anzeige



#2 Mitglied ist offline   DK2000 

  • Gruppe: Administration
  • Beiträge: 19.795
  • Beigetreten: 19. August 04
  • Reputation: 1.434
  • Geschlecht:Männlich
  • Wohnort:Oben auf dem Berg
  • Interessen:Essen, PC, Filme, TV Serien...

geschrieben 04. Juli 2020 - 11:39

Das liegt daran, das Du nicht gesagt hast, von wo "get" seine Informationen herholen soll. Es fehlt das WMIObject bzw. dessen Alias, in Deinem Falle "Computersystem":

wmic /node:Laptop computersystem get model,manufacturer,systemtype,TotalPhysicalMemory,Workgroup

Das sollte folgende Ausgabe ergeben:
Manufacturer     Model               SystemType    TotalPhysicalMemory  Workgroup
Hewlett-Packard  HP EliteBook 8760w  x64-based PC  17127813120          WORKGROUP

Allerdings ob das uneingeschränkt im Netzwerk funktioniert, ist eine andere Frage. Kann ich gerade nicht testen, kann aber sein, dass das erst freigeschaltet werden muss.

Wenn Du /Node verwendest, musst Du vermutlich auch /User und /Password verwenden.
Ich bin kein Toilettenpapier-Hamster.
---
Ich bin ein kleiner, schnickeldischnuckeliger Tiger aus dem Schwarzwald.
Alle haben mich ganz dolle lila lieb.
0

#3 Mitglied ist offline   stefan4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 41
  • Beigetreten: 22. April 20
  • Reputation: 0

geschrieben 04. Juli 2020 - 12:00

Super, danke, hatte ich doch glatt übersehen

Danke

Schönes we noch
0

#4 Mitglied ist offline   stefan4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 41
  • Beigetreten: 22. April 20
  • Reputation: 0

geschrieben 04. Juli 2020 - 17:34

Hllo noch mal, eigentlich hatte ich gedacht, mein Problem sei jetzt gelöst, leider doch nicht. Wie gesagt ich habe ein Script, was mir die untenstehenden Werte remote auslesen soll, welche in computernames.txt enthalten sind.
Dort steht dann untereinander X21222 x33333. etc.

<ich möchte ganz einfach nur eine csv erhalten, wo für jeden gefundenen Rechner diese Werte eingetragen werden, das Ergebnis ist leider etwas chaotisch. Teilweise stehen werte die zu einem Rechner gehören mehere Zeilen auseinander, vielleich hat ja jemand eine Idee. Das Batch schaut jetzt si aus:

@echo off
setlocal EnableDelayedExpansion


  
for /F "tokens=*" %%i in (computernames.txt) do (
 set "zManufacturer="
  set "zHostName="
  set "zOsName="
  set "zSystemModel="
  set "zSystemType="
  set "zTotalPhysicalMemory="
  set "zIpAddresses="
  set "zHddSizes="
  set "zCpuName="
  set "zBiosSerial="


  for /f "skip=1 tokens=1-6 delims=," %%A in ('wmic /Node:%%i computersystem get Manufacturer^,Model^,TotalPhysicalMemory^,SystemType^,Workgroup /format:csv ^| findstr ","') do (
    set "zHostName=%%A"
    set "zManufacturer=%%B"
    set "zSystemModel=%%C"
    set "zSystemType=%%D"
    set "zTotalPhysicalMemory=%%E"
  )

  for /f "tokens=2 delims=:" %%A in ('psexec64 \\%%i -u Administrator -p pass IPCONFIG ^| findstr /i ipv4') do set "zIpAddresses=!zIpAddresses!%%A"
   set "zIpAddresses=!zIpAddresses:~1!"
   set "zIpAddresses=!zIpAddresses: =;!"

  for /f "tokens=1 delims=|" %%A in ('wmic /Node:%%i os get name ^|findstr "|"') do set "zOsName=%%A"

  for /f "tokens=2 delims=," %%A in ('wmic /Node:%%i bios get serialnumber^,version /format:csv') do set "zBiosSerial=%%A"

  for /f "tokens=2 delims=," %%A in ('wmic /Node:%%i cpu get name^,version /format:csv') do set "zCpuName=%%A"

  for /f "skip=1 tokens=2 delims=," %%A in ('wmic /Node:%%i diskdrive get size^,TracksPerCylinder /format:csv ^|findstr /v /r "^$"') do set "zHddSizes=!zHddSizes!;%%A"
    set "zHddSizes=!zHddSizes:~1!"

  echo !zHostName!,!zBiosSerial!,!zManufacturer!,!zSystemModel!,!zOsName!,!zSystemType!,!zTotalPhysicalMemory!,!zIpAddresses!,!zCpuName!,!zHddSizes!>> c:\ko.csv
)



vielen Dank iv und schönes
Wochenende noch
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0