osdgap
Goto Top

Bei einem Domänenbenutzer werden nicht alle Netzlaufwerke gemappt

Hallo,

folgendes Problem:

Die Netzlaufwerke werden per Logon-Script gemappt, dabei wird mit dem Tool "ifmember.exe" die Gruppenzugehörigkeit geprüft, wenn Member mappen, wenn nicht, kein Mapping.
So werden im Script alle Gruppen abgefragt.

Bei einem Anwender werden werde nur die "allgemeinen" Mappings gemountet, die übrigen nicht, obwohl er in den entsprechenden Gruppen Mitglied ist.
Ein Versuch an einem anderen Rechner wurde bereits durchgeführt, ohne Erfolg, ich selbst habe mich in zwei seiner Gruppen hinzugefügt und bekam die Laufwerke gemappt.

Hier das Script (modifiziert)

@echo OFF

REM ----- mappings Allgemein ----
start net use u: \\server.local\oulocal\Benutzer\%USERNAME%
start net use i: \\server.local\oulocal\Organisation /persistent:no
start net use z: \\server.local\oulocal\Allgemein /persistent:no

REM ---- mappings OU-Administratoren ----
ifmember oulocal-OUAdmins
if NOT %ERRORLEVEL%==1 goto ExitOUAdmin
start net use l: \\server.local\oulocal\DATEN /persistent:no
start net use m: \\server.local\oulocal\DATEN2 /persistent:no
:ExitOUAdmin

REM ---- mappings Abteilungsleiter ----
ifmember oulocal-Abteilungsleiter
if NOT %ERRORLEVEL%==1 goto ExitAbteilungsleiter
start net use j: \\server.local\oulocal\Abteilungsleiter /persistent:no
:ExitAbteilungsleiter

REM ---- mappings Controlling ----
ifmember oulocal-Controlling
if NOT %ERRORLEVEL%==1 goto ExitControlling
start net use m: \\server.local\oulocal\Controlling /persistent:no
:ExitControlling

REM ---- mappings Geschäftsleitung ----
ifmember oulocal-Geschaeftsleitung
if NOT %ERRORLEVEL%==1 goto ExitGeschaeftsleitung
start net use p: \\server.local\oulocal\Geschaeftsleitung /persistent:no
:ExitGeschaeftsleitung

REM ---- Execute at login ----
start wuauclt /resetauthorization /detectnow
start %logonserver%\netlogon\Mailsignature\signagent.exe

EXIT

Content-ID: 382583

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

Ausgedruckt am: 17.11.2024 um 15:11 Uhr

SlainteMhath
SlainteMhath 07.08.2018 um 15:32:37 Uhr
Goto Top
Moin,

Login-Scripts mit ifmember sind so... 1990 :/ ... das macht man doch per GPO!

Ansonsten: hast du mehrere DCs/Sites? Evtl. passt was mit der Replikation nicht? Oder er/sie ist hat eine Zugriffsverweigerung am Share eingetragen?

Was passiert, wenn du das Script "per Hand" nach dem Login ausführst? Evtl. sieht man da Fehlermeldungen

lg
Slainte
emeriks
emeriks 07.08.2018 um 15:33:32 Uhr
Goto Top
Hi,
bevor gleich andere Anworten kommen, warum Du denn dafür keine GPO/GPP benutzt, eine Frage:

Kann dieser Benutzer denn den UNC-Pfad direkt über den Explorer öffnen? Also z.B.
\\server.local\oulocal\Geschaeftsleitung

Wenn nein, dann hast Du aller Wahscheinlichkeit nach ein Problem in den Berechtigungen. z.B. in der Addition der Freigabe- und NTFS-Berechtigungen, oder dass für diesen Benutzer oder einer seiner Gruppen eine explizite Verweigerung gilt.

Wenn URL doch geht:
Kann er das Laufwerk manuell über den Exploter oder mit "net use" verbinden? Falls nein, welche Meldung kommt da?

