在PowerShell中按名称获取单个专用队列

时间:2015-09-16 13:16:07

标签: powershell msmq

我想为一个特定的私人消息队列设置权限。我找到了this related answer,但它是一个更大的脚本,如果它们存在,则首先删除队列然后(重新)创建它们。该解决方案以两种方式之一获取对队列的引用:

  1. 通过a;或
  2. 循环浏览[System.Messaging.MessageQueue]::Create(".\private$\somequeue")
  3. 我想做的是这样的事情:

    [System.Messaging.MessageQueue]::GetPrivateQueuesByMachine(".")

    但我还没有找到这样的方法。我已遍历GetPrivateQueueByName(".\private$\somequeue") # Method doesn't exist! 命名空间中的所有Get*方法。

    有没有办法通过名称获取单个私有队列,或以其他方式设置权限,而无需迭代所有队列和/或重新创建它?

1 个答案:

答案 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}}方法。