对群集专用 MSMQ 队列设置权限
Setpermission on clustered private MSMQ queue
我正在尝试为私有群集 MSMQ 队列分配额外的权限。
我发现 How to set permissions on MSMQ Cluster queues? 这是同样的问题,但我无法让它工作。
那篇文章的关键是设置环境变量:
$env:_CLUSTER_NETWORK_NAME_ = 'myclusterMSMQ'
但是 myclusterMSMQ
应该包含什么?
在我的例子中,我有一个集群 MSMQCluster
,其中有两个节点 MSMQNodeA
和 MSMQNodeB
。队列在集群资源 QueueResource
.
中
对我来说合乎逻辑的是将其设置为 QueueResource
,但是当我这样做时,权限出现在 MSMQNodeA
上具有相同名称的队列中......这就是我所在的位置运行 我的 powershell,它是资源所有者 - 队列不应该在这里,但在脚本测试期间,具有该名称的队列也在这里结束。
我的代码如下所示:
$queueUser= "domain\svc-account"
$queueName=".\private$\log.queue"
$env:_CLUSTER_NETWORK_NAME_ = "$queueResource"
$queue = New-Object System.Messaging.MessageQueue $queueName
$queue.SetPermissions($queueuser, [System.Messaging.MessageQueueAccessRights]::WriteMessage)
我尝试了一种使用 GetPrivateQueuesByMachine($queueResource)
检索队列的变体
但这给了我错误:
System.Messaging.MessageQueueException (0x80004005): The specified
format name does not support the requested operation. For example, a
direct queue format name cannot be deleted
我确定最后一个方法是从 QueueResource
返回队列,因为当我列出所有队列时,我没有得到 MSMQNodeA
上的任何其他垃圾队列。
如何使用 Powershell 在私有集群队列上设置额外的队列权限?
它似乎无法正常工作,部分原因是服务帐户已失去 MSMQ 管理员权限,因此我在测试时使用的值无关紧要。
以下是正确的语法:
$env:_CLUSTER_NETWORK_NAME_ = $QueueResource
我正在尝试为私有群集 MSMQ 队列分配额外的权限。
我发现 How to set permissions on MSMQ Cluster queues? 这是同样的问题,但我无法让它工作。
那篇文章的关键是设置环境变量:
$env:_CLUSTER_NETWORK_NAME_ = 'myclusterMSMQ'
但是 myclusterMSMQ
应该包含什么?
在我的例子中,我有一个集群 MSMQCluster
,其中有两个节点 MSMQNodeA
和 MSMQNodeB
。队列在集群资源 QueueResource
.
对我来说合乎逻辑的是将其设置为 QueueResource
,但是当我这样做时,权限出现在 MSMQNodeA
上具有相同名称的队列中......这就是我所在的位置运行 我的 powershell,它是资源所有者 - 队列不应该在这里,但在脚本测试期间,具有该名称的队列也在这里结束。
我的代码如下所示:
$queueUser= "domain\svc-account"
$queueName=".\private$\log.queue"
$env:_CLUSTER_NETWORK_NAME_ = "$queueResource"
$queue = New-Object System.Messaging.MessageQueue $queueName
$queue.SetPermissions($queueuser, [System.Messaging.MessageQueueAccessRights]::WriteMessage)
我尝试了一种使用 GetPrivateQueuesByMachine($queueResource)
检索队列的变体
但这给了我错误:
System.Messaging.MessageQueueException (0x80004005): The specified format name does not support the requested operation. For example, a direct queue format name cannot be deleted
我确定最后一个方法是从 QueueResource
返回队列,因为当我列出所有队列时,我没有得到 MSMQNodeA
上的任何其他垃圾队列。
如何使用 Powershell 在私有集群队列上设置额外的队列权限?
它似乎无法正常工作,部分原因是服务帐户已失去 MSMQ 管理员权限,因此我在测试时使用的值无关紧要。
以下是正确的语法:
$env:_CLUSTER_NETWORK_NAME_ = $QueueResource