默认情况下在 %UserProfile% 目录中启动提升的命令提示符?

Mer*_*ham 7 windows elevation uac administrator command-line

当我在 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%默认情况下,是否有一种简单而安全的方法可以让任何提升的命令提示符在目录中启动?

Syn*_*ech 12

打开提升的命令提示符总是从 开始%systemroot%\System32,理由是如果您正在做一些需要提升权限的事情,您可能正在处理系统文件,而不仅仅是用户自己的文件,您可以在没有提升权限的情况下进行操作。

你可以解决它:

  1. 打开注册表编辑器(例如,regedit
  2. 导航 HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. 编辑Autorun要读取的值cd /d %userprofile%

现在,无论何时打开命令提示符,它都会从用户配置文件目录开始或切换到(视情况而定)。此外,HKCU您可以在HKLM分支中设置值来为系统上的所有用户执行此操作,而不是。