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

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

Member: Destry
Destry Jul 16, 2009 at 15:08:25 (UTC)
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
Member: -ricardo-
-ricardo- Jul 16, 2009 at 15:43:34 (UTC)
Goto Top
Huhu ... das sind immer die Tollsten ...

:D

Machen lassen und dann auf der Arbeit sagen ... ich hab da was erstellt xD
Member: SchoSeb
SchoSeb Jul 16, 2009 at 16:00:06 (UTC)
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
Member: SchoSeb
SchoSeb Jul 17, 2009 at 07:07:45 (UTC)
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
Member: olley9
olley9 Jul 20, 2009 at 08:47:08 (UTC)
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
Member: clumzy
clumzy Mar 23, 2017 at 12:44:44 (UTC)
Goto Top
Danke face-smile
Dein Script hat mir sehr weiter geholfen..
Member: SchoSeb
SchoSeb Mar 23, 2017 at 22:24:25 (UTC)
Goto Top
Freut mich, aber heute würde ich das wohl eher mit Powershell machen.
Damit sollte das mit einer Zeile machbar sein ;)