Jump to content

net user /domain zeichenlänge gruppenmitgliedschaften


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

Recommended Posts

Hallo zusammen,

 

nach längerer Suche im board hab ich leider nix passendes gefunden - hoffe der Beitrag ist hier richtig.

Per

net user /domain %username% 

 

möchte ich alle Gruppen u.a. auch abcdefghijklm12345nopqrstuvwxyz auslesen. Jedoch beinhaltet die Gruppennamen-Länge mehr als 20 Zeichen und somit wird als Ergebnis nur

Lokale Gruppenmitgliedschaften      *abcdefghijklm12345nop                                   

geliefert. Gibt es eine Möglichkeit (außer Gruppennamen-Länge kürzen) den erlaubten Zeichencache von net user zu erweitern?

Link to comment

Moin,

 

ich habe gerade erstaunt festgestellt, dass der sAMAccountName einer Gruppe tatsächlich länger sein darf als 20 Zeichen, obwohl hier steht, dass es nur 20 sein dürfen*:

http://msdn.microsoft.com/en-us/library/ms679635(v=VS.85).aspx

 

Da die Shellbefehle mit Sicherheit ein hart kodiertes Ausgabeformat haben, wirst du das kaum beeinflussen können. Daher solltest du auf andere Methoden zum Auslesen ausweichen.

 

Aus diesem Grund würde ich aber dazu raten, die SAM-Namen von Objekten nicht länger zu machen als 20 Zeichen.

 

Gruß, Nils

* EDIT: Stimmt nicht, ich lese gerade:

This attribute must be less than 20 characters to support older clients.
Edited by NilsK
Noch was gefunden
Link to comment

meinst du mit deinem edit dass es doch mehr als 20 Zeichen sein dürfen, nur nicht für "older clients"? oder wie verstehst du die Angabe?

Und was sind "older clients"?

Windows NT 4.0, Windows 95, Windows 98?

Hab den Befehl auf einem WinXP System ausgeführt (AD=Win2k8)

 

BG gw5

Link to comment

Hi,

 

wie Nils schon sagte ist das Maximum laut Schema nicht auf 20 Zeichen beschränkt (siehe das "Range-Upper" im verlinkten MSDN Artikel) - jedoch gibt es diverse Applikationen und/oder Dienste, die mit längeren sAMAccountName Attributwerten nicht umgehen können. Bei 16-20 Zeichen ist meist Schluß.

 

AFAIR sind auch Microsoft Applikationen betroffen, vielleicht ist also "net.exe" ein Beispiel dafür.

 

Wofür benötigst Du die Ausgabe genau? Wird sie im Benutzerkontext ausgegeben oder war das %username% nur ein Platzhalter für den Post hier?

 

Alternativen wären neben vielen anderen Varianten zum Beispiel "whoami.exe /groups", "dsget user -memberof -expand" oder Win32_TokenGroups, je nach Anwendungszweck.

 

Viele Grüße

olc

Link to comment

Moin olc,

 

danke, an whoami hatte ich garnicht gedacht. Funktioniert prima. Noch eine Frage dazu: mit dem findstr-Befehl durchsucht er mir alle Gruppen egal an welcher Stelle der string steht. D.h. suche ich nach Gruppe abc, listet er mir auch Gruppe abcd oder 12abc34. Ist es möglich genau nach einer bestimmten Gruppe mit entsprechendem string zu suchen?

Hattest das schon richtig erkannt %username% sollte hier wirklich für den angemeldeten User stehen, was quasi whoami wiederspiegelt.

Noch als Nachtrag: "dsget user -memberof -expand" funktioniert m.E. nur im AD nicht auf Client-Systemen?!

 

Besten Dank und VG

Link to comment

Hi gw5,

 

mit findstr kannst Du ansatzweise "regular expressions" nutzen, vielleicht reicht Dir ja schon die "/b" Option: Findstr

 

Ansonsten schau Dir die regexp-Optionen im Artikel an:

\<xyz -->Word position: beginning of word

xyz\> --> Word position: end of word

 

DSGET.exe ist standardmäßig nur auf DCs installiert - aber wir wußten oben ja noch nicht, ob es client-seitig ausgeführt werden soll oder nicht. :)

 

Schau Dir noch einmal Win32_TokenGroups an, das kann Dir auch weiterhelfen.

 

Aber um das ganze noch einmal genauer zu beleuchten und zu prüfen, ob es nicht vielleicht auch andere Varianten geben würde: Was genau möchtest Du mit der Gruppenprüfung erreichen? Was ist Ziel der Aktion?

 

Filterungen kannst Du etwa mit den GPP viel einfacher lösen als mit Loginscripts o.ä.

 

Viele Grüße

olc

Link to comment

Erstmal besten Dank olc,

 

mit meiner Prüfung der Gruppen möchte ich erreichen, dass in Abhängigkeit der Gruppenzugehörigkeit eines Useres best. Laufwerke, Drucker etc. beim Anmelden des Useres gemapped werden.

Deinen Tip mit der Option /b bzw.

\<xyz -->Word position: beginning of word

xyz\> --> Word position: end of word

hatte ich probiert, aber irgendwie will es nicht wie ich ;-)

hier mal noch ein Auszug des Codes...

@echo on
set a="abcd"

%logonserver%\netlogon\whoami.exe /groups | findstr \< %a% >NUL

::Gruppe nicht gefunden
if errorlevel 1 echo Gruppe %a% nicht gefunden

