103148
Mar 13, 2014
9200
14
0
Per Batch Client auslesen
Hallo,
ich möchte gerne paar Infos von unseren Clients auslesen.
Dazu würde ich folgenden Befehl im Anmelde Script nutzen:
1. ver >> \\server\client\%computername%.txt
2. wmic bios get serialnumber >> >> \\server\client\%computername%.txt
Frage, wie bekomme ich die Augabe in eine Zeile für die TXT Datei, oder kann man die Daten auch in eine Excel Datei schreiben und jede Ausgabe in ein Feld?
Ideal wäre vorab den %computername% + %username% dann die Windows Version und dann die Service Tag, die Liste muss ich dann mit Dell abgleichen bezüglich Garantie Zeit.
Zur Zeit bekomme ich folgende Ausgabe:
Microsoft Windows [Version 6.1.7601]
S e r i a l N u m b e r XYZABCD
Die PC sind von Dell ab Windows XP in einer 2008 Server Umgebung im AD.
XP gibt den Wert ser SerialNumber nicht zurück.
ich möchte gerne paar Infos von unseren Clients auslesen.
Dazu würde ich folgenden Befehl im Anmelde Script nutzen:
1. ver >> \\server\client\%computername%.txt
2. wmic bios get serialnumber >> >> \\server\client\%computername%.txt
Frage, wie bekomme ich die Augabe in eine Zeile für die TXT Datei, oder kann man die Daten auch in eine Excel Datei schreiben und jede Ausgabe in ein Feld?
Ideal wäre vorab den %computername% + %username% dann die Windows Version und dann die Service Tag, die Liste muss ich dann mit Dell abgleichen bezüglich Garantie Zeit.
Zur Zeit bekomme ich folgende Ausgabe:
Microsoft Windows [Version 6.1.7601]
S e r i a l N u m b e r XYZABCD
Die PC sind von Dell ab Windows XP in einer 2008 Server Umgebung im AD.
XP gibt den Wert ser SerialNumber nicht zurück.
Please also mark the comments that contributed to the solution of the article
Content-Key: 232489
Url: https://administrator.de/contentid/232489
Printed on: April 19, 2024 at 20:04 o'clock
14 Comments
Latest comment
Hallo angebissener-apfel,
könntest du so mit Batch machen:
oder via VBS so
Alles in ein Excel-File schreiben ginge auch, das setzt aber auf den Clients jeweils voraus das dort Excel installiert ist und du hättest dann Zugriffs-Probleme wenn gleichzeitige Logins stattfinden.
Alternativ lassen sich die Informationen auch mit einem Inventory-Script Remote für ein ganzes Netzwerk abfragen und direkt in einem Excel-File zusammenfassen:
Grüße Uwe
könntest du so mit Batch machen:
@echo off & setlocal
REM Serial auslesen
for /f "tokens=2 delims==" %%a in ('wmic bios get SerialNumber /format:list ^| findstr /i "SerialNumber"') DO set serial=%%a
REM Version auslesen
for /f "delims=" %%a in ('ver') do set version=%%a
echo %computername%;%username%;%version%;%serial% >"\\server\client\%computername%.txt"
Dim strComputername, strVersion, strSerial, strUsername
Set fso = CreateObject("Scripting.Filesystemobject")
Set objShell = CreateObject("Wscript.Shell")
strComputername = objShell.ExpandEnvironmentStrings("%computername%")
strUsername = objShell.ExpandEnvironmentStrings("%username%")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_Bios")
For Each objBIOS In colSettings
strSerial = objBIOS.SerialNumber
Next
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOS In colSettings
strVersion = objOS.Caption & " " & objOS.Version
Next
info = strComputername & ";" & strUsername & ";" & strVersion & ";" & strSerial
fso.OpenTextFile("\\server\client\" & strComputername & ".txt",2,True).WriteLine(info)
XP gibt den Wert ser SerialNumber nicht zurück.
kann ich hier nicht bestätigen, hier geht das Auslesen der Seriennummer mit WMI auch auf einem XP SP3Alternativ lassen sich die Informationen auch mit einem Inventory-Script Remote für ein ganzes Netzwerk abfragen und direkt in einem Excel-File zusammenfassen:
Grüße Uwe
Zitat von @103148:
cool, bedeutet das ~0,2, das er nur die ersten zwei stellen abfragt?
ja, => DOS String Manipulationcool, bedeutet das ~0,2, das er nur die ersten zwei stellen abfragt?
Grüße Uwe
OK dann ist aber deine Suchmaschine kaputt, z.B. so:
denke Beitrag ist hier jetzt gelöst ...
@echo off & setlocal enabledelayedexpansion
set startpc=1
set endpc=600
for /L %%i IN (%startpc%,1,%endpc%) DO @(
if %%i LSS 10 set prefix=00
if %%i GEQ 10 set prefix=0
if %%i GEQ 100 set prefix=
echo Pinge PC!prefix!%%i
ping -n 1 -w 100 PC!prefix!%%i | find "Bytes=32" >nul && echo Host PC!prefix!%%i ist online!
)