2016-07-29 2 views
0

Мне нужно переименовать очередь 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, его нельзя переименовать. Решение состоит в удалении и повторном добавлении.

ответ

0

Что вы выбираете, это частные очереди и поэтому должны иметь префикс Private$. попробуйте установить его как

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

(ИЛИ)

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

См MessageQueue.QueueName

+0

Спасибо. Я тоже пробовал это; получение: «Синтаксис пути недействителен». –