Короче говоря, мне нужно сопоставить серию папок WebDav, которые по какой-либо причине в разное время требуют повторных попыток аутентификации, чтобы сделать это успешно.
Я создал следующий сценарий, чтобы упростить задачу, а именно, чтобы мне не нужно было копировать и вставлять команду net use для первого общего ресурса 15 раз, а затем надеяться, что к 15-му разу она сможет успешно подключиться.
То, что я пытаюсь сделать, это попробовать "обычную" карту в первый раз. Если это не сработает (что мы узнаем, потому что оно проверит, существует ли папка в этом месте, что должно произойти, если диск был успешно сопоставлен), тогда она снова запросит учетные данные, на всякий случай, если я неправильно наберу пароль хотя это редко). В идеале я хотел бы иметь возможность отключить пароль при его вводе, поскольку сейчас он отображается в виде обычного текста.
Затем, используя пароль, который я сохранил в переменной "pword", я получаю цикл, который пытается сопоставить местоположение снова и снова, используя пароль, хранящийся в переменной, до тех пор, пока он не сможет успешно подключиться.
Я понимаю, что мог бы просто ввести пароль в сценарий. Это общедоступное место, поэтому я даже не хотел, чтобы имя пользователя в скрипте начиналось с самого начала. Я не могу поставить пароль в сценарии. Прямо сейчас он запрашивает пароль для учетной записи, поскольку он не указан. Пароль идет после имени пользователя и перед ключом /P:no, что гарантирует, что диск не будет сохраняться после сеанса.
В настоящее время это не работает (не удивительно). Я не могу понять, почему, хотя. Мой сценарий зацикливается, но я продолжаю получать System error 1244 has occurred. The operation being requested was not performed because the user has not been authenticated.
Так или иначе, пароль, который я вручную ввожу в переменную в интерактивном режиме, не передается в коммутатор net use, как это должно быть. Я получаю сообщение об ошибке 1244 независимо от того, ввожу ли я правильный пароль в командной строке или нет, поэтому он как-то не пытается соединиться с учетными данными, введенными вручную через переменную.
Как я могу это исправить, чтобы пользовательский ввод был *** (помечен звездочкой) (поскольку он запрашивает пароль, хотя cmd.exe этого не знает), и, что более важно, я могу форсировать соединение, введя свой пароль ОДИН РАЗ ( ну, дважды), а затем мой пакетный файл автоматически заменяет его паролем вместо запроса КАЖДЫЙ раз. Это раздражает, делая это 15 раз каждый раз, когда я вхожу в систему. Здесь что-то не так, или лучший способ сделать это?
net use k: "https://d.docs.live.net/###/Documents/somefolder" /USER:someuser@outlook.com /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:signin.interlinked@outlook.com %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)