我有一个具有正常运行的私有 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”的异常:“无效的队列路径名”。在 line:30 char:19 + $q.SetPermissions <<<< ($account,[System.Messaging.MessageQueueAccessRights]::$accessright,
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException