
Ich habe im Moment ein logon.cmd-Skript, das ich verwende, um Netzlaufwerke dem Benutzerprofil zuzuordnen. Es sieht folgendermaßen aus:
::Onboarding
net use m: /delete
net use m: \\BOB\onboarding
::Bookings
net use n: /delete
net use n: \\BOB\bookings
::Accounts
net use j: /delete
net use j: \\BOB\accounts
Es funktioniert einwandfrei, bis es zu einem Ordner gelangt, auf den der aktuelle Benutzer nicht zugreifen kann. Dann fragt es nach einem Benutzernamen und einem Kennwort, anstatt einen Fehler auszugeben und fortzufahren.
Hinweise: Genau dieses Skript hat früher in einem anderen Samba-PDC-Netzwerk funktioniert, aber ich habe es auf einen anderen Server verschoben (immer noch Samba PDC) und jetzt funktioniert es nicht mehr.
Gibt es eine Möglichkeit, die Eingabeaufforderung für Benutzername/Passwort zu ignorieren und einfach fortzufahren?
Antwort1
Ich konnte nie eine endgültige Lösung für das Problem finden. Aber eine brauchbare (aber sehr mühselige und unsaubere) Umgehungslösung ist die Verwendung dieses Befehls:
::Helpdesk
copy /Y NUL "\\BOB\helpdesk\.writable"
IF %ERRORLEVEL%==0 (
del \\BOB\helpdesk\.writable
GOTO:ALLOWEDHELPDESK
)
GOTO:SECT2
:ALLOWEDHELPDESK
net use k: /delete
net use k: \\BOB\helpdesk
:SECT2
::Onboarding
copy /Y NUL "\\BOB\onboarding\.writable"
IF %ERRORLEVEL%==0 (
del \\BOB\onboarding\.writable
GOTO:ALLOWEDONBOARDING
)
GOTO:SECT3
:ALLOWEDONBOARDING
net use m: /delete
net use m: \\BOB\onboarding
:SECT3
::Etc,etc,etc
Grundlegende Erklärung: Es prüft zunächst, ob ein Ordner beschreibbar ist, indem eine leere Datei .writable kopiert wird. Wenn dies gelingt, wird der Befehl ausgeführt. Wenn dies fehlschlägt, wird der Befehl übersprungen und der Vorgang fortgesetzt.
Dies ist lediglich ein Workaround....
Antwort2
Dieses Skript erweitert Mattisdadas Antwort und erleichtert das Ändern von Laufwerkszuordnungen durch einfaches Hinzufügen, Löschen oder Ändern der mapDrive
Funktionsaufrufe. Darüber hinaus prüft diese Funktion den Lesezugriff durch Aufruf DIR
(anstatt die temporäre Datei zu schreiben) und ordnet die Zuordnungen entsprechend zu:
@ECHO off
setlocal
set SHARE=BOB
CALL:mapDrive K: helpdesk
CALL:mapDrive M: onboarding
CALL:mapDrive Z: watercooler
endlocal
net use
ECHO Mapping Complete. Thank You.
PAUSE&GOTO:EOF
:mapDrive
DIR \\%SHARE%\%~2 > nul 2>&1
IF %ERRORLEVEL%==0 (
net use %~1 /DELETE > nul 2>&1
net use %~1 \\%SHARE%\%~2
)
GOTO:eof
Antwort3
Ich scheine das auf meiner Seite herausgefunden zu haben. Ich gebe einfach ein Passwort als Argument für net use nach dem zuzuordnenden Ordner ein, wie unten:
.. net use t: \BOB\helpdesk password /PERSISTENT:NO
bin mir nicht ganz sicher, warum es funktioniert, da es nicht das richtige Passwort für den Benutzer ist, aber es scheint es trotzdem zuzuordnen, wenn der Benutzer Zugriff hat, und gibt einfach „Zugriff verweigert“ aus, wenn kein Zugriff auf das Laufwerk besteht, und fährt fort :)
Antwort4
Die Lösung:
net use t: \BOB\helpdesk password /PERSISTENT:NO
scheint funktioniert zu haben, schlägt aber nach den letzten Updates fehl.
wenn EXIST \BOB\helpdesk net use t: \BOB\helpdesk /PERSISTENT:NO
ist eine Lösung, die bei mir immer funktioniert. Sie wird übersprungen, wenn der Benutzer nicht über ausreichende Zugriffsrechte verfügt (funktioniert bei Netzwerkfreigaben).