如 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