Пакетный файл с повышенными правами не может получить доступ к подключенным сетевым дискам
Я знаю... этот вопрос задавался уже много раз, но не таким образом, чтобы адекватно решить мою проблему.
Короче говоря, у меня были проблемы с запуском пакетного файла от имени администратора, что, в свою очередь, привело к изменению разделов реестра, для которых требовались права администратора. Я делаю все остальные изменения в отдельных пакетных файлах для ключей, для которых не требуются права администратора. Когда я работал в качестве администратора, на долю секунды открылось командное окно, а затем исчез.
Как описано в многочисленных ответах, таких как этот, я включил параметр EnableLinkedConnections; фактически, я создал для него другой пакетный скрипт:
@echo off
reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesSystem" /v "EnableLinkedConnections" /t REG_DWORD /d 0x00000001 /f
net stop LanmanWorkstation
net start LanmanWorkstation
Конечно, тогда я тоже не смог выполнить этот сценарий . Мне пришлось скопировать его на компьютер, а затем запустить от имени администратора. Это сработало, так как это был в основном один лайнер, который не выполнял никаких вызовов внешних сценариев на других подключенных дисках. Раздражает, но я мог бы жить с этим это, если это сработало, чего не произошло!
В командной строке с повышенными правами при вводе net use
не отображается никаких подключений, даже после того, как я перезагрузил компьютер ( чего мне не следовало делать, так как мой скрипт перезапустил соответствующую службу). Но я сделал это, и это все равно не сработало. Я вручную открыл редактор реестра и подтвердил, что изменение было внесено.
Снова вернитесь к поиску, и я искал "Подключенные диски Windows 10 не отображаются даже с Включенные подключенные соединения".
Ответ, связанный выше, гласит:
Корпорация Майкрософт признала случай, когда EnableLinkedConnections не будут работать. Это произойдет, если для контроля учетных записей потребуется пароль перед запуском программы с повышенными правами (т. Е. Запуск от имени администратора).
Но я знаю, что это не относится ко мне, так как эта учетная запись уже является учетной записью администратора. Чтобы запустить что-то от имени администратора, как того требуют настройки режима утверждения администратором по умолчанию, мне нужно всего лишь нажать Да/нет; Мне не нужно вводить пароль.
В этом случае "ошибка" с включенными подключениями даже не должна применяться к моей системе. Тем не менее, это не работает.
У меня есть много вещей, которые мне нужно выполнить, которые ссылаются на полностью указанные пути (начиная с буквы диска, например Z:Scriptsetc...
). Копирование сценариев из сетевого расположения на компьютер для их выполнения вообще нецелесообразно.
Учитывая, что у меня есть EnableLinkedConnections установить в 1 и Меня не запрашивает пароль UAC, теоретически у меня не должно быть проблем, но все равно мои сетевые местоположения на карте не отображаются из экземпляра моей учетной записи с повышенными правами.
Почему это так и как я могу это исправить?
Если это вам поможет, я только что обнаружил, что если я вручную выполняю некоторые пакетные команды для сопоставления дисков, пароль не требуется, как при первоначальном сопоставлении. Привод будет просто карта. Затем я могу закрыть командную строку с повышенными правами и открыть другую, и сопоставление все еще существует. Однако мне все равно пришлось вручную открывать cmd.exe как администратор для выполнения этого; и по-прежнему нет элегантного способа убедиться, что он сопоставлен для обоих токенов при запуске сценария входа в систему, если только я не вызвал часть сопоставления дважды.
Кроме того, это делает нет кажется, это полезно, как будто при запуске net use
в этом случае я вижу диски, но сталкивайтесь с сообщением ERROR: Error opening the file. There may be a disk or file system error.
каждый раз, когда выполняется вызов другого пакетного сценария на подключенном диске. Это не происходит в обычных сценариях, не являющихся администраторами, которые вызывают другие файлы, а также в командах, которые напрямую изменяют системные файлы без использования дочернего вспомогательного файла.