gpt4 book ai didi

powershell - 如何设置 MSMQ 集群队列的权限?

转载 作者:行者123 更新时间:2023-12-03 01:22:04 24 4
gpt4 key购买 nike

我有一个具有正常运行的私有(private) MSMQ 3.0 队列的集群。我正在尝试以编程方式设置权限,但似乎无法通过队列上的 System.Messaging 进行连接。下面的代码在使用本地队列(并使用 .\本地队列的命名法)时工作得很好。如何以编程方式设置集群队列的权限?

从事件节点执行的 Powershell 代码

function set-msmqpermission ([string] $queuepath,[string] $account, [string] $accessright)
{
if (!([System.Messaging.MessageQueue]::Exists($queuepath))){
throw "$queuepath could not be found."
}
$q=New-Object System.Messaging.MessageQueue($queuepath)
$q.SetPermissions($account,[System.Messaging.MessageQueueAccessRights]::$accessright,
[System.Messaging.AccessControlEntryType]::Set)
}
set-msmqpermission "clusternetworkname\private$\qa1ack" "UserAccount" "FullControl"

使用“3”参数调用“SetPermissions”的异常:“无效的队列路径名”。
在线:30 字符:19
+ $q.SetPermissions <<<< ($account,[System.Messaging.MessageQueueAccessRights]::$accessright,
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+fullyQualifiedErrorId:DotNetMethodException

最佳答案

发件人:http://winterdom.com/2011/10/using-powershell-with-clustered-msmq

在使用 messageQueue 之前,您必须设置集群网络名称环境变量。

$env:_CLUSTER_NETWORK_NAME_ = 'myclusterMSMQ'
[System.Messaging.MessageQueue]::Create('.\Private$\MyQueue')

将集群网络名称添加到脚本顶部应该可以解决问题

链接到我作为另一个问题的答案提供的完整(简单化 - 但适用于简单创建和分配烫发)脚本。
https://stackoverflow.com/a/11268755/761599

关于powershell - 如何设置 MSMQ 集群队列的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com