35

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

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

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

свойства ярлыка

подсказка, в System32

8 ответов8

44

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

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

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

32

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

24

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

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

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

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

8

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

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

Эквивалентом /k который не содержит подсказки, является /c (для "execute this c ommand").

3

На самом деле это не то, о чем вы просите, но когда я вас правильно пойму, это достигнет того, что вы пытаетесь обойти. попробуйте 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\""

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

1

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

1

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

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

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

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

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

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

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

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