2

是否有任何方法可以使用批处理文件更改 COM 安全的访问权限?我需要使用批处理脚本在“访问权限”和“启动和激活权限”中将新值写入“编辑限制...”和“编辑默认值...”。我正在使用带有 Service Pack 2 和 3 的 Windows XP 机器。

谢谢你。

4

2 回答 2

1

我最近需要创建一个批处理脚本来授予默认的本地激活权限,以便我可以在 Windows Azure 上运行进程外 COM 组件。经过大量研究,我使用了一个名为RegFromApp的工具(下载链接在页面底部附近)来查看当我在 Windows Server 2008 R2 VM 上授予上述权限时,Windows 注册表中发生了哪些更改。以下是我用来确定对注册表进行哪些更改的步骤...

  1. 在命令提示符中输入dcomcnfg以启动组件服务
  2. 推出RegFromApp计划
  3. 在 RegFromApp 中,选择mmc.exe进程并单击“确定”以检查它将对注册表进行哪些更改
  4. 返回组件服务,在左侧面板中展开组件服务项
  5. 左侧面板中展开的计算机项目
  6. 右键单击左侧面板中的我的电脑项目并 从弹出菜单中选择属性
  7. 选定的 COM 安全选项卡
  8. 启动和激活权限框中,单击编辑默认 按钮
  9. 点击添加按钮
  10. IIS_IUSRS在空框中输入,单击“检查名称”按钮并单击“确定”按钮
  11. 勾选允许本地激活单击确定按钮
  12. 单击应用按钮,然后单击确定按钮
  13. 回到 RegFromApp 程序,从 File 菜单中单击Save As以将注册表更改保存为SetDCOMPermission.reg文件

在 .reg 文件中记录了注册表更改(即在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE]键中修改了DefaultLaunchPermission值),我编写了以下批处理脚本来注册我的 COM 组件并将更改应用到注册表运行我的 .reg 文件...

chcp 1252>NUL
OleAutomationFeasibilityModel.exe /regserver
regedit.exe /s SetDCOMPermission.reg
exit /b 0

我相信您可以使用类似的技术在 .reg 文件中记录您尝试实现的必要注册表更改,并从批处理脚本运行此文件。

希望有帮助!

于 2014-02-02T18:28:08.043 回答
0

我不知道有任何第三方工具允许您以编程方式创建 ACL。在过去,我只见过使用自定义工具完成此操作,例如 VBScript 和 C++ COM 组件或本机命令行工具。

如果您确实想走这条路,那么Keith Brown 的 Programming Windows Security是一本关于该主题的优秀书籍,如果这些天有点老的话。几年前,我曾经在这样一个组件上工作过。

于 2011-08-11T22:12:57.360 回答