it-eric
Goto Top

Computerbeschreibung mittels VBScript in AD schreiben

Hallo,

ich möchte aus einer Textdatei, die wie folgt aussieht, Werte mittels VBScript in die Computerbeschreibung im AD schreiben, egal in welcher OU der PC gerade ist.

folgendes habe ich schon:

Aufbau der Textdatei:
Computernamen1, beschreibung1
Computernamen2, beschreibung2
Computernamen3, beschreibung3
Computernamen4, beschreibung4

Die "beschreibung1" soll bei "Computernamen1" eingetragen werden etc.

domain = "//DOMAINE"

Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
set objDomain = GetObject("WinNT:" & domain)

for Each item in objDomain

if item.class="Computer" then

WScript.Echo "Computername: " & item.name
end if


next

WScript.Echo "Fertig!"

Das Auslesen aus einer Textdatei bekomme ich wahrscheinlich hin. Aber wie schreibe ich etwas in die Computerbeschreibung?


Danke für die Hilfe!

IT-Eric

Content-Key: 41425

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

Printed on: April 24, 2024 at 08:04 o'clock

Member: Egbert
Egbert Oct 04, 2006 at 13:20:35 (UTC)
Goto Top
Hallo IT-Eric,

es handelt sich um den Description Feldnamen

vbs Beispiel

Set objComputer = GetObject _
("LDAP://CN=Computer,OU=SampleOU,OU=Computers,OU=MyBusiness,DC=sample,DC=lokal")

objComputer.Put "Description" , "Die Beschreibung"
objComputer.SetInfo

Deine Schleifchen kannst Du dann noch drum machen

Gruß
Egbert
Member: IT-Eric
IT-Eric Oct 04, 2006 at 13:51:32 (UTC)
Goto Top
Danke erstmal für die Antwort. Leider komme ich damit nicht klar. Ich möchte keinen LDAP Pfad angeben müssen, weil ich nicht genau weiss, in welcher OU der entsprechende PC stehen wird.

Geht es auch ohne die OU angeben zu müssen?

Gruß
IT-Eric
Member: Egbert
Egbert Oct 04, 2006 at 14:18:05 (UTC)
Goto Top
Hallo Eric,

dann solltest Du damit weiterkommen


Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select Name, Location, operatingSystemVersion from " & _
"'LDAP:DC=sample,DC=lokal' where objectClass='computer'"

hier kannst Du auch noch nach bestimmten Attributen abfragen. z.B.
& "'LDAP:
DC=fabrikam,DC=com' where objectClass='computer'"


objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Zeige das ganze auch noch an oder wechsle in dein Schleifchen

Do Until objRecordSet.EOF
Wscript.Echo "Computer Name: " & objRecordSet.Fields("Name").Value
Wscript.Echo "Location: " & objRecordSet.Fields("Location").Value
objRecordSet.MoveNext
Loop

Gruß
Egbert


Danke erstmal für die Antwort. Leider
komme ich damit nicht klar. Ich möchte
keinen LDAP Pfad angeben müssen, weil
ich nicht genau weiss, in welcher OU der
entsprechende PC stehen wird.

Geht es auch ohne die OU angeben zu
müssen?

Gruß
IT-Eric
Member: IT-Eric
IT-Eric Oct 04, 2006 at 14:37:18 (UTC)
Goto Top
Hallo,

das funktioniert so weit einwandfrei:
Ich kann alle Felder, die mit dem select abgerufen werden mit Echo anzeigen lassen.

Erlaube mir aber noch eine Frage:
Wenn ich anstelle von Location Description im Select angebe und den Befehl
Wscript.Echo "Description: " & objRecordSet.Fields("Description").Value ausführe, erhalte ich eine Fehlermeldung.

Was mache ich hier falsch?

Gruß
Eric
Member: IT-Eric
IT-Eric Oct 04, 2006 at 15:23:37 (UTC)
Goto Top
Halli hallo,

habe grade selber die Antwort entdeckt:
Der Befehl muss lauten
wscript.echo join(objRecordset.Fields("Description").Value)

Danke nochmal für die Hilfe!!!!!!


Gruß
Eric