-dar- 10 Geschrieben 12. August 2008 Melden Teilen Geschrieben 12. August 2008 Guten Abend, ich bin gerade dabei, ein vbs-Script zu schreiben, nur klappt dies nicht so ganz. Was habe ich vor: - ich möchte die Felder Vorname, Nachname, LegacyExchangeDN aus dem AD (AD1) auslesen und in eine TXT-Datei schreiben. - im anderen AD (AD2) will ich, nach Anpassung der TXT-Datei, das Feld proxyaddresses füllen, für die gleichen Benutzer. Die Benutzer gibt es sowohl im AD1, als auch im AD2. Kann mir jemand Starthilfe geben, um mein derzeitiges Wirrwarr im Kopf zu entwirren? Danke. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 13. August 2008 Melden Teilen Geschrieben 13. August 2008 Hallo und Willkommen im Board, was verstehst Du unter Starthilfe? Wie weit bist Du denn mit dem Script? Als Starthilfe könnte z.B. die MS Technet-Seite helfen: Microsoft Corporation Gruß, Frank Zitieren Link zu diesem Kommentar
Christoph35 10 Geschrieben 13. August 2008 Melden Teilen Geschrieben 13. August 2008 Vielleicht ist auch das IIFP was für Dich: Download details: Microsoft Identity Integration Feature Pack SP2 Christoph Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 13. August 2008 Melden Teilen Geschrieben 13. August 2008 Servus, Kann mir jemand Starthilfe geben, um mein derzeitiges Wirrwarr im Kopf zu entwirren? du könntest das z.B. mit LDIFDE lösen: Yusuf`s Directory - Blog - LDIFDE - LDAP Data Interchange Format Data Exchange Zitieren Link zu diesem Kommentar
-dar- 10 Geschrieben 13. August 2008 Autor Melden Teilen Geschrieben 13. August 2008 Lösung: Teil 1 - auslesen samaccountname + legacyExchangeDN ---------------- set fs = CreateObject ("Scripting.FileSystemObject") datei1 = "legExchDN.txt" Set userinfo = fs.CreateTextFile (datei1,true) userinfo.writeline "SamAccountName legacyExchangeDN" Set root = GetObject ("LDAP://rootDSE") dom = Inputbox("Domain:","ADSPath",root.Get("defaultNamingContext")) If dom = "" Then MsgBox "Script wird auf Benutzerwunsch hin abgebrochen." Wscript.Quit else dom = "<LDAP://" & dom End If Set objConnection = CreateObject("ADODB.Connection") objConnection.Open "Provider=ADsDSOObject;" Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection objCommand.CommandText = dom & ">;(&(objectCategory=person)(objectClass=user)(legacyExchangeDN=*));ADsPath;subtree" Set objRecordSet = objCommand.Execute While Not objRecordset.EOF strADsPath = objRecordset.Fields("ADsPath") Set objUser = GetObject(strADsPath) userinfo.writeline objuser.samaccountname & vbtab & objuser.legacyExchangeDN objrecordset.MoveNext set objuser = nothing Wend userinfo.close Set userinfo= Nothing set fs = Nothing wscript.echo "Fertig..." ---------------- Teil 2 - setzen der X.500 Adresse für alle Benutzer aus Teil 1 ---------------- Const ForReading = 1 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile("x500.txt", ForReading) Do Until objTextFile.AtEndOfStream strNextLine = objTextFile.Readline arr = Split(strNextLine , chr(9)) SetProxyAddressForUser arr(0),arr(1) 'Parameter: Benutzer, X500-Adresse Loop Sub SetProxyAddressForUser(sUser,sAddress) ' WScript.Echo sUser & ";" & sAddress Set oUser = GetObject ("LDAP://CN=" & sUser & ",OU=domain user,DC=dom1,DC=local") vProxyAddresses = oUser.ProxyAddresses nProxyAddresses = UBound(vProxyAddresses) bFound=False for i = 0 to nProxyAddresses If vProxyAddresses(i) = sAddress then bFound = True Exit For End If next If not bFound then Redim Preserve vProxyAddresses(nProxyAddresses + 1) vProxyAddresses(nProxyAddresses + 1) = sAddress oUser.ProxyAddresses = vProxyAddresses oUser.SetInfo End If End Sub wscript.echo "Fertig..." ---------------- ich weiss nicht, ob noch etwas optimiert werden sollte, aber es funktioniert erstmal ;) Grüße Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.