powershell - 监控MSMQ到达时间

标签 powershell msmq

我正在尝试整理一个脚本来监视服务器上的MSMQ。我找到了this,它的工作原理很像魅力,但我还需要获取到达时间。

使用Get-Member cmdlet时,我会得到一个属性列表,但似乎没有一个可以让我得到所需的东西。

有人知道如何获得到达时间吗?

/G

最佳答案

终于明白了。

[String]$cName = $Env:COMPUTERNAME
[Reflection.Assembly]::LoadWithPartialName("System.Messaging") | out-null
[System.Messaging.MessageQueue[]]$queues = [System.Messaging.MessageQueue]::GetPrivateQueuesByMachine($cName.ToLower())
Foreach ($queue in $queues) {
    $queue.MessageReadPropertyFilter.SetAll()
    try {
        [System.Messaging.Message]$message = $queue.Peek(10)
        Write-Host $queue.QueueName $message.ArrivedTime
    }
    catch {
        #Write-Host "Timeout"
    }
}

诀窍是设置MessageReadPropertyFilter。可以分别设置每个属性,但是现在可以这样做。

关于powershell - 监控MSMQ到达时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243251/

相关文章:

MSMQ 在 Linux 中的使用

php - 使用 PHP 打开 MSMQ 队列

powershell - 我可以使用 PowerShell 编写一个类吗?

sharepoint - MOSS 2007 Powershell运行报表生成器报表RDL

jquery - 自动保存和重新填充大型 ASP.NET 表单的性能良好的方法

msmq - 通过脚本在 Microsoft 集群中创建私有(private) MSMQ 队列

powershell - 通过 Powershell 运行时 MSBuild 失败

c# - 在远程 powershell session 期间复制文件 c# runspace

powershell - 在PowerShell中比较数组变量

.net - 使用 MessageEnumerator RemoveCurrent 我怎么知道我是否在队列末尾?