从 Windows 中的提升提示中以其他用户身份运行,无需密码

Raz*_*van 14 windows windows-7 runas impersonation

有几个实用程序可以以不同的用户身份运行(例如:runascpaupsexec),但所有这些实用程序都需要相应用户的密码,即使您已经以提升的权限运行。

我想实现以下目标:

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

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

root@server:~# su - john
Run Code Online (Sandbox Code Playgroud)

Tim*_*ham 6

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

runas /user:yourusernamehere /savecred "Your Executable Here"
Run Code Online (Sandbox Code Playgroud)

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

C:\Windows\System32\cmd.exe /c "C:\yourbatfilehere.bat"
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的提示,但不幸的是 /savecred 不适用于我的情况,因为 1) 用户凭据可能会更改和 2) 要执行的命令是动态生成的(因此我必须为每个命令键入密码)。此外,这应该在后台运行,没有任何用户交互。 (3认同)

小智 6

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

我知道允许您执行此操作的一个工具是 Process Hacker 2。以本地管理员身份运行该工具,然后查找以您希望模拟的用户身份运行的进程。右键单击它,选择 Misc > Run as this user...,然后键入要以该用户身份运行的二进制路径,例如 cmd。然后 CMD 将以该用户身份打开,而不会提示输入该用户的密码。