通过使用-Verb RunAs启动进程运行cmd.exe,然后以管理员身份自动运行命令



从非提升的PowerShell开始,我希望能够以管理员身份启动命令提示符,然后以管理员身份运行特定工具,最终用于右键菜单选项。

到目前为止,我已经尝试过了:

Start-Process cmd -ArgumentList '/k tool.exe' -Verb RunAs

虽然这确实以管理员身份启动了命令提示符,但它首先在非提升的命令提示符中运行tool.exe,然后切换到管理员命令提示符。如何让它以管理员身份运行tool.exe?

编辑:正如@mktlement0所指出的,命令提示符实际上是以管理员身份运行的,只是没有立即反映在窗口标题中(可能是错误?(。因此,上面的示例确实如预期的那样工作。

我认为你的问题的前提是不正确的,你可能在问题中得出了结论,因为新打开的窗口的窗口标题只在窗口打开后不久更新以反映管理员状态。

但是,与窗口相关联的进程从一开始就被提升,如下命令所示:

# Opens an elevated cmd session in a new window and executes
# `net session`, which only succeeds with elevation.
Start-Process cmd -ArgumentList '/k net session' -Verb RunAs

net session命令成功,这意味着进程是在提升的情况下运行的(无论窗口标题反映这一事实需要多长时间(。

最新更新