E.
emeriks
emeriks 07.08.2018 um 15:34:03 Uhr
Goto Top
Zitat von @SlainteMhath:
Login-Scripts mit ifmember sind so... 1990 :/ ... das macht man doch per GPO!
Sag ich doch! face-wink
117471
117471 07.08.2018 um 15:37:35 Uhr
Goto Top
Hallo,

ich würde zuerst mal prüfen, ob die ifmember-Geschichte sauber läuft (z.B., indem man die Batch-Datei um eine Protokollierung anreichert).

Des Weiteren sehe ich z.B., dass Du M: einmal für "Controlling" und einmal für "Admin" benutzt. Was soll denn z.B. rauskommen, wenn sich ein Controller anmeldet, den PC sperrt und sich dann der Admin am gleichen PC anmeldet?

Diese Form der Abgrenzung ist - vorsichtig ausgedrückt - ausgesprochen unüblich. Normalerweise nimmt man einheitliche Laufwerksbuchstaben, gibt allen Benutzern alle Laufwerke und regelt das über die Zugriffsrechte (vom Fileserver).

Mit anderen Worten - ich bezweifle, dass es sich um einen Programmierfehler in der Batch-Datei handelt. Für mich sieht das eher wie ein Problem mit "ismember.exe" oder einer allgemeinen Instabilität in der Vorgehensweise aus.

Gruß,
Jörg
osdgap
osdgap 07.08.2018 um 15:51:04 Uhr
Goto Top
Hi,

ja, das geht (\\server.local\oulocal\Geschaeftsleitung), selbst das geht in der cmd: net use p: \\server.local\oulocal\Geschaeftsleitung /persistent:no
Die Rechte stimmen, Gruppenzugehörigkeiten auch, er ist der einzige User bei dem es nicht funktioniert
osdgap
osdgap 07.08.2018 aktualisiert um 15:52:28 Uhr
Goto Top
Hi,

die läuft bei allen Usern (ca300) sauber durch, nur bei diesem Anwender nicht.

Das mit dem LW-Buchstaben "M" ist so gewollt.
SeaStorm
SeaStorm 07.08.2018 um 15:59:49 Uhr
Goto Top
Was geht denn daran nicht?
Geht das ifmember nicht, oder der net use befehl ?

Anders gefragt: gibt ifmember bei ihm denn was zurück? Hast du dann ein errorlevel?

Erst mal klären wohin das Script überhaupt kommt. Dann kann man sehen wie man den eigentlichen Fehler behebt.

Und: GPPs !
117471
117471 07.08.2018 aktualisiert um 16:22:57 Uhr
Goto Top
Hallo,

Zitat von @osdgap:

Hi,

die läuft bei allen Usern (ca300) sauber durch, nur bei diesem Anwender nicht.

Wie gesagt - ich habe Dich gebeten zu überprüfen, ob die Batch-Datei überhaupt in die Schleife einsteigt, also z.B. so:

@ECHO OFF

REM ----- mappings Allgemein ----
start net use u: \\server.local\oulocal\Benutzer\%USERNAME%
start net use i: \\server.local\oulocal\Organisation /persistent:no
start net use z: \\server.local\oulocal\Allgemein /persistent:no

REM ---- mappings OU-Administratoren ----
ifmember oulocal-OUAdmins
if NOT %ERRORLEVEL%==1 goto ExitOUAdmin
echo Administrator > %tmp%\anmeldelog.txt
start net use l: \\server.local\oulocal\DATEN /persistent:no
start net use m: \\server.local\oulocal\DATEN2 /persistent:no
:ExitOUAdmin

REM ---- mappings Abteilungsleiter ----
ifmember oulocal-Abteilungsleiter
echo Abteilungsleiter >> %tmp%\anmeldelog.txt
if NOT %ERRORLEVEL%==1 goto ExitAbteilungsleiter
start net use j: \\server.local\oulocal\Abteilungsleiter /persistent:no
:ExitAbteilungsleiter

