cougar77
Goto Top

IFMEMBER logon Skript - Fehlerhafte Ergebnisse

Guten Morgen,

wieder mal ein super Phänomen...

Eigentlich läuft das Logon-Skript zum Verbinden der Laufwerke super, und es wird alles richtig abgearbeitet.
Aber in Einzelfällen kommt es dazu, dass IFMEMBER ein falsches Ergebnis liefert - es behauptet bei einem Durchlauf des Skripts (mit ca. 20 Aufrufen von IFMEMBER) plötzlich, dass der angemeldete Benutzer Mitglied in allen AD-Gruppen wäre. Es werden also tatsächlich alle Laufwerke verbunden. Der Benutzername wird aber IFMEMBER offenbar richtig übergeben.
Richtig seltsam ist, dass das nur bei ein paar bestimmten Benutzern auftritt, und hier auch nur bei ca. 30% der Fälle.

Content-ID: 258299

Url: https://administrator.de/contentid/258299

Ausgedruckt am: 22.11.2024 um 06:11 Uhr

DerWoWusste
DerWoWusste 22.12.2014 um 13:43:25 Uhr
Goto Top
Hi.

Dass ein Tool wie ifmember buggy ist, glaube ich nicht wirklich:
-es hat genau einen Zweck
-es ist jahrelang erprobt
-es wird von vielen Admins verwendet und Probleme wären bekannt.

Ich würde mir so einen Problemuseraccount nehmen, und in dessen Namen das Skript auomatisiert wieder und wieder laufen lassen und beispielsweise eine messagebox aufpoppen lassen, wenn ifmember meint, er wäre in einer Gruppe, in der der User aber nicht ist. Solche Tests im Fehlerumfeld führen sehr oft zur Lösung.
Cougar77
Cougar77 22.12.2014 um 21:50:16 Uhr
Goto Top
Momentan logge ich die Durchläufe beim Anmelden bei allen Benutzern mit.
Daher weiß ich, dass es mehr oder weniger regelmässig aber nur bei bestimmten Benutzern passiert.
Dem IFMEMBER wird der korrekte Benutzername übergeben.
Es ist unabhängig, bei welchem DC angemeldet wird.

Ich weiß ehrlich gesagt nicht mehr, wo ich suchen soll, deswegen meine Frage, ob das schon mal jemand gesehen hat.
emeriks
emeriks 22.12.2014 aktualisiert um 23:06:21 Uhr
Goto Top
Hi,
bitte mal mehr Randinformationen.

  1. Vielleicht die Batch hier posten?
  2. Fragst Du nur direkte oder auch indirekte Mitgliedschaften ab?
  3. Mitgliedschaften in Gruppen mehrerer Domänen?
  4. Welchen Typ haben die Gruppen?
  5. Wieviele Mitgliedschaften pro Benutzer insgesamt? (direkte + indirekte)

E.
DerWoWusste
DerWoWusste 22.12.2014 um 23:42:12 Uhr
Goto Top
Emeriks Fragen werden alle hinfällig, wenn man betrachtet, dass es manchmal geht, manchmal nicht. Irgendwas ist da buggy - entweder die Komponente die fragt (ifmember), oder die, die antwortet (AD). Keine Ahnung, ich würde weiter rumtesten mit diversen Usern und wenigen Gruppen, später dann mehr Gruppen, denen sie angehören.
emeriks
emeriks 22.12.2014 um 23:47:01 Uhr
Goto Top
@DerWoWusste
Wenn Du Dich da mal nichts irrst ...
Cougar77
Cougar77 23.12.2014 um 07:26:43 Uhr
Goto Top
- An einen Fehler im Batch selbst glaube ich auch nicht, da es bei 80% aller User völlig problemlos klappt, aber bei Gelegenheit poste ich gerne einen Ausschnitt.
- Grundsätzlich nur direkte
- Hier gibt es nur eine Domäne
- müssten alle globale Sicherheitsgruppen sein, ich prüf das nochmal nach
- Keine indirekte, ansonsten unterschiedlich von 4-10
Cougar77
Cougar77 23.12.2014 um 08:13:19 Uhr
Goto Top
Nochmal geprüft, alle relevanten Gruppen sind globale Sicherheitsgruppen.

Ausschnitt, der im Zweifelsfalls fehlerhaft läuft:

