Para encurtar a história, preciso mapear uma série de pastas do WebDav que, por qualquer motivo, em momentos diferentes, exigem tentativas repetidas de autenticação para fazer isso com êxito.
Eu criei o seguinte script para facilitar as coisas, para que eu não precise copiar e colar o comando net use para o primeiro compartilhamento 15 vezes e depois esperar que, pela 15ª vez, ele possa se conectar com êxito .
O que estou tentando fazer é tentar um mapa "regular" na primeira vez. Se isso não funcionar (o que saberemos porque verificará se uma pasta nesse local "existe", o que deve acontecer se a unidade for mapeada com êxito), ela solicitará novamente as credenciais, caso eu tenha digitado incorretamente a senha ( embora isso seja raro). Idealmente, gostaria de poder ignorar a senha quando ela for digitada, pois agora ela aparece como texto simples.
Então, usando a senha, que eu armazenei na variável "pword", eu tenho um loop que tenta mapear o local várias vezes usando a senha armazenada na variável até que ela possa se conectar com sucesso.
Eu percebo que eu poderia simplesmente colocar a senha no script . Isso está em um local público, então eu realmente nem queria o nome de usuário no script para começar. Não consigo colocar a senha no script. No momento, ele solicita a senha da conta, pois uma não é fornecida. A senha vai após o nome de usuário e antes da opção / P: no, o que garante que a unidade não persista após a sessão.
Atualmente, isso não está funcionando (não é surpresa). Eu não consigo descobrir o porquê. Meu script está em loop, mas eu continuo recebendo System error 1244 has occurred. The operation being requested was not performed because the user has not been authenticated.
Então, de alguma forma, a senha que eu manualmente envio para a variável interativamente não está sendo passada para o net use switch como deveria. Eu recebo o erro 1244 se eu digitar a senha correta no prompt ou não, então, de alguma forma, ele não está tentando se conectar com as credenciais fornecidas manualmente através da variável.
Como posso consertar isso para que a entrada do usuário seja *** (marcada com estrela) (já que está solicitando uma senha, embora o cmd.exe não saiba disso) e, mais importante, posso forçar a conexão inserindo minha senha UMA VEZ (bem, duas vezes) e, em seguida, ter o meu arquivo de lote automaticamente sub que em para a senha em vez de solicitar todos os tempos. Isso fica irritante, fazendo isso 15 vezes toda vez que eu fizer logon. Há algo de errado aqui ou uma maneira melhor de fazer isso?
net use k: "https://d.docs.live.net/###/Documents/somefolder" /USER:[email protected] /P:No
if exist "K:\x" GOTO ContinueMapping
echo Windows will try to connect using the following password:
set /p pword=WebDav password:
:BruteConnect
net use k: "https://d.docs.live.net/$$$/Documents/somefolder" /USER:[email protected] %pword% /P:No
if exist "K:\x" GOTO ContinueMapping
GOTO BruteConnect
:ContinueMapping
(More drives get mapped here, and they all map successfully once the first drive gets mapped)