Jump to content

Automatisches Umbenennen der Beschreibung der Benutzer im NT4


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hy folks,

 

bin gerade dabei, einen größeren Kunden auf W2K / W2K3 zu migrieren. Jetzt müssen vorher im NT4 noch die Benutzer umbenannt werden. Kein Problem. Man schnappe sich "renuser.exe" und benenne die Benutzer automatisiert mittels Script um. SIDs bleiben gleich, alle Berechtigungen passen, nur der logonname ändert sich halt... soweit so gut.

 

Jetzt gibt es da aber leider auch einige Benutzer ( so um die 500, ca. 10% der Gesamtanzahl ), bei denen der Benutzername und der vollständige Name gleich bleiben muss, hier soll nur hinten bei der Beschreibung ein Wort davorgesetzt werden, um später diese Benutzer anhand der Beschreibung selektieren zu können... Da lässt mich das gute "renuser" natürlich im Stich.

Mit "net user /add" kann ich auch nicht arbeiten, um nur die Beschreibung zu überarbeiten, da bekomme ich die Meldung, daß der Benutzer ja bereits existiert ...

Benutzer via Script löschen und mit der richtigen Beschreibung wieder neu anlegen wäre fix passiert, führt aber dazu, daß die SIDs nicht mehr passen...wäre fatal...

 

Und 500 User per Hand... naja, kann und will ich dem Kunden nicht anbieten...

 

Jemand ne Idee für mich ? Wie gesagt, spielt sich alles noch vor der eigentlichen Migration in der NT4 SAM ab ...

 

Danke schonmal !!

 

Gruß

schroeder750

Link zu diesem Kommentar

Prinzipiell läßt sich die Beschreibung zumindest ab W2K mit net user Nutzername /USERCOMMENT:"Spezialbenutzer" ändern. Ich weiß allerdings nicht, ob dies auch schon für NT4 galt - prüfe mit net help user. Das Hauptproblem sehe ich eher darin, daß Du unter NT4 nicht die komplexen for - Ausdrücke zur Sicherung bzw. zur direkten Bearbeitung der alten Werte hast.

 

Du müßtest mit net user Nutzername die Ausgabe erhalten, diese bsp. in eine Datei umleiten, den Wert 'Beschreibung' extrahieren und damit einen neuen Batchbefehl zusammenbauen.

 

[Edit] Wenn es, laut dem folgenden Artikel, auch schon in NT4 for - Ausdrücke gibt, dann ließe sich da natürlich einiges machen.

 

-----------

Gruß, Auer

Link zu diesem Kommentar

Unter NT4 müsste das mit einem "for /token.... in (datei)... do usw"_Konstrukt innerhalb einer cmd (nicht bat) gehen. In die "Datei" könntest Du die Benutzernamen eintragen (pro User eine Zeile), die das Sonderumbenennungsschema erhalten sollen, alle anderen fallen raus. Die "for-Schleife" arbeitet die Namen der Datei ab, holt über "net user /domain %USR%" | find "Beschreibung" | set /A % usw. den Langnamen aus der SAM, speichert ihn in einer Variable. Der Variablen hängst Du deinen Kenner per Stringverkettung (set /A %USR%="%USR%" + "Kenner") vor/an. Danach hast du alles wieder in einer Variable und schiebst das mit dem zugehörigen net user /domain-Befehl für diesen Benutzer wieder in die SAM. Das geht die ganze "Datei" durch. Danach Aussprung aus der FOR-Schleife.

