crashunderride Geschrieben 9. November 2009 Teilen Geschrieben 9. November 2009 Hallo zusammen, ich hab diesmal folgende Aufgabenstellung: Ich habe eine Liste (.txt-File) mit EMPIDs von Mitarbeitern. Nun möchte ich die jeweils zur EMPID gehörige CN, sprich den Login-Namen des Users erhalten. Wie stelle ich das an? Mit "dsget user xxx" auf der Kommandozeile wird ja bei "xxx" immer nach einem User-Merkmal gefragt - und zwar nach dem welches ich eigentlich wissen will (UserDN). Wie kann ich die Abfrage richtig stellen (gib mir den zugehörigen CN zur EMPID aller Zeilen in der Datei C:\input.txt)? Hab schon länger nix mehr mit ADS gemacht und etwas Hilfe wäre supi Alternativ würde ich mir einfach alle User der AD auflisten lassen (mit EMPID) und über eine Bastel-Lösung in Excel die Spalten EMPID (AD-Export) mit EMPID (input/gesucht) vergleichen. Dann nur noch den zugehörigen CN zuordnen und fertig. Eine Skript-Lösung bzw. ein Befehl für die Kommandozeile wäre mir aber deutlich lieber... :marine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mamamia Geschrieben 9. November 2009 Teilen Geschrieben 9. November 2009 Hallo, sind denn in der AD die EmpID´s gepflegt? Wenn nicht, kannst du hier gleich abbrechen. Zudem ist der CN nicht der Anmeldename sondern der Name. Der Anmeldename ist der sAMAccountName. Ich würde es einfach per wsh machen. Im ersten Teil ließt du die Txt-Datei ein und im 2ten Teil fragst du die AD ab. Der Query könnte dann so aussehen: query = "<LDAP://DC/OU=Abteilung,OU=Firma,DC=domain,DC=local>;(&(objectClass=user)(EmpID=variable));samAccountName,telephonenumber,distinguishedName;subtree" Das Ergebnis speicherste dann wieder oder lässt es dir ausgeben. So bekommste das eigentlich sehr leicht hin. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
crashunderride Geschrieben 9. November 2009 Autor Teilen Geschrieben 9. November 2009 Ja, die empids sind gepflegt. Stimmt, SAM! Shame on me... WSH? Das ist ja noch länger her... Der PHP-Code titulierte Code ist also WSH? Muss ich mir mal genauer ansehen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mamamia Geschrieben 10. November 2009 Teilen Geschrieben 10. November 2009 Der PHP-Code titulierte Code ist also WSH? Sowohl als auch, diese Abfrage kannste überall nehmen. Falls du hilfe brauchst, meld dich einfach.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
crashunderride Geschrieben 10. November 2009 Autor Teilen Geschrieben 10. November 2009 "Meld"! Bis aufs Hello World und bisschen SendKeys-Fun kommt auf Anhieb nicht mehr viel bei raus mit WSH... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mamamia Geschrieben 10. November 2009 Teilen Geschrieben 10. November 2009 "Meld"! Bis aufs Hello World und bisschen SendKeys-Fun kommt auf Anhieb nicht mehr viel bei raus mit WSH... Gib mir mal bitte den Schemenhaftenaufbau deiner Datei und wie das Feld in der AD genau heisst. Ich machs schnell.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
crashunderride Geschrieben 11. November 2009 Autor Teilen Geschrieben 11. November 2009 :eek Danke schon im voraus Die Datei (input.txt) könnte simpler gar nicht aufgebaut sein: Je eine EmployeeID pro Zeile. Diese EmployeeID entspricht dem Feld EMPID im AD. Gesucht (output.txt) wird dann der zugehörige SAM. Reicht dir das als Infos? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mamamia Geschrieben 11. November 2009 Teilen Geschrieben 11. November 2009 Konnte es zwar nicht testen, aber sollte gehen. ' Region Description ' ' Name: get_sAMAccountName_by_EmpID ' Author: mamamia ' Description: sucht in AD anhand der EmpID den sAMAccountName ' ' EndRegion Set oFileSys = CreateObject("Scripting.FileSystemObject") Set objcon = CreateObject("ADODB.Connection") Set WShell = CreateObject("Wscript.shell") Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") Dim objcon ConString = "Provider=ADSDSOObject" objConnection.Open "Provider=ADsDSOObject;" objCommand.ActiveConnection = objConnection Set InputFile = oFileSys.OpenTextFile("c:\temp\input.txt") Set OutputFile = oFileSys.OpenTextFile("c:\temp\output.txt") ' Datei mit EmpID´s einlesen und samAccountName suchen Do Until InputFile.AtEndOfStream strLine = InputFile.Readline query = "<LDAP://DomainController/OU=deineOU,DC=domain,DC=local>;(&(&(objectClass=user)(empid=" & strLine & ")(!(userAccountControl:1.2.840.113556.1.4.803:=2))));samAccountName,telephonenumber,distinguishedName;subtree" objCommand.CommandText = query Set objRecordSet = objCommand.Execute WScript.Echo objRecordSet.Fields("samAccountName").Value Loop WScript.Quit Du musst halt bei der query Variable den LDAP String auf deine Domaine anpassen. Das schreiben in eine Datei überlass ich dir, musst ja auch was selber machen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.