::Gruppe gefunden
if not errorlevel == 1 echo Gruppe %a% gefunden

pause

Könnte mir jemand die vollständige Zeile angeben, wie die Optionen für findstr korrekt eingebunden werden müssen?

 

VG

Link to comment

mit meiner Prüfung der Gruppen möchte ich erreichen, dass in Abhängigkeit der Gruppenzugehörigkeit eines Useres best. Laufwerke, Drucker etc. beim Anmelden des Useres gemapped werden.

 

Olc hatte es ja schon erwähnt, mit Group Policy Preferences bist Du IMHO an dieser Stelle besser bedient. Schau dir dazu das zweite Bild in diesem HowTo genauer an: GPP - Group Policy Preferences - Gruppenrichtlinien Einstellungen

Link to comment

...das GPOs für meinen Anwendungsfall theoretisch geeigneter wären, konnte ich nach einer Weile auch feststellen, das Problem ist einfach nur, dass quasi von "oben" (Firma) es so gewollt ist, dass Mappings anhand von Gruppen geschehen sollen (der Übersicht halber) --> ich weiß diese Meinung muss man nicht unbedingt teilen ;)

Link to comment

...mit den GPP kannst Du ja Gruppen als Filter nutzen. ;)

 

Deshalb der Hinweis von Sunny61 zum zweiten Screenshot auf der verlinkten Webseite... :)

Versuche es einmal mit den GPP, wenn Deine Betriebssysteme Windows XP aufwärts sind - ggf. noch das GPP Update vorher auf XP und Vista installieren (etwa per WSUS). Du wirst sehen, daß das weit einfacher und komforabler ist als das Logon Script.

 

Ansonsten: Versuch es einnmal im Scipt ohne Leerzeichen:

findstr \<%a%

Das %a% wird korrekt im Script aufgelöst?

 

Viele Grüße

olc

Link to comment
...das GPOs für meinen Anwendungsfall theoretisch geeigneter wären, konnte ich nach einer Weile auch feststellen, das Problem ist einfach nur, dass quasi von "oben" (Firma) es so gewollt ist, dass Mappings anhand von Gruppen geschehen sollen (der Übersicht halber) --> ich weiß diese Meinung muss man nicht unbedingt teilen ;)

 

Du kannst aber trotzdem die GPPs benutzen und in einem Test vorführen. Hast Du dir das angesehen? Ist um Welten einfacher zu handeln und Du könntest jetzt schon zum baden an den nächsten See fahren. ;)

Link to comment

die GPP-Variante ist auf jeden Fall eine Variante, an der man festhalten sollte... Als Begründung FÜR ein logon-skript --> falls mal ein mapping nicht funktioniert, führe ich logon-skript erneut durch und sehe direkt dessen Fehlermeldung (Fehlersuche damit einfacher) als bei GPOs --> da hab ich im Endeffekt nur die möglichkeit mit gpupdate /force die Richtlinie neu zuzustellen, aber wenn das nicht funzt weiß ich immernoch nicht an was es liegt, so die Begründung von "oben" ;)

@olc: sorry, der tip greift auch nicht, hab nun schon sogut wie alles probiert.. das \< dahinter davor mit und ohne leerzeichen :rolleyes:

gibts noch weitere Ratschläge? :)

@Sunny61: ach wie gern wär ich jetz am see ;)

Link to comment
die GPP-Variante ist auf jeden Fall eine Variante, an der man festhalten sollte... Als Begründung FÜR ein logon-skript --> falls mal ein mapping nicht funktioniert, führe ich logon-skript erneut durch und sehe direkt dessen Fehlermeldung (Fehlersuche damit einfacher) als bei GPOs --> da hab ich im Endeffekt nur die möglichkeit mit gpupdate /force die Richtlinie neu zuzustellen, aber wenn das nicht funzt weiß ich immernoch nicht an was es liegt, so die Begründung von "oben" ;)

 

Dann sollen die von oben doch mal das Ereignisprotokoll aufrufen, da findet man schon genügend Infos. Und es reicht in fast allen Fällen ein gupdate mit Ab- und wieder Anmelden völlig aus.

 

Wer administriert die Systeme? Du oder die von oben? Wenn Du, weshalb schreiben die von oben dann vor, mit welchem Werkzeug Du bestimmte Aufgaben durchführen sollst?

Link to comment

Hi nochmal,

 

abgesehen davon (siehe auch die anderen kommentare), daß ich das Vorgehen nicht für sinnvoll halte - nur der Vollständigkeit halber: So sollte es funktionieren.

 

@echo on
set a=abcd

%logonserver%\netlogon\whoami.exe /groups | findstr /I "\<%a%"

::Gruppe nicht gefunden
if errorlevel == 1 echo Gruppe %a% nicht gefunden

::Gruppe gefunden
if errorlevel == 0 echo Gruppe %a% gefunden

 

Viele Grüße

olc

Link to comment

thx to olc

jawoll so funktionierts. Um eine exakte Suche nach einer bestimmten Gruppe mittels whoami durchzuführen, kann folgendes Skript verwendet werden:

@echo on
set a=abcd

%logonserver%\netlogon\whoami.exe /groups | findstr "\<%a%\>"

::Gruppe nicht gefunden
if errorlevel == 1 echo Gruppe %a% nicht gefunden

::Gruppe gefunden
if errorlevel == 0 echo Gruppe %a% gefunden

 

Danke nochmals für eure Hilfe, cooles board. :)

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

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.   Paste as plain text instead

  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.

×
×
  • Create New...