Computerbeschreibung per Batch auslesen?
Wie mit DSQUERY die Computerbeschreibung auslesen
Hallo,
ich möchte die Computerbeschreibung eines PCs in der Domäne auslesen.
Ich habe zwar schon etwas mit den Befehlen DSQUERY und DSGET rumgetestet, komme aber nicht drauf.
Vielleicht kann mir ja einer weiterhelfen, das kann ja bloß ein Einzeiler sein.
Klappt das auch mit der lokalen Variable %computername%, sodass ich vom Computer "%computername%" die Beschreibung bekommen?
Grüße
Chris
Hallo,
ich möchte die Computerbeschreibung eines PCs in der Domäne auslesen.
Ich habe zwar schon etwas mit den Befehlen DSQUERY und DSGET rumgetestet, komme aber nicht drauf.
Vielleicht kann mir ja einer weiterhelfen, das kann ja bloß ein Einzeiler sein.
Klappt das auch mit der lokalen Variable %computername%, sodass ich vom Computer "%computername%" die Beschreibung bekommen?
Grüße
Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 53044
Url: https://administrator.de/contentid/53044
Ausgedruckt am: 04.11.2024 um 18:11 Uhr
3 Kommentare
Neuester Kommentar
Gib mal am cmd-prompt "set" und betätige Taste <Enter>- vielleicht meinst Du das?
beim mir käme da raus
Solltest Du die Erwartung haben Detail-Infos zur Hardware auslesen zu können, das wäre wenn überhaupt nur durch ein sehr komplexes Batch möglich und Batch dafür nicht unbedingt geeignet. In dem Falle hole dir von "Everest" oder "SiSoft Sandra" die Freeware-Versionen. Wobei ich jetzt nicht gepürft habe ob diese Netztwerkfähig sind. Aber mindestens von "Everest" gibt es eine Netzwerkfähige Versionen.
onegasee59
beim mir käme da raus
ALLUSERSPROFILE=C:\Dokumente und Einstellungen\All Users
APPDATA=C:\Dokumente und Einstellungen\xxxxxxxx\Anwendungsdaten
CLIENTNAME=Console
CommonProgramFiles=C:\Programme\Gemeinsame Dateien
COMPUTERNAME=XXXXXXXX-ED7EA2
ComSpec=C:\WINDOWS\system32\cmd.exe
DEVMGR_SHOW_DETAILS=1
DEVMGR_SHOW_NONPRESENT_DEVICES=1
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Dokumente und Einstellungen\xxxxxxxx
LOGONSERVER=\\XXXXXXXX--ED7EA2
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
Pfad=C:\Programme\xxxxxxxxxxxx\xxxxx
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0209
ProgramFiles=C:\Programme
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOKUME~1\xxxxxxxx\LOKALE~1\Temp
TMP=C:\DOKUME~1\xxxxxxxx\LOKALE~1\Temp
USERDOMAIN=XXXXXXXX-ED7EA2
USERNAME=xxxxxxxx
USERPROFILE=C:\Dokumente und Einstellungen\xxxxxxxx
windir=C:\WINDOWS
Solltest Du die Erwartung haben Detail-Infos zur Hardware auslesen zu können, das wäre wenn überhaupt nur durch ein sehr komplexes Batch möglich und Batch dafür nicht unbedingt geeignet. In dem Falle hole dir von "Everest" oder "SiSoft Sandra" die Freeware-Versionen. Wobei ich jetzt nicht gepürft habe ob diese Netztwerkfähig sind. Aber mindestens von "Everest" gibt es eine Netzwerkfähige Versionen.
onegasee59
Hallo angoletti1!
Soweit ich die Syntax von "dsquery" richtig verstanden habe, kannst Du damit anhand der Beschreibung nach Computern suchen ...
Zum Auslesen sollte folgendes klappen:
Beim Aufruf kann ein Computername übergeben werden, ansonsten wird die Beschreibung des aktuellen Computers ausgelesen. Die Ausgabe lässt sich durch Änderung der Zeilen mit "output = ..." anpassen (derzeit: Computername,Beschreibung).
In Batch könntest Du das Script (gespeichert zB als "C:\Scripts\GetCompDescr.vbs") so einsetzen:
Grüße
bastla
Soweit ich die Syntax von "dsquery" richtig verstanden habe, kannst Du damit anhand der Beschreibung nach Computern suchen ...
Zum Auslesen sollte folgendes klappen:
'GetCompDescr.vbs
If WScript.Arguments.Count < 1 Then
Set WshNetwork = WScript.CreateObject("WScript.Network")
strComputer = WshNetwork.ComputerName
Else
strComputer = WScript.Arguments(0)
End If
Set adoConnection = CreateObject("ADODB.Connection")
Set adoCommand = CreateObject("ADODB.Command")
adoConnection.Provider = "ADsDSOOBject"
adoConnection.Open "Active Directory Provider"
Set adoCommand.ActiveConnection = adoConnection
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("DefaultNamingContext")
strFilter = "(objectClass=computer)"
strQuery = "<LDAP://" & strDNSDomain & ">;" & strFilter _
& ";Name,Description;subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 1000
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False
Set adoRecordset = adoCommand.Execute
Do Until adoRecordset.EOF
If LCase(adoRecordSet.Fields("Name")) = LCase(strComputer) Then
output = adoRecordSet.Fields("Name") & ","
If Not IsNull(adoRecordSet.Fields("Description")) Then
output = output & adoRecordSet.Fields("Description")
Else
output = output & "keine Beschreibung"
End If
WScript.Echo output
Exit Do
End If
adoRecordSet.MoveNext
Loop
In Batch könntest Du das Script (gespeichert zB als "C:\Scripts\GetCompDescr.vbs") so einsetzen:
for /f "tokens=1,2 delims=," %%i in ('CScript //nologo C:\Scripts\GetCompDescr.vbs') do echo %%i - %%j
Grüße
bastla