如何重命名MSMQ队列

本文关键字:队列 MSMQ 重命名 | 更新日期: 2023-09-27 17:59:11

我需要从Powershell重命名MSMQ队列。

以下是我正在运行的内容:

[System.Reflection.Assembly]::LoadWithPartialName("System.Messaging")
$privateQueues = [System.Messaging.MessageQueue]::GetPrivateQueuesByMachine(".") 
foreach ($queue in $privateQueues) 
{
    if($queue.QueueName.Contains("foo"))
    {
        $queue.QueueName = "bar"
         Write-Host $queue.QueueName
    }
}   

写入主机打印一个新名称,但当通过"计算机管理"浏览队列列表时,它不会更改。

更新:基于此线程,无法重命名。解决方案是删除并重新添加。

如何重命名MSMQ队列

您获取的是私有队列,因此应该以Private$为前缀。尝试将其设置为

$queue.QueueName = "localhost'Private$'bar";

(或)

$queue.QueueName = ".'Private$'bar";

参见MessageQueue.QueueName