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

pan*_*hei 7 com dcom

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

Rud*_*ddy 6

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

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

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

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