Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

AD Computerbeschreibung mittels VBScript einen Wert über ADODB.Connection inserten

Frage Sonstige Systeme

Mitglied: IT-Eric

IT-Eric (Level 1) - Jetzt verbinden

04.10.2006, aktualisiert 05.10.2006, 9857 Aufrufe, 3 Kommentare

Hallo,

ich möchte nun meine bestehende ADODB.Connection zum AD nutzen und in die Beschreibung des AD Objekts Computer einen Wert reinschreiben.

Wie mache ich das?

Hier meine Verbindung:
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 = "??????????????????????"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute

Mir fehlt, soweit ich das beurteilen kann der richtige insert Befehl für "??????????????????????" im Script oben.

Irgendwas wie: insert beschreibung into 'LDAP://DC=test,DC=org' where typ=Computer ans name='Computername' values('Beschreibungstext1')

Gruß und Danke vorweg
IT-Eric
Mitglied: bastla
04.10.2006 um 19:22 Uhr
Hallo IT-Eric!

Zu Deinem Ansatz: Im Original-Beispiel aus dem MS-TechNet Script Center geht es so weiter ...

01.
... 
02.
objCommand.CommandText = _ 
03.
    "Select Name, Location, operatingSystemVersion from " & _ 
04.
        "'LDAP://DC=fabrikam,DC=com' where objectClass='computer'" & _ 
05.
            " and operatingSystemVersion = '5.1 (3600)'"   
06.
 
07.
...
Ergebnis: Recordset mit den entsprechenden Feldern "Name", "Location", "operatingSystemVersion" - daher müsstest Du das SQL-Statement um das Feld "Description" und um "Name = 'Computername'" ergänzen und in weiterer Folge das (hoffentlich nur aus einem Satz bestehende) Recordset zum Zurückschreiben der Description verwenden.

Einfacher könnte es so gehen (neues Script):
01.
Set objComputer = GetObject _  
02.
    ("LDAP://CN=Computername,CN=Computers,DC=test,DC=org") 
03.
 
04.
objComputer.Put "Description" , "WasAuchImmer" 
05.
objComputer.SetInfo
HTH
bastla
Bitte warten ..
Mitglied: IT-Eric
05.10.2006 um 07:23 Uhr
Danke erstmal für Deine Antwort. Den Select und das Recordset habe ich schon.
Ich habe aber keine Ahnung, wie ich das veränderte Recordset dann wieder ins AD rein bekomme.

Mit dem objComputer.Put "Description" , "WasAuchImmer" wäre es sicherlich einfacher, allerdings muss ich dann aber LDAP verwenden und wissen in welcher OU der PC steht, das will ich aber nicht bei jedem PC extra eintragen müssen.

Hier mein mein Code, den ich bisher habe, dieses möchte ich erweitern und Werte in die Computer Beschreibung ins AD eines bestimmten PCs schreiben(Später werden die Beschreibungen und PCs aus einer Textdatei ausgelesen:

Const ADS_SCOPE_SUBTREE = 2
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
sFilePath = "c:\misc\vbs\description.txt"
Set fOutput = objFileSystem.OpenTextFile(sFilePath, ForWriting, True)
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

Set objCommand.ActiveConnection = objConnection
objCommand.CommandText ="Select Name, Description, Location from " & "'LDAP://DC=DOMAINE,DC=ORG' where objectClass='computer'"

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

'Zeigt das ganze auch noch an

Do Until objRecordSet.EOF
if objRecordSet.Fields("Name").Value ="COMPUTERNAME1" then
fOutput.WriteLine join(objRecordset.Fields("Description").Value)

'Set objRecordSet = objCommand.Execute
end if
objRecordSet.MoveNext
Loop
fOutput.Close
Set fOutput = Nothing


Im Script wird die Beschreibung von COMPUTERNAME1 in die Textdatei geschrieben. Die Erweiterung soll das einfach umgekehrt machen, ohne zu wissen in welcher OU der PC ist.

Viele Grüße
Eric
Bitte warten ..
Mitglied: IT-Eric
05.10.2006 um 07:46 Uhr
Ich habe mir wie folgt nun geholfen:
Nachdem ich im Recordset den entsprechenden PC gefunden habe, kann ich ja den LDAP Pfad mit auslesen. Den weiss ich ja dann auch. Danach kann ich mit Deinen Befehlen den Wert schreiben.

Danke!

Hier mein Code:
Const ADS_SCOPE_SUBTREE = 2
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
set objDomain = GetObject("WinNT://" & domain)
domain = "DOMAINE.org"

sFilePath = "c:\misc\vbs\description.txt"
Set fOutput = objFileSystem.OpenTextFile(sFilePath, ForWriting, True)
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

Set objCommand.ActiveConnection = objConnection
objCommand.CommandText ="Select Name, Description, ADsPath from " & "'LDAP://DC=DOMAINE,DC=org' where objectClass='computer'"

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



Do Until objRecordSet.EOF
if objRecordSet.Fields("Name").Value ="ComputerName1" then

Set objaktuellerPC = GetObject (objRecordset.Fields("ADsPath").Value)
objaktuellerPC.Put "Description" , "WasAuchImmer"
objaktuellerPC.SetInfo

end if
objRecordSet.MoveNext
Loop
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (1)

Frage von Gien-app zum Thema Windows Server ...

Windows Server
AD DC Failover zeitintensiv und DHCP repliziert nicht (2)

Frage von JiggyLee zum Thema Windows Server ...

Windows Userverwaltung
AD Gruppe der Domänen-Admins überwachen (5)

Frage von ThorstenRay zum Thema Windows Userverwaltung ...

Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...