以其他用户身份运行并提升


24

在Windows资源管理器中,我可以右键单击一个可执行文件,然后选择“以管理员身份运行”,这将以提升的特权启动所选进程;或者,我可以右击该可执行文件,然后单击“以其他用户身份运行”,指定用户名和密码,将使用指定的用户上下文以标准特权启动该过程。

如何以其他用户身份运行并在提升的环境中运行?一个完美的例子是使用与当前登录用户不同的用户上下文来打开提升权限的命令提示符。


我认为使用powershell start-process命令可能能够做到这一点。
jiggunjer '16

Answers:


22

我认为不存在这样的选择。

解决方法是,您可以以admin身份启动命令行,然后执行以下命令以另一用户身份以admin特权运行命令行。

Runas / netonly / user:YourUser cmd.exe


7
或者,您可以右键单击可执行文件,然后选择“属性”>“兼容性”,然后选择“权限级别”,然后选中“以管理员身份运行此程序”。然后右键单击可执行文件并以其他用户身份运行。
JamesTheDev

@NewProgrammerJames Nice,感谢您的输入:)
Yass

@NewProgrammerJames此技巧不适用于W2008R2及更高版本的CMD,但应该可以调整自定义应用程序。
Vesper

即使最终用户不在管理员组中,这也可以工作吗?
jiggunjer '16

@jiggunjer不,据我所知。
亚斯

11

是的,psexec绝对会这样做

以下示例可在Windows 8.1上正常运行;以管理员身份运行命令提示符,然后:

// -i makes the app interactive
// -h elevates the execution context 
// Omitting the password forces a secure prompt
psexec -u DOMAIN\user -i -h "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe"

来自Mike:这适用于Windows 10!
fixer1234

7

您可以通过PowerShell执行此操作:

Start-Process powershell -Credential domain\differentUserName -ArgumentList '-noprofile -command &{Start-Process "TheApp.exe" -verb runas}'

1

我注意到这是一个非常老的问题,但是给出的答案并不理想,而且已经被忽略了。现有的所有答案都需要键入原始命令并知道可执行文件的确切路径。理想的选择是使用与特权升级相同的过程来实现这一点。

如果您使用的不是Windows的Windows Home Edition(Vista至10),则可以使用Security Policy Manager使其在出现提升时提示您输入密码。它也给你选择一个完全不同的用户,并进入该选项密码...这将导致升高的过程中为它们运行。

只需打开开始菜单,然后键入secpol.msc并按Enter即可启动它(如果有)。您正在寻找Local Policies> Security Options> User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode> Prompt for credentials。Vista有一个类似的选项,其中没有提到“管理员批准模式”,但它具有相同的作用。

我认为这是比此处提供的其他选项更为自然的选择,并且使人联想到* nix上的gksudo。但是,如果您的Windows版本不包含secpol.msc,则必须做一些注册表黑客操作才能启用它。


我这样做了,它不起作用。尽管我没有配置指纹认证,但它总是询问我的指纹。
伊罗(Iroel)'18年

@iroel听起来很像Windows的身份验证子系统存在配置问题。您应该考虑在SU上查找该问题的解决方案,如果找不到任何内容,请考虑将其发布为问题。我所有的系统都是以这种方式设置的,没有一个要求使用指纹。根据他们要输入密码或密码的身份验证,具体取决于帐户。
克里夫·阿姆斯特朗

我使用指纹进行身份验证。它确实发生了。2种适用的解决方案:使用户具有管理特权(但在这种情况下没有意义),创建另一个用户并设置指纹(使用未为某些用户注册的手指),并在要求提升权限时使用该手指特权。在这种情况下,我使用最后一种解决方案。至少对我有用。
iroel

如果系统提示您输入指纹,则说明您已设置要尝试登录的用户以要求输入指纹,或者Windows安装出现问题。句号 我在三台不同的计算机上使用此设置,但它们都不要求输入指纹。我已经在数十台计算机上为客户端设置了此功能。当登录配置了Pin#的用户并输入所有其他用户的密码时,Windows将提示您输入Pin#。它使用您为该用户配置的任何身份验证方法。
Cliff Armstrong

0

我发现,如果我以运行方式帐户登录,则可以在属性/兼容性页面上设置“以管理员身份运行此程序”标志。然后登录辅助帐户并执行Shift点击运行,将以管理员身份打开它。


这听起来像是一个不错的选择,但是cmd.exe的“属性”中没有兼容性页面。
桑德拉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.