В>= Windows 8, как я могу вернуть все записи журнала MSMQ для именованной очереди в powershell?

Как было представлено в командлетах MSMQ ( https://technet.microsoft.com/en-us/library/hh405007(v=vs.85).aspx), теперь у нас есть возможность запрашивать нашу очередь. Если я бегу

PS C:\Get-MsmqQueue

Затем я получаю полный список всех объектов очереди в системе. Хорошо.

Если я бегу

PS C:\Get-MsmqQueue -QueueType Private

Затем я получаю полный список всех объектов Private queue в системе. Здорово.

Однако... Если я бегу

PS C:\Get-MsmqQueue -Name private$\mt_queuename_request_001

Я ничего не получаю... хотя я использую правильное имя... так что, в свою очередь, работает

PS C:\Get-MsmqQueue -Name private$\mt_queuename_request_001 -Journal

Кроме того, я ничего не получаю... что я действительно хотел бы получить этот список записей журнала.

Совет? Истории успеха?

1 ответ

Я вижу, что сообщение довольно старое, но, возможно, оно кому-нибудь поможет, потому что я долго искал его, когда приходил к решению.

Чтобы получить свойства очереди, вы можете запустить без указания пути "private$\"

PS C:\Get-MsmqQueue -Name mt_queuename_request_001

Боюсь, что нет возможности читать сообщения в очередях с помощью командлетов PS.

Для чтения и управления сообщениями в MSMQ я использую следующее:

# Load Messaging Assembly
[Reflection.Assembly]::LoadWithPartialName("System.Messaging") | Out-Null

# Get Queue Messages
$queuePath = ("SERVER01\mt_queuename_request_001")
$queue = New-Object System.Messaging.MessageQueue $queuePath
$queue.GetAllMessages()

# Get Journal Messages
$queuePath = ("SERVER01\mt_queuename_request_001;JOURNAL")
$queue = New-Object System.Messaging.MessageQueue $queuePath
$queue.GetAllMessages()

С уважением, E

Другие вопросы по тегам