Я обыскал много мест и не могу найти способ изменить разрешения для уже существующего MSMQueue.
Обычно разрешения устанавливаются во время создания очереди. В данном случае этого не произошло. Удаление очереди и повторная установка невозможны.
Я был бы очень признателен за любую помощь с обновлением разрешений для существующей очереди.
Я знаю, что могу сделать это:
[Reflection.Assembly]::LoadWithPartialName("System.Messaging") | Out-Null
$msmq = [System.Messaging.MessageQueue]
$q = $msmq::Create($qName,$true)
$q.SetPermissions($Access,[System.Messaging.MessageQueueAccessRights]::ReceiveMessage, [System.Messaging.AccessControlEntryType]::Set)
и я знаю, что могу удалить очередь, но, опять же, в данном случае это не вариант. Мне нужен еще один способ понять MSMQ, чтобы установить $ q, тогда я смогу установить SetPermissions. Я просто не могу понять, что нам $ msmq :: {ЧТО МНЕ НУЖНО} ($ qName).
Обратите внимание, что я не могу использовать командлеты MSMQ, доступные в более поздних версиях PowerShell.
Спасибо за ответ и да. В этом примере они удаляют очередь и добавляют ее обратно, чтобы установить разрешения. Я не могу этого сделать
Я имел в виду: Get-MsmqQueue -Name "MyQueue" -QueueType Private | Set-MsmqQueueAcl -UserName "Everyone" -Allow FullControl
Я не могу использовать командлеты в этой версии PowerShell.
Вы смотрели этот ответ?