我需要从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,无法重命名。解决方案是删除并重新添加。
答案 0 :(得分:0)
您提取的内容是私人队列,因此应以Private$
为前缀。尝试将其设置为
$queue.QueueName = "localhost\Private$\bar";
(OR)
$queue.QueueName = ".\Private$\bar";