На данный момент у меня есть сценарий logon.cmd, который я использую для подключения сетевых дисков к профилю пользователя. Выглядит это так:
::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
Он отлично работает до тех пор, пока не дойдет до папки, к которой текущий пользователь не может получить доступ, затем он запрашивает имя пользователя и пароль вместо того, чтобы продолжать работу.
Примечания: Этот самый сценарий раньше работал в другой сети Samba PDC, но я переместил его на другой сервер (все еще Samba PDC), и теперь он ломается.
Есть ли способ игнорировать запрос имени пользователя / пароля и просто продолжить?
Расширяя ответ Маттисдады, этот скрипт упростит изменение любых сопоставлений дисков, просто добавив, удалив или изменив mapDrive
вызовы функций. Кроме того, эта функция проверяет доступ для чтения, вызывая DIR
(вместо записи временного файла) и соответственно карты:
@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
Я так и не смог найти окончательного решения проблемы. Но полезный (но очень хакерский и нечистый) обходной путь использует эту команду:
::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
Основное объяснение: сначала он проверяет, доступна ли папка для записи, копируя пустой файл .writable, в случае успеха выполняет команду, в случае неудачи пропускает команду и продолжает работу.
Это просто обходной путь ....
Кажется, я понял это со своей стороны, я просто ввожу пароль в качестве аргумента сетевого использования после сопоставления папки, как показано ниже:
.. net use t: \ BOB \ helpdesk password / НАСТОЯЩИЙ: НЕТ
не совсем уверен, почему это работает, так как это неправильный пароль для пользователя, но, похоже, он все равно отображает его, если у пользователя есть доступ, и просто бросает доступ, запрещенный, если нет доступа к диску и двигается дальше :)