0

我有一个用 C# 编写的工具,它可以模拟用户在远程机器上执行管理任务。

我发现在模拟远程计算机的内置管理员帐户或模拟管理员组中的域用户时,将 LOGON32_LOGON_NEW_CREDENTIALS 与 LOGON32_PROVIDER_DEFAULT 一起使用会破坏 UAC。但是,当模拟非内置本地用户(远程计算机的本地用户)时,将返回非提升令牌。在两台机器上创建具有相同凭据的用户并不能缓解问题。

此表显示成功获取提升的令牌以在远程计算机上使用:

显示工作场景的图表 http://img521.imageshack.us/img521/3605/fo69.png

所有用户都在管理员组中。

这个问题是否有一个已知的解决方案,不涉及关闭 UAC 或在目标计算机上做任何激烈的事情?远程计算机由客户控制,不能进行任何修改。假设 UAC 正在并且应该在两端运行。

作为一个兴趣点,但不影响上述问题,使用远程 WMI 时会发现完全相同的行为。

4

1 回答 1

0

这可能是因为远程服务器启用了 UAC。这意味着当您连接到远程计算机时,即使您是管理员,在远程计算机上操作时您也会被剥夺这些权力。

有一个组策略选项可以控制这一点

LocalAccountTokenFilterPolicy

编辑:修复了正确的知识库文章“Windows Vista 中的用户帐户控制和远程限制说明”的链接:

至于为什么它只适用于本地管理员,而不适用于域管理员?因为这就是该选项的作用 - 它只限制“本地管理员组的成员”

拥有域用户帐户的用户远程登录到 Windows Vista 计算机...,域用户将使用远程计算机上的完整管理员访问令牌运行,并且 UAC 将不会生效。

对比

当作为目标远程计算机上本地管理员组成员的用户建立远程管理连接时...,他们将不会以完全管理员身份连接。

该策略将域管理员帐户与本地管理员帐户区别对待。这就是为什么它不同。

尝试禁用组策略,看看它是否修复它。它似乎准确地描述了你的情况。尝试禁用远程计算机上的组策略选项

要禁用 UAC 远程限制,请执行以下步骤:

  1. 单击开始,单击运行,键入regedit,然后按 Enter。
  2. 找到并单击以下注册表子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  3. 如果 LocalAccountTokenFilterPolicy 注册表项不存在,请按照下列步骤操作:

    一个。在编辑菜单上,指向新建,然后单击DWORD 值
    湾。键入LocalAccountTokenFilterPolicy,然后按 Enter。

  4. 右键单击LocalAccountTokenFilterPolicy,然后单击修改

  5. 数值数据框中,键入1,然后单击确定
  6. 退出注册表编辑器。
于 2014-01-01T18:59:46.037 回答