可以使用WMI创建MSMQ消息队列(PRIVATE队列)吗?
我需要在远程计算机上创建一个PRIVATE消息队列,并且我已经解决了一个事实,即我无法直接使用.NET Framework执行此操作。我可以在远程计算机上创建公共消息队列,但不能在PRIVATE机器上创建。我可以在本地创建消息队列(公共或者私有)。
我想知道是否有人知道如何通过WMI访问MSMQ。
编辑:我看不到使用MSMQ Provider做任何事情。可能会变得棘手,并使用PSExec登录到远程服务器并执行一些代码。
解决方案
有关MSMQ和WMI的博客文章在这里:http://msmq.spaces.live.com/blog/cns!393534E869CE55B7!210.entry
它说这里有一个提供商:http://www.msmq.biz/Blog/MSMQWmiSetup.msi
它还说这里有一个参考:http://www.msmq.biz/Blog/MSMQ%20WMI%20Provider%20Objects.doc
希望这可以帮助。
WMI不能开箱即用。先前的答案有一些晦涩的WMI提供程序,但它似乎甚至不支持队列创建。
但是,这在.NET中非常简单!我不会像PSExec那样走得更远。
MessageQueue.Create
是的,在.NET中创建队列很简单,但是我们不能以这种方式在远程计算机上创建私有队列。
一段时间以来,我一直在考虑将队列创建添加到MSMQ WMI提供程序...如果我们需要真正的产品/客户,可以与我联系,我将考虑优先考虑此功能。
一切顺利,
约尔·阿农(Yoel Arnon)
set qinfo = CreateObject("MSMQ.MSMQQueueInfo") qinfo.PathName = ".\Private$\TestQueue" qinfo.Label = ".\Private$\TestQueue" qinfo.Journal = "1" qinfo.Create
在文本编辑器中复制代码,将文件另存为.vb
s并执行。
我也想创建远程私有队列,但是由于.NET不支持它,因此我们决定只使用远程公共队列。如果我们根据需要在队列上设置"发送和接收"权限,那应该没问题。
解决方法之一是编写自己的Windows服务或者Web服务,该服务或者服务在需要驻留队列的同一台计算机上运行。我们可以通过套接字或者通过http远程调用此服务,并且我们在本地运行的代码可以创建本地专用队列。
如果使用直接名称格式引用队列,则可以从远程专用队列发送和接收。