1
我想把腳本放在一起來監視服務器上的MSMQ。我發現this,它的作品像一個魅力,但我也需要得到的到來時間。監視MSMQ到達時間
當使用Get-Member cmdlet時,我得到一個屬性列表,但沒有一個看起來讓我知道我需要什麼。
有誰知道如何獲得到達時間?
/G
我想把腳本放在一起來監視服務器上的MSMQ。我發現this,它的作品像一個魅力,但我也需要得到的到來時間。監視MSMQ到達時間
當使用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。可以單獨設置每個屬性,但現在可以這樣做。
由於我還不知道消息本身是如何處理的,這只是一個黑暗的鏡頭。只是在抵達時編寫代碼中的日誌條目纔可能是一種可行的解決方案? –
我不認爲這是必要的,因爲如果你檢查隊列,你可以看到到達的時間,所以它存儲在某個地方。問題在哪裏。 – Gisli