更改组件服务中的访问权限> COM安全与脚本/ api?

时间:2010-01-04 11:06:55

标签: com dcom

是否有更改COM安全性的访问权限的API?我需要为“Edit Limits ...”和“Edit Default ...”写新值。这些普通的注册表设置?找不到如何设置这些条目。

1 个答案:

答案 0 :(得分:6)

快速回答是是,他们是注册表设置,长答案是否,他们不是简单注册表设置。值为二进制,指向ACL结构。要更改这些,您需要加载,更新和保存ACL(这需要相当数量的代码)。 Windows SDK中的DCOMPerm sample是一个不错的起点,我已经将它用作我在工作中用来处理这个问题的一组类的基础(不幸的是,我无法将该代码发布到公共领域)

您可以查看DCOM密钥结构的MSDN Documentation - 其中包含计算机范围的设置。 COM应用程序特定设置存储在注册表中的APPID下的AccessPermission和LaunchPermission值中。

请注意,修改机器范围设置的ACL可能会导致您的计算机无法正常使用。如果我没记错的话,你可以简单地删除这些值(通过RegEdit),操作系统将恢复默认设置以恢复你的机器......但我不再100%肯定了。

编辑:二进制数据实际上是一个安全描述符,但最终它是需要处理的包含的ACL - SD在解包/打包时只增加了一层代码。