我有一台 Windows 2008 机器 A,其管理员帐户为 X。我还有另一台 Windows 2008 机器 B,其管理员帐户为 Y。
两台机器都有一个帐户Z,并且具有相同的用户名和密码。
帐户 Z 位于两台机器的本地管理员组中。
他们不在一个域上。
从机器 A,作为用户 Z(两台机器共同的管理员),我想要启动/停止机器 B 上的服务。
(我实际上想通过 c# 以编程方式执行此操作,但现在我的目标是通过命令行来证明它有效。)
我尝试了一些方法(例如使用 runas /user:Z cmd,然后使用 sc.exe),但发现 SysInternal 的服务端既好用又灵活,因为我可以在命令行上指定用户名和密码。我也尝试过通过 WMI 进行编码。
我总是得到相同的结果:
如果我使用帐户 Y 的用户/密码(然后是机器 B 上的实际管理员),它就可以正常工作。如果我使用帐户 Z 的用户/密码(或在本地模拟它),它会失败并拒绝访问。
既然Z属于管理员组,为什么会出现这种情况?
谢谢。
更新:
以下是我在两台机器上的 UAC 设置:
答案1
非常感谢大家的评论,但这里是答案:
http://blogs.msdn.com/b/vistacompatteam/archive/2006/09/22/766945.aspx
有一个注册表设置
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy
这对此有影响。
如果我将该注册表项设置为 1,则一切都会按预期工作 - 管理员组中的用户可以正确地进行远程访问。
我不清楚这是否超出了任何 UAC 设置(即那些本地 UAC 设置永远不会影响远程访问),或者我禁用 UAC 是否不够充分。(我使用 Windows UI 禁用了它 - 我的设置与原始问题屏幕截图一致)。