如何以编程方式读取MSMQ队列的权限?

时间:2011-06-29 01:15:26

标签: powershell permissions msmq

有许多在线建议使用.net System.Messaging.MessageQueue SetPermissions方法以编程方式设置MSMQ权限。但是我找不到任何system.messaging属性,它允许我读取当前在现有队列上配置的权限。

我正在尝试编写一个powershell审计脚本来评估几十台机器配置,如果我无法获得队列的配置权限,它几乎完全没用。

我对命令行选项的建议持开放态度,没有找到stackoverflow中提到的任何内容。 Yoel的MSMQ WMI提供程序没有公开必要的信息,据我所知,没有MSMQ提供的命令行可以解决这个问题。

无法相信这是没有人解决的问题。 Microsoft的另一个企业产品缺少基本的安全功能(验证)。

使用PowerShell进行审计,更喜欢内置或.net框架解决方案,但如果需要,可以通过任何必要的方式获取信息(CLI)。

2 个答案:

答案 0 :(得分:2)

您可能会被P/Invoke to call MQGetQueueSecurity困住。 IIRC COM接口也不支持读取队列权限。

答案 1 :(得分:2)

我遇到了同样的问题,并采取了一些建议。我创建了一个小型的c#项目,它使用p / invoke来获取用户对给定队列的权限。

请随意使用或参与其中:

https://github.com/jlevitt/MSMQSecurity