Veröffentlicht 9. November 200915 j 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
9. November 200915 j 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.
9. November 200915 j Autor 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...
10. November 200915 j Der PHP-Code titulierte Code ist also WSH? Sowohl als auch, diese Abfrage kannste überall nehmen. Falls du hilfe brauchst, meld dich einfach..
10. November 200915 j Autor "Meld"! Bis aufs Hello World und bisschen SendKeys-Fun kommt auf Anhieb nicht mehr viel bei raus mit WSH...
10. November 200915 j "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..
11. November 200915 j Autor :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?
11. November 200915 j 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.