7

Когда я запускаю командную строку с повышенными правами в Windows 7 или Windows Vista, начальный каталог - это каталог %SystemRoot%\system32 .

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

Для воспроизведения:

  • Нажмите Пуск
  • Тип cmd.exe
  • Нажмите Ctrl+Shift+Enter
  • Когда появится запрос на повышение прав, выберите « Yes

Ожидаемое:

  • Начальный каталог - это каталог моего профиля пользователя, например C:\Users\merlyn

Актуально:

  • Начальный каталог - это каталог system32, C:\Windows\system32

Я бы хотел, чтобы с этим было легко работать. Я хотел бы, чтобы он применялся ко всем приглашениям / ярлыкам cmd.exe, независимо от того, откуда они запущены. Например, я бы хотел, чтобы он автоматически применялся к моей Visual Studio Command Prompt (2010) без необходимости изменения этого конкретного ярлыка.

Я бы хотел, чтобы это было безопасно, чтобы мои исправления не ломали пакетные файлы.

Есть ли простой и безопасный способ заставить любую командную строку с повышенными привилегиями запускаться в %UserProfile% по умолчанию?

2 ответа2

12

Открытие командной строки с повышенными правами всегда начинается в %systemroot%\System32 , обоснование состоит в том, что если вы делаете что-то, требующее повышенных привилегий, вы, скорее всего, будете работать с системными файлами, а не с файлами самого пользователя, без которых вы можете обойтись. повышенные привилегии.

Вы можете обойти это:

  1. Откройте редактор реестра (например, regedit)
  2. Перейдите к HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. Отредактируйте значение Autorun для чтения cd /d %userprofile%

Теперь, когда вы открываете командную строку, она либо запускается, либо переключается, в зависимости от обстоятельств, на каталог профиля пользователя. Кроме того, вместо HKCU вы можете установить значение в ветви HKLM чтобы сделать это для всех пользователей в системе.

0

Предполагая, что ваш логин merlyn имеет административные права, он фактически не имеет этих прав, пока запрос UAC не будет обработан. Эти права сопровождаются запросом повышенных прав и их получением после правильного прохождения запроса. Под повышенным токеном он работает в другом контексте безопасности, чем стандартный уровень вашей учетной записи, предварительно авторизованный UAC. Все это означает, что ваш ожидаемый результат является ложным, а фактический результат фактически является ожидаемым.

Понимание и настройка контроля учетных записей пользователей

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