我有一个用 C# 编写的工具,它可以模拟用户在远程机器上执行管理任务。
我发现在模拟远程计算机的内置管理员帐户或模拟管理员组中的域用户时,将 LOGON32_LOGON_NEW_CREDENTIALS 与 LOGON32_PROVIDER_DEFAULT 一起使用会破坏 UAC。但是,当模拟非内置本地用户(远程计算机的本地用户)时,将返回非提升令牌。在两台机器上创建具有相同凭据的用户并不能缓解问题。
此表显示成功获取提升的令牌以在远程计算机上使用:
显示工作场景的图表 http://img521.imageshack.us/img521/3605/fo69.png
所有用户都在管理员组中。
这个问题是否有一个已知的解决方案,不涉及关闭 UAC 或在目标计算机上做任何激烈的事情?远程计算机由客户控制,不能进行任何修改。假设 UAC 正在并且应该在两端运行。
作为一个兴趣点,但不影响上述问题,使用远程 WMI 时会发现完全相同的行为。