mc02000 10 Geschrieben 9. Juli 2010 Melden Teilen Geschrieben 9. Juli 2010 Hallo zusammen, ich möchte in der AD das Attribut "employee-type" per skript befüllen. title und empid waren mit Hilfe von dsquery / dsmod kein großes Problem. Befehle in Excel zusammen stellen und ne batch drauß gemacht. :-) dsquery user -samid %ANMELDENAME% | dsmod user -title %TITLE% dsquery user -samid %ANMELDENAME% | dsmod user -empid %PERSONALNUMMER% Leider finde ich aber nicht das Attribut employee-type. Habt ihr eine Idee wie ich das realisieren kann. z.B. versteckte optionen für dsmod ... Vielen Dank und ein schönes WE. m Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 9. Juli 2010 Melden Teilen Geschrieben 9. Juli 2010 Servus, Leider finde ich aber nicht das Attribut employee-type. der LDAP-Name deines gesuchten Attributs lautet "employeeType", ohne Bindestrich. Versuche es damit. Employee-Type Attribute (Windows) Zitieren Link zu diesem Kommentar
mc02000 10 Geschrieben 14. Juli 2010 Autor Melden Teilen Geschrieben 14. Juli 2010 Habs gerade wie folgt ausprobiert und die folgende Fehlermeldung erhalten. (Dosfenster als DC-Admin) Anweisung: set /P ANMELDENAME=Bitte geben Sie den Windows Anmeldenamen ein[Abbruch mit Strg-C]: set /P KOSTENSTELLE=Bitte geben Sie Ihre Kostenstelle ein[Abbruch mit Strg-C]: dsquery user -samid %ANMELDENAME% | dsmod user -employeeType %KOSTENSTELLE% Fehlermeldung: C:\WINDOWS\system32>dsquery user -samid "..username.." | dsmod user -employeeType 123456 dsmod failed:`-employeeType' is an unknown parameter. type dsmod /? for help. Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 14. Juli 2010 Melden Teilen Geschrieben 14. Juli 2010 Habs gerade wie folgt ausprobiert und die folgende Fehlermeldung erhalten. Klar, denn employeeType ist doch auch kein DSMOD-Parameter. Wenn du dir die Hilfe zu dsmod mit "dsmod /?" angesehen hättest, wäre es dir auch schnell selber aufgefallen. Für deine Aufgabe ist dsquery im Zusammanhang mit dsmod nicht geeignet. Verwende ADFIND und ADMOD, damit kannst du das lösen. Free Tools Auch mit der PowerShell bekommst du das gelöst. Zitieren Link zu diesem Kommentar
mc02000 10 Geschrieben 15. Juli 2010 Autor Melden Teilen Geschrieben 15. Juli 2010 Na deshalb habe ich ja anfangs nach ggf. versteckten Parametern vom dsmod gefragt. ;-)) Adfind und admod werde ich sofort ausprobieren. Vielen Dank. Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 15. Juli 2010 Melden Teilen Geschrieben 15. Juli 2010 Na deshalb habe ich ja anfangs nach ggf. versteckten Parametern vom dsmod gefragt. ;-)) Sorry das meine Glaskugel versagt hat und mir nicht mitteilen konnte, was du genau mit "versteckt" meinst. Adfind und admod werde ich sofort ausprobieren. Tue das. Zitieren Link zu diesem Kommentar
P.Foeckeler 11 Geschrieben 17. Juli 2010 Melden Teilen Geschrieben 17. Juli 2010 Hallo, bit Du Dir sicher, dass Du Deine Personalnummern in das employeeType Attribut schreiben willst? Es gbit nämlich auch noch employeeID und employeeNumber, also von weitem hören die sich irgendwie passender an...:wink2: Hier ist außerdem noch das ganze in VBScript. Wie man den Benutzer aufgrund seines Anmeldenamens findet, steht hier: SelfADSI : Name Translation - Wie man den LDAP Pfad eines Benutzers ermittelt DOMAIN = "example" 'dies ist der NetBIOS Name Deiner Domäne ANMELDENAME = "pfoeckel" 'hier den Namen des gewünschen Benutzers einsetzen TITLE = "x y z" 'das sind die Daten... PERSONALNUMMER = "0815" Const ADS_NAME_INITTYPE_GC = 3 Const ADS_NAME_TYPE_NT4 = 3 Const ADS_NAME_TYPE_1779 = 1 logonName = DOMAIN & "\" & ANMELDENAME 'NetBIOS-Anmeldename bilden Set nto = CreateObject("NameTranslate") 'Name Translate Objekt initialisieren und Namen umwandeln nto.Init ADS_NAME_INITTYPE_GC, "" nto.Set ADS_NAME_TYPE_NT4, logonName userDN = nto.Get(ADS_NAME_TYPE_1779) 'userDN enthält nun den kompletten LDAP Pfad... Set user = GetObject("LDAP://" & userDN) '...dieser kann zum Zugriff auf das Benutzerobjekt verwendet werden user.title = TITLE user.employeeType = PERSONALNUMMER user.SetInfo sollte das tatsächlich so gemeint sein, dass Deine Ausgansdaten (ANMELDENAME, PERSONALNUMMER etc... im Environment liegen, mußt Du noch das hier davorsetzen: Set wso= WScript.CreateObject(”WScript.Shell”) Set env= wso.Environment(”Process”) ANMELDENAME = env("ANMELDENAME") TITLE = env("TITLE") PERSONALNUMMER = env("PERSONALNUMMER") Schöne Grüße, Philipp Zitieren Link zu diesem Kommentar
mc02000 10 Geschrieben 23. August 2010 Autor Melden Teilen Geschrieben 23. August 2010 Hallo zusammen, sorry das es so lange gedauert hat. War im Urlaub usw. Nun ja. @Philipp, Daim Vielen Dank für eure Tipps. Ich hab´s nun erst einmal wie folgt probiert da ich mich mit VB nicht auskenne. :-(( Den Titel zum testen gändert. <-- funktioniert :) admod" -b "cn=michael,ou=ou test,DC=meine-domain,DC=local" "title:+-:Herr" Nach einem User gesucht <-- funktioniert :) adfind -f name=michael -dn Nun wollte ich beide Befehle verknüpfen und es funktioniert nicht mehr. :(:( adfind -f name=michael -dn | admod -b title:+-:Herr Leider gibt es keine Fehlermeldung und nichts. Nur der Wert des Attributs hat sich nicht geändert. :-( Die Übergabe des adfind mit dem Pipe scheint nicht sauber zu funktionieren, oder das admod liest den Wert nicht sauber ein. Vielen Dank für eure Hilfe. Michael Zitieren Link zu diesem Kommentar
mc02000 10 Geschrieben 24. August 2010 Autor Melden Teilen Geschrieben 24. August 2010 ... lange hat´s gedauert aber nun hab ich´s. Windows Server: 11 wichtige Tools zur Verwaltung von Active Directory adfind -f name=michael -dn -dsq |admod title:+-:Herr -dsq = gibt die Ausgabe von adfind in z.B. admod weiter Danke euch und bis zum nächsten mal. mc 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.