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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 111071
Url: https://administrator.de/contentid/111071
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
10 Kommentare
Neuester Kommentar
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
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
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
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
Servus,
Ps:
Gruß
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ß
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
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
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
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
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:
gruß
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ß