Как открыть командную строку в определенной папке с правами администратора?

Я сделал ярлык для cmd.exe и указал папку, в которой я хочу начать. Затем я пошел в Advanced и поставил галочку в поле Запуск от имени администратора.

Когда я дважды нажимаю на ярлык, он всегда начинается в C:\Windows\System32,

Чего мне не хватает? Как получить командную строку для запуска в указанной папке?

8 ответов

Решение

В цели вы должны указать cmd /k cd c:\crp

Если вы хотите обоснование этого, то Start in явно игнорируется при выполнении повышения прав (только для двоичных файлов, являющихся частью самой Windows) для защиты от потенциальной уязвимости безопасности.

Основная идея заключается в том, что потенциально вредоносные библиотеки DLL, расположенные в рабочем каталоге, могут контролироваться пользователем, отличным от текущего администратора, и затем могут загружаться с высокими привилегиями. Чтобы предотвратить это, UAC сбросит рабочий каталог. Поскольку ярлыки "Запуск в" установлены до повышения, это сбрасывается во время повышения. В идеальном случае эта защита будет применяться ко всем повышениям прав, но она применяется только к встроенным двоичным файлам Windows, поскольку она нарушает работу некоторых сторонних программ, которые ожидают сохранения рабочего каталога.

Другие ответы обходят это, говоря повышенным cmd изменить свой рабочий каталог после повышения, через /k аргумент.

В Проводнике существует панель быстрого доступа (QAT) с момента появления ленты в Windows 8. Нажмите на File -> open CMD prompt -> Open CMD prompt as admin и щелкните правой кнопкой мыши и выберите, чтобы прикрепить его к QAT.

Теперь вы можете нажать на этот значок в каждой папке, которая вам нравится, и теперь в этой папке откроется cmd.

Чтобы быстрее запустить cmd от имени администратора из QAT, нажмите клавишу ALT, и вы увидите номер позиции в QAT.

Если вы сейчас нажмете номер, инструмент в этой позиции будет запущен (в моем случае 4 запускает cmd от имени администратора).

Барлоп правильный. Если вы добавите /k cd "\path\to\folder" в поле "Цель" (после cmd.exe), результирующее окно командной строки выполнит cd команда, а затем оставить вас с предложением сделать, как вам угодно. Если вам нужно перейти на другой диск, вам понадобится cd /d а не просто cd, Если вам нужно перейти на сетевой диск, используйте pushd вместо этого - он автоматически монтирует целевой UNC-путь как диск и изменяет его.

/k переключиться на cmd означает "выполните эту команду и откройте подсказку". Все после /k рассматривается как буквальная команда, поэтому вам не нужно беспокоиться о побеге. Ты можешь использовать && выполнить несколько команд: cd "\path\to\folder" && echo Hi! выдаст подсказку в этом каталоге с Hi! напечатано сверху.

Эквивалент /k это не держит подсказку /c (для "выполнить эту команду").

Это на самом деле не то, о чем вы просите, но когда я вас правильно пойму, это достигнет того, что вы пытаетесь обойти. пробовать shift + rightclick в определенной папке и выберите open command window here, Если это не ваша проблема, просто дайте мне знать, и я уберу это.

И (благодаря Бобу; я не знал об этом раньше), даже возможно сделать это повышенным.

Источник из комментария Боба.

[...] Пока мы здесь, мы также можем добавить необходимые ключи, чтобы открывать приглашение с повышенными привилегиями для каждой буквы диска, прикрепленной к системе. Это можно легко сделать, добавив запись в реестр. Поэтому скопируйте / вставьте приведенный ниже текст в текстовый файл и дайте ему имя, например "admin.reg", и дважды щелкните по нему.

Windows Registry Editor Version 5.00    
[-HKEY_CLASSES_ROOT\Directory\shell\runas]       
[HKEY_CLASSES_ROOT\Directory\shell\runas]  @="Open command window here as Administrator"  "HasLUAShield"=""    
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]  @="cmd.exe /s /k pushd \"%V\""    
[-HKEY_CLASSES_ROOT\Directory\Background\shell\runas]    
[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]  @="Open command window here as Administrator"  "HasLUAShield"="" 
[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]  @="cmd.exe /s /k pushd \"%V\""    
[-HKEY_CLASSES_ROOT\Drive\shell\runas]    
[HKEY_CLASSES_ROOT\Drive\shell\runas]  @="Open command window here as Administrator"  "HasLUAShield"=""    
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]  @="cmd.exe /s /k pushd \"%V\""

Теперь, если вы щелкните правой кнопкой мыши на любой папке, вы увидите оба варианта.

Для любого, как я, кто сталкивался с этим при попытке открыть cmd в качестве администратора на отдельном диске ("E:" в моем случае), у вас могут возникнуть проблемы при попытке cd E:/somedir или т.п. Это не изменит каталог на новый диск.

Если это ваша проблема, и вам просто нужно использовать cmd в качестве администратора на другом диске, синтаксис cmd на самом деле просто E: (или любую букву диска), без cd команда.

Так что вы можете просто:

  1. Поиск в Windows> "cmd" > Правый клик> Запуск от имени администратора
  2. Просто наберите E: (или любую букву диска, на которую вы хотите переключиться, за которой следует двоеточие)

Если вам нужно запустить с другого диска (например, D:\ что-то), чем ваш системный диск (например, C:\Windows\system32), вы можете поместить в поле "Target" следующее:

cmd /k "cd /d D:\<your directory here>"

Ключевым моментом здесь является добавление /d вариант перед вашим cd,

Когда вы открываете командную строку как администратор, и она показывает вам "C: \ Windows \ System32", все, что вам нужно сделать, это ввести "cd ..", и она перейдет в один каталог, который будет "C: \ Windows" , Повторите "cd .." снова, чтобы перейти к "C: \", откуда вы можете теперь "cd Users / name / folder"

Следуйте приведенным ниже сочетаниям клавиш

  • Перейдите в конкретную папку, открыв Проводник -> Нажмите Windows+E
  • Чтобы открыть командное окно Windows Powershell в режиме администратора (с текущим путем) -> нажмите Alt+F+S+A
Другие вопросы по тегам