有多个实用程序可以以不同的用户身份运行(例如:runas
、、 ) cpau
,psexec
但它们都需要相应用户的密码,即使您已经以提升的权限运行。
我想实现以下目标:
- 我已经有一个提升的提示 (
Administrator
) - 我想执行一个命令(例如
calc.exe
:),而john
无需向启动器实用程序输入/传递密码。
例如,在 Unix 系统中您可以:
root@server:~# su - john
答案1
在 Windows 中,只有当您尝试模拟的用户当前处于登录会话中时,您才能执行此操作。这是因为本地组策略“身份验证后模拟客户端”允许管理员组的成员执行此操作(在本地策略 > 用户权限分配下找到)。
我知道一个可以让你做到这一点的工具是 Process Hacker 2。以本地管理员身份运行该工具,然后找到以你想要模拟的用户身份运行的进程。右键单击它,选择杂项 > 以此用户身份运行...,然后输入你想以该用户身份运行的二进制路径,例如 cmd。然后 CMD 将以该用户身份打开,而不会提示输入该用户的密码。
答案2
我一直都在用这个。第一次使用时(以及密码更改时)确实需要输入凭证,但仅此而已。
runas /user:yourusernamehere /savecred "Your Executable Here"
如果将此命令保存为 bat 文件的一部分,则可以创建一个快捷方式,该快捷方式将使用如下目标以管理权限启动该命令。
C:\Windows\System32\cmd.exe /c "C:\yourbatfilehere.bat"
答案3
不,在 Windows 下不可能。在不同的用户帐户下运行应用程序时,您始终必须至少输入一次密码。即使以管理员身份运行也是如此。
防止奇怪的事情发生并实现干净的审计。如果用户帐户下发生某些事情,用户不能指责管理员未经他们的同意就这样做。
答案4
我是这样做的
psexec -u 管理员 -p 密码 -i(会话 ID)-h -d cmd /c 启动(命令)
会话 ID:使用以下命令“qwinsta console”检索命令:是您需要运行的任何命令。(了解如果需要用户交互,则该用户将需要单击或完成任何所需的任务)
Psexec 可以在https://live.sysinternals.com