在Windows中以提升权限的提示在没有密码的情况下以其他用户身份运行


13

这里有许多工具可以为不同的用户身份运行(如:runascpaupsexec),但所有的人都需要相应的用户密码,即使你已经与提升的权限运行。

我想要实现以下目标:

  1. 我已经有了提升的提示(Administrator
  2. 我想执行命令(例如:)calc.exejohn而无需输入密码或将密码传递给启动器实用程序。

例如,在Unix系统中,您可以:

root@server:~# su - john

Answers:


3

我经常用这个。确实需要在第一次使用凭证时(以及更改密码时)输入凭证,仅此而已。

runas /user:yourusernamehere /savecred "Your Executable Here"

如果将此命令另存为bat文件的一部分,则可以创建一个快捷方式,该快捷方式将使用如下所示的目标以具有管理权限的方式启动该快捷方式。

C:\Windows\System32\cmd.exe /c "C:\yourbatfilehere.bat"

3
感谢您的提示,但不幸的是,/ savecred在我的情况下不适用,因为1)用户凭证可能会更改并且2)要动态生成要执行的命令(因此我必须为每个命令键入密码)。而且,这应该在后台运行,而无需任何用户交互。
拉兹万,2016年

@Razvan,您可以将命令包装在脚本文件中,只要您的命令名称相同即可轻松更改。至于凭证的更改...您需要通过缓存凭证来传递新凭证。没有第三种选择。
Tim Brigham

3

不,在Windows下是不可能的。使用其他用户帐户运行应用程序时,始终必须至少输入一次密码。即使是管理员。

防止发生有趣的事情,并启用干净的审核。如果用户帐户下发生了某些事情,则用户未经他们的同意不能责怪管理员这样做。


但这是技术限制吗?我可以想到,也许使用用户凭据对建立新会话所需的一些相关用户文件进行了加密,这就是为什么不提供相应凭据就不可能获得新会话的原因(这只是猜测)。
拉兹万

我不明白你的评论。从某种意义上说,这是一种技术限制,因为Microsoft决定以无法知道用户密码的方式模拟用户帐户的方式来计划Windows。为什么和如何都无所谓。您唯一的选择是输入密码或接受没有密码就无法假冒任何帐户。
丹尼尔(Daniel)

1
@Daniel您能否提供一些参考链接,以证明您的主张是蓄意的战略决策?
ivan_pozdeev

没有ACL允许这样做吗?
RandomInsano

3

在Windows中,仅当您要模拟的用户当前登录会话时,才可以执行此操作。这是由于本地组策略“身份验证后模拟客户端”允许Administrators组的成员完全执行此操作(在“本地策略”>“用户权限分配”下找到)。

我知道一个可以让您执行此操作的工具是Process Hacker2。以本地管理员身份运行该工具,并找到一个要模拟的用户身份运行的进程。右键单击它,选择“杂项”>“以该用户身份运行...”,然后键入要以该用户身份运行的二进制路径,例如cmd。然后,CMD将以该用户身份打开,而无需提示该用户的密码。


-3

如果将.exe放入其启动文件夹中,则可以按它们的身份运行它。


2
详细说明:您没有像他们那样运行它……而是让他们为您运行它。
KevinKTI

2
由于用户在登录时会输入密码,因此这似乎无法回答问题。
小鸡
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.