2016-07-29 72 views
0

我需要从Powershell重命名MSMQ队列。如何重命名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 
    } 
} 

写主机打印一个新的名字,但通过浏览“计算机管理”队列列表时,它不会改变。

更新:基于此thread,它不能被重命名。解决方法是删除并重新添加。

回答

0

你提取的是私人队列,因此应该以Private$为前缀。尝试设置它像

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

(OR)

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

MessageQueue.QueueName

+0

感谢。我也尝试过;得到:“路径语法无效。” –