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, 9864 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
Ähnliche Inhalte
Microsoft Office
Excel Zählewenn aus Formel Wert (2)

Frage von cberndt zum Thema Microsoft Office ...

Basic
VBScript erweitern für Subfolder (8)

Frage von 132078 zum Thema Basic ...

Exchange Server
gelöst AD User lässt sich nicht im Public Calendar hinzufügen (6)

Frage von Brigomaglos zum Thema Exchange Server ...

Windows Server
gelöst AD Aufsetzen (5)

Frage von WPFORGE zum Thema Windows Server ...

Heiß diskutierte Inhalte
Google Android
gelöst Android-Handy versehentlich (dauerhaft) gesperrt? (20)

Frage von FA-jka zum Thema Google Android ...

Batch & Shell
gelöst Ordner und Datei Name gleich (BATCH) (12)

Frage von clragon zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

DSL, VDSL
gelöst DSL 200m verlängern (11)

Frage von Angela44 zum Thema DSL, VDSL ...