angoletti1
Goto Top

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

Content-Key: 53044

Url: https://administrator.de/contentid/53044

Printed on: April 19, 2024 at 04:04 o'clock

Mitglied: 36539
36539 Mar 02, 2007 at 14:13:25 (UTC)
Goto Top
Gib mal am cmd-prompt "set" und betätige Taste <Enter>- vielleicht meinst Du das?

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
Member: AxelHahn
AxelHahn Mar 02, 2007 at 14:21:46 (UTC)
Goto Top
Hallo Chris,

suche es dir zusammen aus:

echo %computername%
net config workstation
net view \\%computername%


Viele Grüsse
-= Axel =-
Member: bastla
bastla Mar 02, 2007 at 22:41:28 (UTC)
Goto Top
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:
'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
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:
for /f "tokens=1,2 delims=," %%i in ('CScript //nologo C:\Scripts\GetCompDescr.vbs') do echo %%i - %%j  


Grüße
bastla