【问题标题】:Can you use WMI to create an MSMQ message queue (PRIVATE queue)?可以使用 WMI 创建 MSMQ 消息队列(PRIVATE 队列)吗?
【发布时间】:2010-09-11 07:11:21
【问题描述】:

我需要在远程机器上创建一个 PRIVATE 消息队列,并且我已经确定我不能使用 .NET Framework 以直接的方式执行此操作。我可以在远程机器上创建公共消息队列,但不能创建私人消息队列。我可以在本地创建一个消息队列(公共或私有)。

我想知道是否有人知道如何通过 WMI 访问 MSMQ。

编辑:我看不出使用 MSMQ Provider 有什么用。可能不得不变得棘手并使用 PSExec 登录到远程服务器并执行一些代码。

【问题讨论】:

    标签: wmi msmq


    【解决方案1】:

    是的,在 .NET 中创建队列很简单,但是您不能通过这种方式在远程计算机上创建私有队列。 一段时间以来,我一直在考虑将队列创建添加到 MSMQ WMI 提供程序中...如果您需要它用于真正的产品/客户,您可以联系我,我会考虑优先考虑此功能。 一切顺利, 约尔·阿农

    【讨论】:

    • 嗯...我们希望能够到我工作的地方。这将极大地帮助我们的自动化部署过程。
    【解决方案2】:

    关于 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

    希望这会有所帮助。

    【讨论】:

    • 我看到了这个。我不知道这是否意味着必须在远程计算机上安装提供程序。
    • 提供者实际上并没有提供在任何地方安装私有队列的方法,而不是在远程服务器上。
    【解决方案3】:

    WMI 无法直接执行此操作。上一个答案有一些晦涩难懂的 WMI 提供程序,但它似乎甚至不支持创建队列。

    然而,这在 .NET 中非常简单!我不会去 PSExec 这么远。 MessageQueue.Create

    【讨论】:

    • 对不起,伙计。所有文档和后续集成测试都证明您不能使用它来远程创建 PRIVATE 消息队列。
    【解决方案4】:

    我也想创建远程私有队列,但由于 .NET 不支持它,我们决定只使用远程公共队列。如果我们根据需要设置队列的发送和接收权限,这应该没问题。

    一种变通方法是编写您自己的 Windows 服务或 Web 服务,在队列需要驻留的同一台机器上运行。您可以通过套接字或 http 远程调用此服务,并且您的本地运行代码可以创建 local 私有队列。

    如果您使用直接名称格式来引用队列,您可以从远程私有队列发送和接收。

    【讨论】:

      【解决方案5】:
      set qinfo = CreateObject("MSMQ.MSMQQueueInfo")
      qinfo.PathName = ".\Private$\TestQueue"
      qinfo.Label = ".\Private$\TestQueue"
      qinfo.Journal = "1"
      qinfo.Create
      

      在文本编辑器中复制代码,将文件保存为.vbs 并执行。

      【讨论】:

      • 请远程...不是本地创建
      猜你喜欢
      • 2014-05-14
      • 1970-01-01
      • 2014-05-20
      • 2017-06-29
      • 2014-07-22
      • 2012-12-28
      • 2010-12-10
      • 2012-03-27
      • 2012-12-24
      相关资源
      最近更新 更多