elsancho
Goto Top

LogonScript mit ifmember

Hallo zusammen,

ich habe mich natürlich schon durch viele Beiträge gelesen, da ich aber neu auf dem Gebiet der Scripte bin kann mir vielleicht doch jemand weiterhelfen.

So schaut`s aus:
@echo off
echo Anmeldescript ausführen...

net use O: \\SERVERNAME\Mitarbeiter
net use P: \\SERVERNAME\Kunden
net use S: \\SERVERNAME\Sekretariat
net use m: \\SERVERNAME\users\%username%
net use Q: \\SERVERNAME\Workshop

net use W: /DELETE

%logonserver%\netlogon\ifmember.exe DOMÄNE\Gruppe1

if errorlevel 1 (
net use W: \\SERVERNAME\Gruppe1 /persistent:no
)

goto END

echo

Die ifmember.exe liegt im NETLOGON, quasi bei der .bat Datei. Die Netzlaufwerke für alle werden einwandfrei verbunden. Jetzt möchte ich aber den Usern der Gruppe1 zusätzlich das Laufwerk W: mappen. Funktioniert aber nicht.

Kann mir jemand weiterhelfen?

Content-Key: 111071

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

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: Destry
Destry 11.03.2009 um 10:28:07 Uhr
Goto Top
Hallo ElSancho,

zwei Dinge fallen mir auf.

1.) Ich würde DOMÄNE\Gruppe1 und Hochkommatas stellen, damit Dir keine Leerzeichen im Domänen- oder Gruppennamen dazwischenfunken.

2.) Was prüfst Du in Deinem Befehl? Du willst wissen wer Mitglied in einer bestimmten Gruppe ist, aber im Befehl fehlt der Nutzername.
Ich denke der Befehl müsste so aussehen: %logonserver%\netlogon\ifmember.exe "DOMÄNE\Gruppe1" "%USERNAME%"

Dann sollte es gehen.

Gruss,
Destry
Mitglied: ElSancho
ElSancho 11.03.2009 um 15:54:53 Uhr
Goto Top
Hallo Destry,

danke erst einmal. Funktioniert allerdings immer noch nicht. Aktueller Stand:
@echo off
echo Anmeldescript ausführen...

net use O: \\SERVERNAME\Mitarbeiter
net use P: \\SERVERNAME\Kunden
net use S: \\SERVERNAME\Sekretariat
net use m: \\SERVERNAME\users\%username%
net use Q: \\SERVERNAME\Workshop

net use W: /DELETE

%logonserver%\netlogon\ifmember.exe"DOMÄNE\GRUPPE1"
"%USERNAME%"

if errorlevel 1 (
net use W: \\SERVERNAME\GRUPPE1 /persistent:no
)

goto END

echo

Aber eventuell bin ich schon einen Schritt zu weit. Sollte die .bat ausserdem unter dem Benutzerprofil als Anmeldeskript eingetragen werden? Und korrektur: Die ifmember.exe liegt im SysVol\Policies\... dort unter Scripts\Logon.
Mitglied: Destry
Destry 11.03.2009 um 17:24:23 Uhr
Goto Top
Hallo El Sancho,

wenn ich Deine Batch genau nehme dann feht zwischen "ifmember.exe" und "DOMÄNE..." ein Leerzeichen.
Ausserdem gehört "%USERNAME%" natürlich in eine Zeile mit dem "ifmember"-Befehl.

Also so:

%logonserver%\netlogon\ifmember.exe "DOMÄNE\GRUPPE1" "%USERNAME%"

Die If-Abfrage kenne ich so auch nicht. Aber ich sehe gerade das es auch so geht wie Du es schreibst.

Ich würde es so schreiben:

if %errorlevel%==1 net use W: \\SERVERNAME\GRUPPE1 /persistent:no

Dein bat-Standort sollte ok sein. Ins Netlogonverzeichnis sollte jeder Zugriff haben. Auf jeden Fall besser als im Nutzerprofil. Dort müsstest Du es ja für jeden einzelnen Nutzer ablegen.

Ich möchte Dir aber raten den ifmember-Befehl mal ausserhalb Deiner Batch auf der Kommandozeile zu probieren.
Nur dort kannst Du sehen was tatsächlich passiert und ob er vielleicht Fehlermeldungen ausspuckt.

Gruss,
Destry
Mitglied: 60730
60730 11.03.2009 um 18:10:26 Uhr
Goto Top
Servus,

Rem @echo off
Rem denn nur wenn das Script tadellos funktioniert - sollte echo off sein.
@echo Anmeldescript ausführen...

net use O: \\SERVERNAME\Mitarbeiter
net use P: \\SERVERNAME\Kunden
net use S: \\SERVERNAME\Sekretariat
net use m: \\SERVERNAME\users\%username%
net use Q: \\SERVERNAME\Workshop
rem nur dann trennen - wenn auch vorhanden
if exist w:\ net use W: /DELETE

%logonserver%\netlogon\ifmember.exe "DOMÄNE\GRUPPE1"  
if errorlevel 1 net use W: \\SERVERNAME\GRUPPE1 /persistent:no
if exist w:\ echo Laufwerk W wurde verbunden

goto END

:end

Ps:
Ausserdem gehört "%USERNAME%" natürlich in eine Zeile mit dem "ifmember"-Befehl.
Ist natürlich eher (zumindestens bei den mir bekannten Versionen von Ifmember) quatsch - Ifmember /? - hätte das aber auch erklären können.


Gruß
Mitglied: ElSancho
ElSancho 12.03.2009 um 12:02:03 Uhr
Goto Top
Also wenn ich in der Kommandozeile die .bat laufen lasse erscheint nur der Systemfehler 85. Klar, die Laufwerke sind ja schon verbunden. Ansonsten keine Fehlermeldung.
Sollte die ifmember auf allen DC`s und allen betroffenene Workstations liegen?
Mitglied: Destry
Destry 12.03.2009 um 17:42:12 Uhr
Goto Top
Wo genau liegt denn nun der Fehler?

