Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Per Batch Client auslesen

Frage Entwicklung Batch & Shell

Mitglied: 103148

103148 (Level 1)

13.03.2014 um 10:47 Uhr, 4076 Aufrufe, 14 Kommentare, 3 Danke

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.

Mitglied: colinardo
13.03.2014, aktualisiert um 12:59 Uhr
Hallo angebissener-apfel,
könntest du so mit Batch machen:
01.
@echo off & setlocal 
02.
 
03.
REM Serial auslesen 
04.
for /f "tokens=2 delims==" %%a in ('wmic bios get SerialNumber /format:list ^| findstr /i "SerialNumber"') DO set serial=%%a 
05.
 
06.
REM Version auslesen 
07.
for /f "delims=" %%a in ('ver') do set version=%%a 
08.
 
09.
echo %computername%;%username%;%version%;%serial% >"\\server\client\%computername%.txt"
oder via VBS so
01.
Dim strComputername, strVersion, strSerial, strUsername 
02.
Set fso = CreateObject("Scripting.Filesystemobject") 
03.
Set objShell = CreateObject("Wscript.Shell") 
04.
strComputername = objShell.ExpandEnvironmentStrings("%computername%") 
05.
strUsername = objShell.ExpandEnvironmentStrings("%username%") 
06.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
07.
 
08.
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_Bios") 
09.
For Each objBIOS In colSettings  
10.
   strSerial = objBIOS.SerialNumber 
11.
Next 
12.
 
13.
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") 
14.
For Each objOS In colSettings  
15.
   strVersion = objOS.Caption & " " & objOS.Version 
16.
Next 
17.
info = strComputername & ";" & strUsername & ";" & strVersion & ";" & strSerial 
18.
fso.OpenTextFile("\\server\client\" & strComputername & ".txt",2,True).WriteLine(info)
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.

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 SP3

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
Bitte warten ..
Mitglied: 103148
17.03.2014 um 11:42 Uhr
hi...

das mit der Batch sieht gut aus.... teste weiter.

Wenn ich dazu eine Abfrage machen möchte die da heißt:

if %computername% = "PC*" then call datei \\server\temp\x.bat

die PC sind nummeriret von PC001 bis PC800 es soll aber nur abgefragt werden ist es ein PC die Nummer wäre egal, wie geht das?

Somit kann ich server ausschliessen zb. das die Datei aufgerufen wird am SERVER01 oder SERVER07

Gruß
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 11:46 Uhr
Zitat von 103148:
die PC sind nummeriret von PC001 bis PC800 es soll aber nur abgefragt werden ist es ein PC die Nummer wäre egal, wie geht
das?
if "%computername:~0,2%" == "PC" call \\server\temp\x.bat
Grüße Uwe
Bitte warten ..
Mitglied: 103148
17.03.2014 um 13:19 Uhr
cool, bedeutet das ~0,2, das er nur die ersten zwei stellen abfragt?
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 13:29 Uhr
Zitat von 103148:
cool, bedeutet das ~0,2, das er nur die ersten zwei stellen abfragt?
ja, => DOS String Manipulation

Grüße Uwe
Bitte warten ..
Mitglied: 103148
17.03.2014, aktualisiert um 13:39 Uhr
okay, somit kann ich alle andere nicht Clients ausschliessen....

ich hätte noch eine Liste ( clients.txt ) die nicht abgefragt werden dürfen, kann du das mit einbinden?

in der Liste steht....

PC007
PC200
PC241

usw

wäre sehr dankbar...

sehr cooler Link....

Gruß
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 13:52 Uhr
eine Frage: Warum machst du das nicht mit einer GPO die du auf eine Gruppe von Computern verlinkst?? dann brauchst du die ganzen Abfragen nicht.
Bitte warten ..
Mitglied: 103148
17.03.2014 um 14:04 Uhr
berechtigt, die Frage...

ich benötige zur Zeit zwei Abfragen, einmal welcher user sitzt nach Anmeldung an welchen PC und welche BS Version läuft dort.

Die OU Struktur wird neu aufgesetzt und ist einen kleine Baustell, die Daten brauche ich diese Woche.
Ausserdem ziehen die GPO nicht überall... warum weiß ich nicht, die wollte ich mit einem gpupdate /force im Anmeldescript mitgeben, aber halt nicht am TS Server.
Dann muss ich um 21:00 Uhr alle Rechner runter fahren die noch an sind... ausser die clients.txt, die müssen anbleiben....
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 14:20 Uhr
OK ziemliches Durcheinander , das Überspringen der Clients in deiner Liste kannst du so machen:
01.
findstr /i "%COMPUTERNAME%" "\\Server\clients.txt" && exit
wenn der Rechnername in der Liste gefunden wird, wird das Script beendet.

Grüße Uwe
Bitte warten ..
Mitglied: 103148
17.03.2014 um 14:30 Uhr
super, vielen Dank...

ähm, einen hab ich noch... ;>)