Kann leider nur theoretisch beschreiben. :( Habe "at Home" kein NT. Könnte morgen das Problem mal an Arbeit durchkauen.

 

Batchen ist ja soooo schön :D

 

Thomas

Link zu diesem Kommentar

Hy Leute,

 

zuerst mal vielen lieben Dank für die schnellen Reaktionen. :D

 

Zur Antwort von auer:

 

das Auslesen der alten Beschreibung und das Zusammenbauen des Scriptes ist wirklich das kleinere Problem (da wird kurzerhand ein Exchange 5.5 draufgetüddelt, der exportiert mir das wunderbar, bin da faul).

Habe mich schon tierisch über den Parameter /USERCOMMENT gefreut, den ich blöderweise übersehen hatte. Habe das eben gleich mal getestet. NT4 gibt diesen Parameter in der Ausgabe bei "net help user" auch aus. Wenn ich den Befehl absetze, bekomme ich in der DOS-Box auch schön brav gemeldet "Der Befehl wurde erfolgreich ausgeführt", passieren tut jedoch leider ganz genau NICHTS. Die Beschreibung wird nicht geändert :mad:

 

 

Zur Antwort von himbidas:

 

Hey, supernett von Dir, aber wenn ich ganz ehrlich bin, komme ich nicht gerade aus der Script- und Programmierecke...

Kannst Du mir das bitte einfach ein bisschen erläutern ?

Ich denke, wir können das sehr verkürzen:

Geh bitte dabei davon aus, daß ich die Liste der Benutzernamen, Vollständigen Namen und Beschreibung vorliegen habe. Ich kann das ganze in eine Excel-Tabellelaufen lassen und Befehle einfügen, wie ich lustig bin...

Was genau soll ich einfügen ? Du schreibst " ... mit dem zugehörigen net user /domain-Befehl..." genau um DEN geht es mir ...

 

Machen wir ein Beispiel:

 

Vorhanden (mittels Exchange 5.5 rausgesaugt):

 

Mueller Mueller, Thomas Buchhaltungsuser

 

Ich bearbeite mit Excel:

 

net user Mueller /USERCOMMENT:"ausgeschiedener Buchhaltungsuser"

 

So in der Richtung soll es gehen... aber es funktioniert eben nicht...

 

Noch ne Idee ?

 

Danke schonmal !!!!

 

Gruß

schroeder750

Link zu diesem Kommentar
  • 2 Wochen später...

sorry, dass ich nix mehr von mir hab hören lassen. bin z.zt. auf einem Lehrgang und nur mal kurz am rechner :mad:

habe letzte woche mal an einem Script gebastelt. habe aber noch Probleme mit den Leerstellen in der Benutzerbeschreibung.

Aber mit dem USERCOMMENT kommen wir da auch weiter.

Also, Bestandsaufnahme:

Mueller Mueller, Thomas Buchhaltungsuser

 

Das erste Mueller ist das Login?

Der Rest ist die Benutzerbeschreibung?

Jetzt ziehst du eine Liste per Exchange5.5 raus und bearbeitest die so, dass am Ende eine Liste vorhanden ist mit allen Usern, die ein Vermerk bekommen sollen ?! Diese Liste darf nur aus den LOGINS bestehen. Für jedes Login eine Zeile (csv als txt umbenannt).

Diese Liste wird durch mein Script abgearbeitet und erzeugt in jedem Account im USERCOMMENT einen Eintrag, z.B. gelöscht.

 

Würde das so reichen?

Alternativ dazu kannst du ja noch eine Liste erzeugen für alle User, die in der SAM bleiben sollen. Die erhalten dann mit dem nächsten Durchlauf ein "vorhanden" im USERCOMMENT.

 

Wenn das so geht, könnte ich mich frühestens Donnerstag ranmachen, das Teil zusammenzuschraubern. Geht leider nicht eher.

 

Jedenfalls würden dann diese Eintragungen in die SAM getätigt, du könntest mit Exchange wieder ein Liste ziehen und da steht dann bei jedem User entweder "gelöscht" oder "vorhanden", vorausgesetzt, Exchange listet auch den USERCOMMENT aus!?

Ich checke das mal mit. Sollte das nicht der Fall sein, bekommt jeder User vor seinem Langeintrag eine "1" für "vorhanden" und eine "0" für "gelöscht".

 

Hoffe, das geht klar so.

Thomas

Link zu diesem Kommentar

Hy Leute,

 

habe das Problem gelöst...

 

Zuallererst aber mal ein gaaaanz liebes dankeschön für Eure Bemühungen.

 

Himbidas: Lass gut sein, steck keine Arbeit mehr rein. Echt supernett von Dir, daß Du schon anfangen wolltest zu scripten !!!

 

Die Lösung ist echt banal:

 

Man darf weder im NT4 noch im W2K den von MS vorgegebenen Begriff "USERCOMMENT" benutzen, sondern einfach nur "COMMENT". Ist zwar so nicht dokumentiert, aber wir haben selbst ein wenig rumprobiert.

 

Nochmal ganz einfach zur Erläuterung:

 

Der Befehl net user mueller /COMMENT:"Blabla" führt dazu, daß beim Benutzer der Kommentar "Blabla" eingefügt wird.

 

Das ganze mit /USERCOMMENT: führt nur zu einer Meldung, die sagt, es wurde erfolgreich durchgeführt, passieren tut aber nix.

 

Habe mir aus dem Exchange eine Liste der SAM erstellt, die im Excel den Usernamen und den Kommentar enthält (Rest rausgelöscht). Dann ein paar Spalten einzufügen, um das "net user" und das "comment" und die Worte, die vor den bestehenden Kommentar eingefügt werden sollen, ist ja kein Problem.

 

Daraus neues Script erstellt und es funzt wunderbar ...

 

O.K. dann mal bis demnächst !!

 

Ciao

schroeder750

Link zu diesem Kommentar

:rolleyes: wenn dein problem gelöst ist, auch gut.

Aber nochmal zur Fehlervermeidung:

Unter NT gibt es beide Parameter!

/COMMENT ist der Eintrag, den du im Benutzermanager im Feld "Beschreibung" wiederfindest.

/USERCOMMENT wird nicht im Benutzermanager wiedergegeben, wohl aber auf der Kommandozeile. Somit kann der Admin z.B. recht einfach im NT "versteckte" Eintragungen zum Benutzer (z.B. Personalnummer o.ä.) tätigen, die nicht jeder gleich sieht.

 

Der Befehl net user mueller /COMMENT:"Blabla" führt dazu, daß beim Benutzer der Kommentar "Blabla" eingefügt wird

bei deinen bisher beschrieben Befehlen vermisse ich immer was!

Wenn ich das bisher richtig interpretiert habe, gehts dir um die Umstellung deiner Domänen-SAM. Wenn du die Befehle so absetzt, wie oben, dann wird das nur auf dem lokalem PC in der lokalen Benutzerverwaltung erledigt. Richtigerweise müssten deine Befehle immer um die Option "/domain" erweitert werden, damit die Änderungen in der Domänenbenutzerverwaltung durchgeführt werden, z.B.:

net user mueller /COMMENT:"Blabla" /USERCOMMENT:"bloblo" /domain

führt dazu, daß beim Benutzer der Kommentar "Blabla", sowie der "DOS-verfügbare" "bloblo" eingetragen wird. Kontrolle per

net user mueller /domain | more 

Dann müsstest du beide Eintragungen sehen.

 

Und jetzt mal für mich.

Wie bringst du Excel dazu, zu scripten? so mit Spalten dazu, neue Befehle und Script erstellt? Irgendwie stehe ich da jetzt auf dem Schlauch :confused:

 

Thomas

Link zu diesem Kommentar

O.k. O.k. O.k. war vielleicht alles teilweise etwas ungenau beschrieben ;)

 