Wird das Script korrekt ausgeführt einschließlich des ifmember-Befehls oder weisst Du das ifmember gar nicht gefunden wird.

Wenn Du es nicht weisst musst Du den Fehler besser einkreisen.

Führe das Script zuerst mal auf Deinem PC aus. Ohne die Laufwerksverbindungen. Mit "echo off", damit Du siehst was passiert und wo es hakt. Ob alle Befehle gefunden und richtig interpretiert werden.
Wenn alles geht und keine Fehlermeldungen rauskommen hast Du einen logischen Fehler im Programm.

Der netlogon-Standort ist der richtige. Alles was dort liegt existiert automatisch auf allen DC's (oder Du hast ein Problem mit der Synchronisierung). Kannst Du aber einfach prüfen in dem Du Dir die netlogon-Verzeichnisse der anderen DC's anschaust. Da sollte ifmember.exe auch liegen. Eine Verteilung auf die PC's ist nicht notwendig.

Gruss,
Destry
Mitglied: ElSancho
ElSancho 13.03.2009 um 09:19:04 Uhr
Goto Top
Guten Morgen

Wenn ich das script auf meinem PC ausführe wird das Laufwerk W:/ gemappt, ifmember /list bestätigt mir das ich in der Gruppe bin. Keine Fehlermeldungen. Soweit funktioniert das also.

Ich habe scheinbar auf dem Server ein Problem mit ifmember. Wenn ich dort ifmember /list oder /? eingebe erscheint die Meldung "... wurde nicht gefunden". Aber die ifmember.exe liegt defacto im NETLOGON. Und ich konnte sie gestern über die commandline auf schon ansprechen. Die Synchronisierung funktioniert, Änderungen werden übernommen und ifmember liegt auch auf dem anderen DC.
Mitglied: Destry
Destry 16.03.2009 um 17:22:37 Uhr
Goto Top
Das Du auf dem Server "ifmember" nicht findest liegt vielleicht daran das der netlogon-share nicht zum Standard-Such-Pfad gehört.
Wenn Du Dich bei der Eingabe nicht im netlogon-Verzeichnis befunden hast kann er die exe-Datei nicht von alleine finden.

Schau mal ob Du von Deinem PC mit : "dir %logonserver%\netlogon" den Inhalt des netlogon-Verzeichnisses angezeigt bekommst und auch die ifmember.exe siehst. Auch mal als Nutzer aufrufen, nicht nur als Admin.

Möglicherweise liegt der Fehler in den Berechtigungen.
Rufe das Script mal als Admin und mal als Nutzer direkt auf dem Server auf um zu sehen was passiert.
Du kannst auch mal die Variable %logonserver% durch den Namen eines DC's ersetzen um zu sehen ob es an der Variable liegt.
Überhaupt könntest Du Dir den Inhalt aller Variablen am Ende des Scripts, bevor Sie glöscht werden, in eine Datei schreiben um zu sehen ob die Inhalte stimmen.

Gruss,
Destry
Mitglied: 60730
60730 16.03.2009 um 17:46:27 Uhr
Goto Top
Moin,

yupp daran "Standard-Such-Pfad" - könnte es auch liegen.

Aber wenn er denn mein Script incl. der Zeile 13 benutzt - die da lautet:
%logonserver%\netlogon\ifmember.exe
...wäre es eher weniger der Suchpfad die Wurzel des übels.

gruß
Mitglied: ElSancho
ElSancho 25.03.2009 um 10:25:27 Uhr
Goto Top
Hallo nochmal,

jetzt funktioniert es. Woran es lag? Kann ich nicht sagen, ich habe mich einige tage nicht mehr darum gekümmert - plötzlich hat es gegeht.

Vielen Dank!!