我无法理解“runas”发生了什么。
情况:
- 客户端是 W10 Pro,已加入并登录到 Active Directory 域 FOODOM。
- USER 是 FOODOM 的成员和默认域用户,没有任何提升。
- MYADMIN 是 FOODOM 的成员,也是 Organization-Admin、Domain-Admin 等的成员。典型的 Domain-Admin 用户。
- UAC 已启用。
- FOODOM\USER 已登录 CLIENT。
问题:
不允许 FOODOM\MYADMIN 以管理员权限运行:在 FOODOM\USER 会话内部:
runas /user:FOODOM\MYADMIN cmd
失败并显示“请求的操作需要提升”
但是,内置管理员帐户可以工作:
runas /user:FOODOM\Administrator cmd
-> 好的
FOODOM\MYADMIN 可以成功登录 CLIENT。登录后,MYADMIN 可以以域管理员权限在本地和远程运行。
想法:我是不是漏掉了什么标志?除了内置管理员之外,我们通常使用的管理员用户都无法成功调用 runas……?我怀疑它之所以有效,是因为本地工作站将 FOODOM\Administrator 与 .\Administrator 混淆了?
编辑:
由于评论似乎忽略了真正的问题,这里澄清一下:我知道 UAC 存在提升问题,我指的是域管理员,而不是本地管理员。为什么 domain\Administrator 实际上可以规避 runas 提升,而 domain\someAdmin 却不能?LDAP 标志?委托?if(username==*\administrator) { do.secretElevationHack(); }?
答案1
虽然您可以通过右键单击并选择“以管理员身份运行”来运行提升权限的命令,但这对 不起作用runas
。
原因是它runas
是在提升发明之前创建的,因此它没有运行提升命令的开关。
另一种方法是通过调用 VBScript 来调用 UAC 对话框 ShellExecute 函数。
例如,要.vbs
以提升的权限运行批处理脚本(),请使用以下标志runas
:
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe","/k echo test", "", "runas", 1