Gehen wir mal der Reihe nach durch:

 

1) Das mit dem DOS-verfügbaren "USERCOMMENT" wusste ich nicht. Guter Tip, Danke dafür, fürs nächste mal gespeichert !!

 

2) Das /domain habe ich nicht benutzt, da ich dieses Script beim Kunden auf dem PDC laufen lasse. Da is ja klar, daß er die Domänenbenutzer anfassen muss. Die Info fehlte natürlich, sorry ...

 

3) Excel scriptet natürlich nicht, ich benutze es nur um meine Scripte schön einfach zu erstellen.

 

Nochmal die Erläuterung in aller Ruhe, was ich treibe:

 

Anforderung vom Kunden:

 

VOR der Umstellung auf W2K / W2K3 müssen Benutzer in der NT4-SAM teilweise umbenannt, teilweise rausgelöscht werden, bei einigen soll einfach nur ein bestimmter Begriff vor der Beschreibung eingefügt werden. Es handelt sich hier um ca. 6000 Benutzer.

Des weiteren sollen die zugehörigen Homelaufwerke, Noteslaufwerke natürlich auch umbenannt und unter dem neuen Usernamen freigegeben werden.

 

Um herauszufinden welcher User in welchen Namen umbenannt werden soll und welcher User gelöscht, bzw nur mit einem Begriff markiert wird, haben wir x verschiedene Quellen hinzuziehen müssen. Teilweise auf wildestem Wege, da bei 80% der User jegliche Zuordnung von altem zu neuem Namen fehlte.

 

