如何重命名MSMQ队列

时间:2016-07-29 17:48:54

标签: c# windows powershell msmq

我需要从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
    }
}   

Write-Host打印一个新名称,但是当通过“计算机管理”浏览队列列表时,它不会被更改。

更新:根据此thread,无法重命名。解决方案是删除并重新添加。

1 个答案:

答案 0 :(得分:0)

您提取的内容是私人队列,因此应以Private$为前缀。尝试将其设置为

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

(OR)

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

请参阅MessageQueue.QueueName