我创建了一个 Windows 2003 AD 用户,并通过默认域策略上的受限组将该用户部署到本地备份操作员组。然后我重新启动了客户端,以确保该用户已添加到该组中,事实确实如此。
但是,当我尝试以此用户身份运行 ntbackup 作业时,出现事件 10016:
Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: 8/26/2009
Time: 9:58:28 AM
User: myDomain\foobackup
Computer: BRANDT-VM
Description:
The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID
{D61A27C.....}
to the user myDomain\foobackup SID (S-1-5-21.....). This security permission can be modified using the Component Services administrative tool.
我尝试在几个不同的 XP 客户端上执行此操作,但遇到了同样的问题。ntbackup 作业似乎无限期地运行,没有写入错误日志或在网络共享上创建 bkf 文件。
答案1
该 GUID 可能是 {D61A27C1-8F53-11D0-BFA0-00A024151983},它是可移动存储管理器的 AppID。
虽然“备份操作员”确实被授予了“SeBackupPrivilege”权限,但显然微软并没有费心(至少在 Windows XP Professional 中)授予他们运行基于计划任务的备份所需的 DCOM 应用程序的明确权限。
您有几个选择。您可以只授予该用户“管理员”权限,然后一切都会“正常工作”。
我还经历了艰难的考验,弄清楚哪些 DCOM 对象需要更改其权限才能使此功能适用于仅是“用户”和“备份操作员”成员的用户。要测试它,请使用“组件服务”管理控制台管理单元,导航到“组件服务”、“计算机”、“我的电脑”和“DCOM 配置”。修改下面列出的每个对象的“启动和激活权限”,将设置从“使用默认”更改为“自定义”,并为每个对象添加具有“本地启动”和“本地激活”权限的“备份操作员”。
- 可移动存储管理器
- 可拆卸储物水槽层
- 卷影复制服务
更改这些权限后,我发现我能够在仅具有“用户”和“备份操作员”组成员资格功能的用户上下文下将备份作业作为计划任务运行,正如我预期的那样。
Microsoft 已意识到此问题(请参阅http://support.microsoft.com/kb/311866),但他们的文章没有提供正确的解决方案。(这也是一篇 2002 年 4 月的文章……它显然还没有针对 Windows XP SP2 中对 DCOM 所做的更改进行更新。http://technet.microsoft.com/en-us/library/bb457148.aspx)
DCOM 权限以 REG_BINARY 键的形式存储在注册表中。据我所知,目前没有现成的组策略机制可以操纵它们。应该可以通过简单的注册表合并在不同的计算机之间复制 LaunchPermission 值(例如,在更改启动权限后,在 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID{56BE716B-2F76-4dfa-8702-67AE10044F0B} 下查看该值),因为我们在资源上放置的 ACL 仅命名众所周知的 SID,而不命名计算机或域特定的 SID。
我只需授予用户“管理员”权限即可完成,但如果您想这样做,肯定还有另一种选择。