Jump to content
Sign in to follow this  
mc02000

employee-type per skript befüllen

Recommended Posts

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

Share this post


Link to post

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.

Share this post


Link to post
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.

Share this post


Link to post

Na deshalb habe ich ja anfangs nach ggf. versteckten Parametern vom dsmod gefragt. ;-))

Adfind und admod werde ich sofort ausprobieren.

 

Vielen Dank.

Share this post


Link to post
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.

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...