【问题标题】:Accessing MSMQ via PowerShell通过 PowerShell 访问 MSMQ
【发布时间】:2021-12-16 00:14:43
【问题描述】:

我已使用以下Link 在服务器(win 2008 R2)和客户端计算机(win 7)上安装了 MSMQ 功能。该功能出现在服务器管理器中,我可以通过 GUI 创建公共或私有队列。但是,当我尝试通过 PowerShell (2.0) 在服务器上本地访问队列时,shell 中没有一个用于 MSMQ 的 Cmdlet's 被识别。

通过 PowerShell 访问 MSMQ 是否需要采取任何进一步的步骤?是否有需要加载的 MSMQ 模块?

对此的任何建议将不胜感激。

【问题讨论】:

  • 你得到什么错误?
  • 错误是标准无法识别的 cmdlet:The term 'Get-MsmqQueue' is not recognized as the name of a cmdlet..

标签: powershell msmq windows-server-2008-r2


【解决方案1】:

如果您在提供的链接中单击上一级,您会看到您正在查看预发布的 PowerShell 4.0 模块文档。这是父页面的链接。

https://web.archive.org/web/20131029215718/http://technet.microsoft.com/en-us/library/dn249523.aspx

PowerShell 社区扩展 (PSCX) 有一些用于与 MSMQ 一起使用的 cmdlet,但它也适用于 PowerShell 2.0。

【讨论】:

  • arr 我知道我现在做了什么,我找到了正确的语法,谢谢。
  • 实际上,Mike,your 链接适用于 4.0 预发行版,但 Richard 的链接显然适用于 PowerShell 3,但 only 适用于 Win Server 2012 年和 Win 8,因此是他的问题......这恰好也是我的问题,如 [此处](ttp://serverfault.com/q/534991/14413) 发布的那样。
  • 我在这两个页面上都没有看到 PowerShell 版本,这让我认为它们自原始答案以来已经更新。
  • "在链接中上一级" ?在哪里? pix.toile-libre.org/upload/original/1436237816.png
【解决方案2】:

以下方法适用于 Powershell 2.0:

$query = "SELECT MessagesinQueue FROM Win32_PerfRawData_MSMQ_MSMQQueue WHERE Name = 'myPrivateQueueName'"
$wmiObject = Get-WmiObject -Query $query
$wmiObject.MessagesinQueue

您可以使用此查询列出队列:

$query = "SELECT * FROM Win32_PerfRawData_MSMQ_MSMQQueue"

查看以 .Name="theQueueName" 结尾的 __PATH 属性

【讨论】:

    【解决方案3】:

    我想补充一下,我遇到了这个错误,但是在 windows serverur 2019 中使用了版本 5。我去检查计算机管理、服务和应用程序,并且没有一个部分名称为消息队列。这可以解释为什么我不能运行命令行。

    https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/installing-message-queuing-msmq

    在那之后我不得不重新启动我的电脑。弹出窗口告诉您这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 2011-03-06
      相关资源
      最近更新 更多