\\XXX\netlogon\ifmember grp_ABC
if errorlevel 1 (

net use Y: \\srv-XXX\ABC /persistent:no
set laufwerk04="Y:\"
set name04="ABC"
)
emeriks
emeriks 23.12.2014 aktualisiert um 14:22:33 Uhr
Goto Top
Aha.
Jo, ich tippe auf Netzwerk. Wenn ein Kommando nicht erkannt wird, z.B. weil EXE nicht da, dann wird - meines Wissens - ein folgendes "if errorlevel" immer mit True beantwortet.

Hast Du die GPO "bei Anmeldung immer auf das Netzwerk warten" aktiviert? Wenn nein, dann teste das bitte mal damit.

E.

Edit:
Wobei dann die Frage bleibt, warum die Laufwerke dann verbunden werden.
\\xxx\ ist die Domäne, richtig?
Und \\srv-xxx\ irgendein Member?
Könnt es da sein, dass es temporäre Störungen im LAN gibt, die eine Abfrage der Domäne verhindern? Wie verhält sich IFMEMBER (ich setze sowas selbst nicht ein), wenn die Domäne nicht erreichbar ist? Welche Errorlevel?

E.
DerWoWusste
DerWoWusste 23.12.2014 aktualisiert um 17:59:15 Uhr
Goto Top
Nehmen wir an, es wären Konnektivitätsprobleme zum DC. Dann würde ifmember gar nicht gefunden, korrekt, somit errorlevel höher als Null und das Laufwerk würde verbunden. Das ist die einzige logische Erklärung. Würde es gefunden, aber die Gruppen wären nicht abfragbar (AD antwortet warum auch immer nicht), dann würde ifmember zunächst einmal merkbar zögern und sich dann an den Token des Users ranmachen und die Gruppen daraus ziehen und korrekt antworten.
Vorschlag zur Güte: klopp ifmember in die Tonne und nimm fortan Group Policy preferences drive mappings - läuft bestimmt besser, da es gepflegt wird, im Gegensatz zu ifmember.
Cougar77
Cougar77 23.12.2014 um 21:31:44 Uhr
Goto Top
@emerik
Ja, die GPO ist schon drin. War auch der erste Gedanke, weil wir schon mal hein anderes Problem hatten, da lag es an den SSDs, die waren einfach zu schnell.

Soweit ich weiß, gibt Ifmember als errorlevel die anzahl der als passend gefundenen AD-Gruppen zurück. Macht auch Sinn, denn wenn der Fehler auftritt, ist der errorlevel 53, was so über den Daumen der Anzahl aller vorhandenen Gruppen entspricht.

@DerWoWusste
Wenn ifmember einen positiven Eintrag findet, ist der errorlevel nicht 0, sonder die Anzahl der passenden Gruppenmitgliedschaften, in diesem Fall = 53. Errlvl 0 wäre keine Gruppenzugehörigkeit gefunden, also keine Verbindung, normalzustand sollte errlvl 1 sein.

Das Problem ist halt, dass es eigentlich super funktioniert, nur bei 5 Nutzern bei 20% der Fälle nicht.
DerWoWusste
DerWoWusste 23.12.2014 um 21:41:23 Uhr
Goto Top
Ja, ich weiß.
Gut, dass wir den errorlevel nun haben, ein "file not found" wäre 9009.

Mein Vorschlag bleibt ifmember abzulegen.
emeriks
emeriks 23.12.2014 um 22:00:37 Uhr
Goto Top
Mein Vorschlag bleibt ifmember abzulegen.
Stimme zu.
Cougar77
Cougar77 29.12.2014 um 10:38:09 Uhr
Goto Top
Grundsätzlich gebe ich Euch da Recht ;)
Aber so einfach wird das nicht.
Hauptsächlich würde mich hier interessieren WARUM es in diesen doch ziemlich wenigen Fällen nicht funktioniert.
emeriks
emeriks 29.12.2014 um 13:14:38 Uhr
Goto Top
Hi,
Aber so einfach wird das nicht.
Wieso? Wo siehst Du da Probleme?
Hauptsächlich würde mich hier interessieren WARUM es in diesen doch ziemlich wenigen Fällen nicht funktioniert.
Denkanstösse hast Du ja bereits bekommen.

E.
DerWoWusste
DerWoWusste 29.12.2014 um 15:30:33 Uhr
Goto Top
Denkanstösse hast Du ja bereits bekommen
sehe ich auch so. Mach die beschriebenen Tests im Fehlerumfeld:
Ich würde mir so einen Problemuseraccount nehmen, und in dessen Namen das Skript auomatisiert wieder und wieder laufen lassen und beispielsweise eine messagebox aufpoppen lassen, wenn ifmember meint, er wäre in einer Gruppe, in der der User aber nicht ist.