olley9
Goto Top

Active Directory Attribute kopieren

Hallo zusammen,

hat jemand vielleicht ein bereits fertiges Script um im Active Directory von allen Benutzern, in meinem Beispiel, den Wert aus dem Feld "Telefonnummer" beim selben Benutzer in das Feld "Faxnummer" zu kopieren? Ganz egal ob es ein bereits fertiges Programm kann oder sich das Vorhaben per Script erledigen läßt.

Bereits Danke für jede Hilfe und Gruß,
olley

Content-Key: 120649

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

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: Destry
Destry 16.07.2009 um 17:08:25 Uhr
Goto Top
Hallo Olley,

kein fertiges Script, aber die ds-Befehle können das.
dsget, dsquery, dsmod, usw.

Vielleicht willst Du Dir die Mühe selber machen.

Gruss,
Destry
Mitglied: -ricardo-
-ricardo- 16.07.2009 um 17:43:34 Uhr
Goto Top
Huhu ... das sind immer die Tollsten ...

:D

Machen lassen und dann auf der Arbeit sagen ... ich hab da was erstellt xD
Mitglied: SchoSeb
SchoSeb 16.07.2009 um 18:00:06 Uhr
Goto Top
Hallo,

ich hätte sowas anzubieten, da müsstest du aber bis morgen warten, bis ich wieder auf der Arbeit bin.
Wenn ich dann noch dran denke kann ich es mal Posten
Hoff nur mal dass ricardo net recht hat face-wink

MfG Sebastian
Mitglied: SchoSeb
SchoSeb 17.07.2009 um 09:07:45 Uhr
Goto Top
Hier also der Code.
Sollte ohne Anpassungen funktionieren.
Den Code hab ich mir aus verschiedenen Quellen im Internet zusammenkopiert, ist also net ganz original von mir face-wink

Dim objFSO, objUser
Dim adoCommand, adoConnection, strBase, strFilter, strAttributes
Dim objRootDSE, strDNSDomain, strQuery, adoRecordset 

'Erzeugen eines FSO  
set objFSO = CreateObject("Scripting.FileSystemObject")  

' ADO Objecte erzeugen  
set adoCommand = CreateObject("ADODB.Command")  
set adoConnection = CreateObject("ADODB.Connection")  
adoConnection.Provider = "ADsDSOObject"  
adoConnection.Open("Active Directory Provider")  
adoCommand.ActiveConnection = adoConnection

' Gesamte Domain durchsuchen  
set objRootDSE = GetObject("LDAP://RootDSE")  

strDNSDomain = objRootDSE.Get("defaultNamingContext")  
strBase = "<LDAP://" & strDNSDomain & ">"  

' Filter für die Suche  
strFilter = "(&(objectCategory=person)(objectClass=user))"'   

strAttributes = "distinguishedName"  
  
' LDAP Suchstring erzeugen  
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"  
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100  
adoCommand.Properties("Timeout") = 30  
adoCommand.Properties("Cache Results") = False  

' Query ausführen  
set adoRecordset = adoCommand.Execute
        
adoRecordset.MoveFirst()
    Do Until adoRecordset.EOF

			set objUser = getObject("LDAP://" & adoRecordset.Fields("distinguishedName").Value)  
			objUser.Facsimiletelephonenumber = objUser.telephonenumber
			objUser.setInfo
            adoRecordset.MoveNext()

    Loop

Grüße
Mitglied: olley9
olley9 20.07.2009 um 10:47:08 Uhr
Goto Top
Hey,

super ich danke euch vielmals.
Achso und nein, ich habe nicht vor mich mit der Arbeit anderer wichtig zu machen face-wink

Ich dachte nur falls jemand bereits was hat wäre es nett ein wenig Zeit zu sparen.

Das Script funktioniert tadellos, danke dir SuperMari0.

VG, olley
Mitglied: clumzy
clumzy 23.03.2017 um 13:44:44 Uhr
Goto Top
Danke face-smile
Dein Script hat mir sehr weiter geholfen..
Mitglied: SchoSeb
SchoSeb 23.03.2017 um 23:24:25 Uhr
Goto Top
Freut mich, aber heute würde ich das wohl eher mit Powershell machen.
Damit sollte das mit einer Zeile machbar sein ;)