REM ---- mappings Controlling ----
ifmember oulocal-Controlling
echo Controlling >> %tmp%\anmeldelog.txt
if NOT %ERRORLEVEL%==1 goto ExitControlling
start net use m: \\server.local\oulocal\Controlling /persistent:no
:ExitControlling

REM ---- mappings Geschäftsleitung ----
ifmember oulocal-Geschaeftsleitung
echo Geschaeftsleitung >> %tmp%\anmeldelog.txt
if NOT %ERRORLEVEL%==1 goto ExitGeschaeftsleitung
start net use p: \\server.local\oulocal\Geschaeftsleitung /persistent:no
:ExitGeschaeftsleitung

REM ---- Execute at login ----
start wuauclt /resetauthorization /detectnow
start %logonserver%\netlogon\Mailsignature\signagent.exe

EXIT

In der %tmp%\anmeldelog.txt sollte dann stehen, welche Gruppen identifiziert wurden.

Aktuell weißt Du nämlich nicht einmal, ob dein User die ifmember.exe überhaupt ausführen kann und darf und ob er die im Pfad hat usw.

Ganz abgesehen davon, dass die Datei aus dem Resourcekit für Windows Server 2003 stammt und somit spätestens über die UAC stolpert. Wenn sie überhaupt noch startet...

Eventuell hat dein Script Probleme, weil die Laufwerke bereits existieren? Im Zweifelsfall würde ich (ebenfalls testweise) folgendes an den Anfang malen:

net use i: /delete
net use j: /delete
net use l: /delete
net use m: /delete
net use p: /delete
net use u: /delete
net use z: /delete

"Suchen" musst Du den Fehler übrigens selber face-smile

Gruß,
Jörg
Vision2015
Vision2015 07.08.2018 um 16:39:03 Uhr
Goto Top
moin...

wie die kollegen schon sagen, einfach mal auf GPO umstellen...
geht es mit dem user an einem anderen PC?
schon mal geprüft ob die LW buchstaben nicht schon vergeben sind, evtl. durch 12-1 Cardreader etc...

Frank
osdgap
osdgap 07.08.2018 um 16:48:09 Uhr
Goto Top
Ich habe mich an seinem PC angemeldet und bekomme die Laufwerke, er bekommt die Laufwerke an meinem PC nicht.
Buchstaben sind frei
osdgap
osdgap 07.08.2018 um 16:52:05 Uhr
Goto Top
Habe das Script auf ein Paar Einträge runter gebrochen und pausen eingebaut um die Errorlevels zu prüfen, bei mir getestet, läuft einwandfrei, werde morgen früh beim Benutzer testen und berichten.
BassFishFox
BassFishFox 07.08.2018 aktualisiert um 21:47:45 Uhr
Goto Top
Hallo,

Ich habe mich an seinem PC angemeldet und bekomme die Laufwerke, er bekommt die Laufwerke an meinem PC nicht.

Toller Test.

Dann finde heraus, was der Unterschied zwischen Deiner Anmeldung und seiner Anmeldung ist.
Ausser dem verwendeten Benutzernamen/Passwort und das Du lokale/DomaenenAdminrechte hast. face-wink

