
En este momento tengo un script logon.cmd, que estoy usando para asignar unidades de red al perfil de los usuarios. Se parece a esto:
::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
Funciona bien hasta que llega a una carpeta a la que el usuario actual no puede acceder, luego solicita un nombre de usuario y contraseña en lugar de generar un error y continuar.
Notas: Este mismo script solía funcionar en otra red Samba PDC, pero lo moví a otro servidor (Still Samba PDC) y ahora no funciona.
¿Existe alguna forma de ignorar la solicitud de nombre de usuario/contraseña y simplemente continuar?
Respuesta1
Nunca pude encontrar una solución definitiva al problema. Pero una solución utilizable (pero muy complicada y sucia) es usar este comando:
::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
Explicación básica: primero verifica si se puede escribir en una carpeta copiando un archivo en blanco .escribible, si tiene éxito ejecuta el comando, si falla, omite el comando y continúa.
Esto es puramente una solución...
Respuesta2
Ampliando la respuesta de Mattisdada, este script hará que sea un poco más fácil modificar cualquier asignación de unidad simplemente agregando, eliminando o cambiando las mapDrive
llamadas a funciones. Además, esta función verifica el acceso de lectura llamando DIR
(en lugar de escribir el archivo temporal) y asigna en consecuencia:
@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
Respuesta3
Parece que he descubierto esto por mi parte, simplemente ingreso una contraseña como argumento de uso de red, después de la carpeta que se va a asignar, como se muestra a continuación:
.. uso neto t: \BOB\contraseña del servicio de asistencia /PERSISTENTE:NO
No estoy exactamente seguro de por qué funciona, ya que no es la contraseña correcta para el usuario, pero parece asignarla de todos modos si el usuario tiene acceso y simplemente arroja un acceso denegado si no hay acceso a la unidad y continúa :)
Respuesta4
La solución:
uso neto t: \BOB\contraseña del servicio de asistencia técnica /PERSISTENTE:NO
Parece haber funcionado pero falla después de actualizaciones recientes.
si EXISTE \BOB\helpdesk net use t: \BOB\helpdesk /PERSISTENT:NO
es una solución que sigue funcionando para mí. Se omite si el usuario no tiene suficientes derechos de acceso (funciona para recursos compartidos de red).