ich muss prüfen welche PC´s noch ab 22:00 Uhr an sind, evtl per ping.... über pc001 bis pc600... ne Idee
Bitte warten ..
Mitglied: colinardo
17.03.2014 um 14:32 Uhr
Zitat von 103148:
ich muss prüfen welche PC´s noch ab 22:00 Uhr an sind, evtl per ping.... über pc001 bis pc600... ne Idee
Suchfunktion hier im Forum, gibt's haufenweise Einträge....
Bitte warten ..
Mitglied: 103148
17.03.2014 um 15:23 Uhr
okay, wie ich pürfe weiß ich , kenne aber nicht die Funktion damit von PC001 bis PC600 geprüft wird...

ping PC001 -n 1 | findstr "TTL" && goto rechner_on.txt
.
.
.
.
ping PC600 -n 1 | findstr "TTL" && goto rechner_on.txt
Bitte warten ..
Mitglied: colinardo
17.03.2014, aktualisiert um 15:44 Uhr
OK dann ist aber deine Suchmaschine kaputt, z.B. so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set startpc=1 
03.
set endpc=600 
04.
for /L %%i IN (%startpc%,1,%endpc%) DO @( 
05.
	if %%i LSS 10 set prefix=00 
06.
	if %%i GEQ 10 set prefix=0 
07.
	if %%i GEQ 100 set prefix= 
08.
	echo Pinge PC!prefix!%%i 
09.
	ping -n 1 -w 100 PC!prefix!%%i | find "Bytes=32" >nul && echo Host PC!prefix!%%i ist online! 
10.
)
denke Beitrag ist hier jetzt gelöst ...
Bitte warten ..
Mitglied: 103148
17.03.2014 um 15:44 Uhr
vielen Dank....
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH - Dateiname und Erstelldatum auslesen
gelöst Frage von Memo66Batch & Shell5 Kommentare

Hallo zusammen, ich habe folgendes Problem, vielleicht kann mir einer ja weiterhelfen:) Ich möchte die Dateinamen und das Erstellungsdatum ...

Batch & Shell
Mit batch zeilen auslesen
gelöst Frage von keksegrillerBatch & Shell2 Kommentare

Hallihallo, ich fange gerade an mit batch-Dateien zu arbeiten und komme trotz stundenlangem ausprobieren und googlen leider nicht mehr ...

Batch & Shell
Batch: Textdatei Zeilenweise auslesen
gelöst Frage von CreatorXBatch & Shell2 Kommentare

Hallo, ich weiß, zu dem Thema gibt es schon unzählige Threads. Ich hab auch einiges dazu gefunden und trotzdem ...

Batch & Shell
Batch soll Informationen aus Logfiles auslesen
gelöst Frage von Eichhorn63Batch & Shell8 Kommentare

Hallo, Ich bin neu im Forum und habe folgende Frage: Aus mehreren, jeweils über 1000 Zeilen großen Logfiles sollen ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 23 StundenBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Windows Store Apps
gelöst Frage von PeterleBWindows Server10 Kommentare

Gibt es einen Weg, auf Windows Server 2016 Windows Store Apps wie zum Beispiel die HP Smart App zu ...

Microsoft
Erfahrungen mit Webcam over RDP gesucht
Frage von DerWoWussteMicrosoft10 Kommentare

Moin Kollegen. Bekanntlich kann man Webcams nur mit Drittanbietersoftware in RDP reinschleifen. Was nutzt Ihr dazu? Wie stabil funktioniert ...