在注册表键值中设置的命令中使用runas以管理员身份打开CMD

Vic*_*Dev 1 windows registry powershell cmd runas

正如我在问题中提到的,如果 Powershell 可以通过在打开 CMD 的新实例时仅提供动词 RunAs 来以管理员身份调用 CMD,那么为什么 CMD 无法使用runasverb 打开自己的新实例?

我知道这个命令在注册表中传递并设置为[HKEY_CLASSES_ROOT\Directory\shell\runas1\command]键下的值时有效:

powershell.exe -Command "Start-Process -Verb RunAs 'cmd.exe' -Args '/k pushd "%1"'"
Run Code Online (Sandbox Code Playgroud)

但是为什么当在相同的密钥下给出时这不起作用?

cmd.exe /s /c "runas /user:administrator cmd /s /k pushd ""%V"""
Run Code Online (Sandbox Code Playgroud)

我怎样才能只使用cmd并且runas仅以管理员身份打开CMD?

And*_*ers 5

RunAs.exe 与 runas 动词无关!

RunAs.exe 自 Windows 2000 以来就已存在,允许您以不同用户身份运行应用程序。它最终会调用某个版本的CreateProcess.

然而 runas 动词需要由 调用ShellExecute

在 Windows 2000 和 XP 中,runas 动词显示一个 GUI,其操作方式与 RunAs.exe 类似。

在 Vista 中,runas 动词改为 UAC elevate。RunAs.exe 不会提升。