BFF
osdgap
osdgap 07.08.2018 um 21:33:15 Uhr
Goto Top
Schon klar, zumindest liegts nicht am Blech.
Musste ich ausschliessen, wurde danach gefragt.
Morgen schau ich mir den scriptlauf an.
Tektronix
Tektronix 08.08.2018 um 08:13:36 Uhr
Goto Top
Moin,
gehe doch mal direkt auf dem Fileserver auf den freigegebenen Ordner, rechtsklick, Eigenschaften, Sicherheit, Erweitert, Effektiver Zugriff. Dort mal schauen was rauskommt wenn Du explizit den User auswählst.
emeriks
emeriks 08.08.2018 um 08:18:32 Uhr
Goto Top
Zitat von @Tektronix:
gehe doch mal direkt auf dem Fileserver auf den freigegebenen Ordner, rechtsklick, Eigenschaften, Sicherheit, Erweitert, Effektiver Zugriff. Dort mal schauen was rauskommt wenn Du explizit den User auswählst.
Er hat doch schon geschrieben, dass der Zugriff über UNC funktioniert.
osdgap
osdgap 08.08.2018 um 09:49:51 Uhr
Goto Top
Hier das Ergebnis, es scheint so zu sein das "ifmember" Probleme hat wenn ein User in mehr als xxx Gruppen ist (siehe Bild im Anhang, in diesem Fall ist der User in 84 Gruppen, kennt jemand eine Lösung dazu?
errorlevel2
SeaStorm
SeaStorm 08.08.2018 aktualisiert um 10:01:22 Uhr
Goto Top
osdgap
osdgap 08.08.2018 um 10:06:39 Uhr
Goto Top
du hast ja RECHT! Leider sind wir eine Außenstelle, die Mappings werden von der Zentrale gesteuert.
117471
117471 08.08.2018 um 10:08:30 Uhr
Goto Top
Hallo,

Zitat von @osdgap:

Hier das Ergebnis, es scheint so zu sein das "ifmember" Probleme hat wenn ein User in mehr als xxx Gruppen ist (siehe Bild im Anhang, in diesem Fall ist der User in 84 Gruppen, kennt jemand eine Lösung dazu?

  • Microsoft bitten, dieses uralte Tool an deine Bedürfnisse anzupassen
  • Ein eigenes Tool programmieren
  • Der Best Practice folgen und Gruppenrichtlinien nutzen

Bitte entschuldige, falls das unbeabsichtigt zynisch klingt. Mehr fällt mir momentan nicht ein face-sad

Gruß,
Jörg
SeaStorm
SeaStorm 08.08.2018 aktualisiert um 10:15:35 Uhr
Goto Top
face-sad Bechtle :\

Wenns unbedingt Batch sein muss, kannst du whoami /groups probieren.
whoami /groups | findstr /I /C:"GRUPPENNAME" > NUL  
if %errorlevel% == 0 (
    echo In Group
) else (
    echo Not in Group
)

Oder, falls möglich, auf Powershell umsteigen. Damit geht das dann auch ein bisschen schöner
EDIT: Musst halt darauf achten, das keine falscherkennung vorkommen kann, weil es z.B "Gruppe1" und "Gruppe12" gibt. Dann würde er bei dem Code oben die Gruppe1 finden, obwohl der User eigentlich nur in Gruppe12 ist.

Ansonsten: Zentrale anrufen und sagen die sollen ihren ### mal auf die Kette bekommen...
SlainteMhath
SlainteMhath 08.08.2018 um 10:48:23 Uhr
Goto Top
du hast ja RECHT! Leider sind wir eine Außenstelle, die Mappings werden von der Zentrale gesteuert.
Dann solltest du mal den dortigen Admins mitteilen, dass ihre "Steuerung" nicht mehr funktioniert.

Oder du reorganisierst deine Gruppen so, das ifmember damit zurecht kommt.
osdgap
osdgap 08.08.2018 um 14:00:32 Uhr
Goto Top
ja, hab jetzt eine Liste von Gruppen die ich wegnehmen kann, allerdings konnte ich nur die entfernen die in unserer OU liegen, den Rest hab ich mal zur Zentrale als Ticket geschickt
SlainteMhath
SlainteMhath 08.08.2018 um 14:22:33 Uhr
Goto Top
hm, ja, kann man machen.... damit bekämpfst du aber nur das Symptom, nicht die Krankheit
SeaStorm
SeaStorm 08.08.2018 um 14:28:34 Uhr
Goto Top
whoami ist keine option?
NixVerstehen
NixVerstehen 09.08.2018 um 10:10:01 Uhr
Goto Top
Kann mich nur den anderen anschließen. Mach das per GPO. Hier was ähnliches zu dem Thema:

Netzlaufwerke per GPO

Gruß Arno