В>= 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