在 >= Windows 8 中,如何在 powershell 中返回命名队列的所有 MSMQ 日志条目?

在 >= Windows 8 中,如何在 powershell 中返回命名队列的所有 MSMQ 日志条目?

如 MSMQ Cmdlet 中所述(https://technet.microsoft.com/en-us/library/hh405007(v=vs.85).aspx),现在我们可以查询队列了。如果我运行

PS C:\Get-MsmqQueue

然后我得到了系统上所有队列对象的完整列表。很好。

如果我跑

PS C:\Get-MsmqQueue -QueueType Private

然后我得到了系统上所有私有队列对象的完整列表。太棒了。

但是...如果我跑

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 Cmdlet 读取队列中的消息。

要读取和操作 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

相关内容