我想为一个特定的私人消息队列设置权限。我找到了this related answer,但它是一个更大的脚本,如果它们存在,则首先删除队列然后(重新)创建它们。该解决方案以两种方式之一获取对队列的引用:
a
;或[System.Messaging.MessageQueue]::Create(".\private$\somequeue")
。我想做的是这样的事情:
[System.Messaging.MessageQueue]::GetPrivateQueuesByMachine(".")
但我还没有找到这样的方法。我已遍历GetPrivateQueueByName(".\private$\somequeue") # Method doesn't exist!
命名空间中的所有Get*
方法。
有没有办法通过名称获取单个私有队列,或以其他方式设置权限,而无需迭代所有队列和/或重新创建它?
答案 0 :(得分:1)
这将允许您向队列添加权限:
[System.Reflection.Assembly]::LoadWithPartialName("System.Messaging") | Out-Null
(New-Object -TypeName "System.Messaging.MessageQueue" -ArgumentList $queue).SetPermissions(agrs here)
其中$queue
是队列地址,例如".\private$\MyQueue"
。
这使用MessageQueue
的{{3}}方法。