2

Я пытаюсь создать командный файл, которому необходимо передать путь и в котором есть операции, требующие повышения прав ( в нем я использую mklink ).

Вот как воссоздать проблему.

  1. Создайте .bat файл, который просто содержит pause
  2. Сделайте ярлык для этого командного файла.
  3. Создайте 2 папки C:\ThisWillWork и C:\This Will Fail
  4. Попробуйте перетащить каждую папку на ярлык. Оба должны работать.
  5. Измените настройки ярлыка и отметьте в опциях расширенных опций, что для этого требуются права администратора.
  6. Попробуйте перетащить каждую папку еще раз, C:\ThisWillWork будет вести себя одинаково, но C:\This Will Fail будет мигать командную строку и немедленно закрывать себя.

Это делается в Windows 7 64-bit.

Что я могу сделать, чтобы достичь своей цели? Есть ли способ разрешить мне использовать mklink без повышения прав ? Нужно ли переключаться с использования пакетных файлов Windows на что-то другое (возможно, powershell)? Что еще я могу использовать, чтобы иметь возможность написать сценарий для удаления папки, а затем воссоздать ее как символическую ссылку на папку, в которую я ее поместил?

1 ответ1

3

Попробуйте создать ярлык как

%Windir%\System32\cmd.exe /C C:\BIN\batchfile.bat 

Если это не решает проблему самостоятельно, попробуйте следующее.

Чтобы устранить эту проблему, измените значение Начать в в диалоговом окне Свойства командной строки или в диалоговом окне Свойства блокнота.

Для этого выполните следующие действия:
Нажмите «Пуск», выберите «Все программы», а затем - «Стандартные».
Щелкните правой кнопкой мыши Командная строка или Блокнот, а затем нажмите Свойства.
В поле «Начать с» измените значение с% HOMEDRIVE %% HOMEPATH% на общесистемное значение, например% WINDIR%.
Нажмите ОК.

См. Http://support.microsoft.com/kb/832434 для получения полной информации.

Если вы хотите узнать больше о том, что происходит в вашем исходном методе, вы можете открыть командную строку от имени администратора и набрать

%windir%\System32\cmd.exe /C "C:\bin\batchfile.bat" "C:\THIS WILL FAIL" 

Это выдаст ошибку без загрузки пакетного файла, так как он не сможет выполнить какой-либо синтаксический анализ командной строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .