Как программно читать разрешения на очереди MSMQ? - PullRequest
4 голосов
/ 29 июня 2011

Существует множество интерактивных предложений по программной установке разрешений MSMQ с использованием метода .net System.Messaging.MessageQueue SetPermissions. Но я не могу найти ни одно свойство system.messaging, которое позволяет мне читать разрешения, настроенные в настоящее время в существующих очередях.

Я пытаюсь написать сценарий аудита powershell, чтобы подвести итоги десятков конфигураций компьютеров, и это почти совершенно бесполезно, если я не могу получить настроенные разрешения для очередей.

Я открыт для предложений по параметрам командной строки, не нашел ничего упомянутого в stackoverflow. Поставщик Yoel MSMQ WMI не предоставляет необходимую информацию, и, насколько я могу судить, в MSMQ нет командной строки, которая могла бы вам это дать.

Не могу поверить, что это то, к чему никто не обращался. Другой корпоративный продукт от Microsoft, в котором отсутствует фундаментальная функция безопасности (проверка).

При использовании PowerShell для аудита предпочтительнее встроенные решения или решения .net Framework, но получение информации любыми необходимыми средствами (CLI), если это необходимо.

Ответы [ 2 ]

2 голосов
/ 18 августа 2012

У меня была та же проблема, и я воспользовался некоторыми советами, которые были предложены здесь.Я создал небольшой проект на c #, который использует p / invoke для получения разрешений пользователя для данной очереди.

Пожалуйста, не стесняйтесь использовать или внести свой вклад:

https://github.com/jlevitt/MSMQSecurity

2 голосов
/ 29 июня 2011

Вы можете застрять, используя P / Invoke для вызова MQGetQueueSecurity . IIRC интерфейс COM также не поддерживает разрешения для очереди чтения.

...