Da war einiges an manueller Arbeit fällig, um überhaupt mal eine Zuordnung von alten zu neuen Namen usw. herzustellen.

Teilweise mussten Listen aus der Personalabteilung manuell im Excel zu den bestehenden Benutzern zugeordnet werden

 

Optimalfall ist natürlich eine Liste, in der links die alten Benutzernamen und rechts die neuen Benutzernamen stehen.

 

Dazu habe ich als allererstes mal Exchange 5.5 genommen, um mir die derzeitige SAM zu exportieren.

Da entsteht ja bekanntermaßen eine *.csv-Datei, womit wir auch schon beim Excel wären.

Aus der *.csv-Datei alle Infos rausgelöscht, die ich nicht mehr benötige (wen interessiert in dem Zusammenhang der Mailhomeserver ? -> Raus damit ), dann bleibt eine Liste übrig, die zu den jeweiligen bestehenden Benutzern die Anzeigenamen und die Beschreibung beinhaltet. Schön in drei Spalten voneinander getrennt...

 

Jetzt kann man aus den verschiedenen Quellen, die wir anzapfen mussten, die gewünschten späteren Namen rechts in eine Spalte daneben schreiben (oder reinimportieren oder oder oder ...)

Die nun nicht benötigten Infos wie Beschreibung und Anzeigename rausschmeissen, dann habe ich in der Tabelle links in einer Spalte den alten und rechts in einer weiteren Spalte den neuen Namen. Nun noch vorne eine Spalte eingefügt, in der einfach in jeder Zeile "renuser" steht.

Wenn man das ganze dann als Textdatei speichert, hat man folgenden Inhalt:

 

renuser XXX hmueller

renuser xyz pmeier

renuser abc fhuber

usw...

 

Die Textdatei einfach in eine *.cmd umbenennen, Doppelklick und schon werden die ca. 6000 User automatisiert umbenannt...

Man kann es natürlich auch so machen, daß man den Inhalt der Textdatei an ein Script übergibt, aber das ist in diesem Fall nicht notwendig. Die Scripte sind natürlich wunderbar rekursiv zu gestalten, indem man die Spalte mit dem alten und dem neuen namen einfach vertauscht... falls es igendwo Probleme gibt.

 

Das diese Scripte alle in einer Testumgebung (Abgesaugter BDC, alleinstehend zum PDC hochgestuft) sauber durchgetestet werden, versteht sich von selber.

 

Und genauso gehe ich vor, um Homelaufwerke umzubenennen, neue Shares zu vergeben und und und ...

 

Ich benutze Excel halt, weil man da ruckzuck vor eine 6000 Zeilen lange Kolonne von Benutzernamen den passenden Befehl eingefügt hat.

 

Alles Klaro ?

 

Puh, meine Tastatur qualmt...

 

Nichts desto trotz, tausend Dank nochmal an alle, die hier geholfen haben !!!!

 

Ciao

 

schroeder750

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...