MSMQ发布消息

时间:2016-03-22 11:17:29

标签: powershell msmq

对于PowerShell,我是一个完整的新手,但一直在研究测试我已设置的消息队列的最佳方法(MSMQ)。 到目前为止,我已经能够在Powershell中运行以下命令以获取我的所有队列以查看存在的内容:

/opt/appserver/webapps/my-laravel-app/META-INF/classes/MyLaravelApp/Receivers/MyReceiverClass

这将返回我可用的MSMQ队列列表。 我现在想要只向一个名为测试连接的返回队列发布消息。我的队列命名为:

MessageQueue

我尝试使用以下但没有运气:

gwmi -class Win32_PerfRawData_MSMQ_MSMQQueue -computerName . |
ft -prop Name, MessagesInQueue

我不能为我的生活弄清楚如何做到这一点。有没有人有任何好的资源或代码来做到这一点?

1 个答案:

答案 0 :(得分:4)

正如错误所说,你的$MyQueue对象只是一个字符串,没什么特别的。

您可以使用.NET System.Messaging命名空间来处理消息队列实例:

Add-Type -AssemblyName System.Messaging
$MyQueuePath = '.\Private$\portalemailqueue'
$MyQueue = if([System.Messaging.MessageQueue]::Exists($MyQueuePath)) {
    # Open existing queue
    New-Object System.Messaging.MessageQueue $MyQueuePath
} else {
    # Or create it 
    [System.Messaging.MessageQueue]::Create($MyQueuePath)
}
# Now you can call $MyQueue.Send()