Como “ignorar” o prompt de nome de usuário e senha no uso da rede

Como “ignorar” o prompt de nome de usuário e senha no uso da rede

No momento, tenho um script logon.cmd que estou usando para mapear unidades de rede para o perfil dos usuários. Se parece com isso:

::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 

Ele funciona bem até chegar a uma pasta que o usuário atual não pode acessar e, em seguida, solicita um nome de usuário e uma senha em vez de errar e continuar.

Notas: Este mesmo script costumava funcionar em outra rede Samba PDC, mas eu o mudei para outro servidor (Still Samba PDC) e agora está quebrado.

Existe alguma maneira de ignorar o prompt de nome de usuário/senha e simplesmente continuar?

Responder1

Nunca consegui encontrar uma solução finita para o problema. Mas uma solução utilizável (mas muito hackeada e impura) é 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

Explicação básica: Ele verifica primeiro se uma pasta é gravável, copiando um arquivo em branco .writable, se tiver sucesso, executa o comando, se falhar, pula o comando e continua.

Isso é puramente uma solução alternativa ....

Responder2

Estendendo a resposta de Mattisdada, este script tornará um pouco mais fácil modificar qualquer mapeamento de unidade simplesmente adicionando, excluindo ou alterando as mapDrivechamadas de função. Além disso, esta função verifica o acesso de leitura chamando DIR(em vez de gravar o arquivo temporário) e mapeia adequadamente:

@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

Responder3

Parece que já descobri isso, apenas insiro uma senha como argumento de uso da rede, após a pasta a ser mapeada, conforme abaixo:

.. net use t: \BOB\senha do helpdesk /PERSISTENTE:NÃO

não sei exatamente por que funciona, já que não é a senha correta para o usuário, mas parece mapeá-la de qualquer maneira se o usuário tiver acesso e apenas lançar um acesso negado se não houver acesso à unidade e seguir em frente :)

Responder4

A solução:

net use t: \BOB\senha do helpdesk /PERSISTENTE:NÃO

parece ter funcionado, mas falha após atualizações recentes.

se EXISTE \BOB\helpdesk net use t: \BOB\helpdesk /PERSISTENT:NO

é uma solução que continua funcionando para mim. Ele é ignorado se o usuário não tiver direitos de acesso suficientes (funciona para compartilhamentos de rede).

informação relacionada