Wie kann ich in> = Windows 8 alle MSMQ-Journaleinträge für die benannte Warteschlange in Powershell zurückgeben?

611
beauXjames

Wie in MSMQ-Cmdlets ( https://technet.microsoft.com/de-de/library/hh405007(v=vs.85).aspx ) eingeführt, haben wir jetzt die Möglichkeit, unsere Warteschlange abzufragen. Wenn ich renne

PS C:\Get-MsmqQueue 

Dann erhalte ich eine vollständige Liste aller Warteschlangenobjekte im System. Gut.

Wenn ich renne

PS C:\Get-MsmqQueue -QueueType Private 

Dann erhalte ich eine vollständige Liste aller privaten Warteschlangenobjekte im System. Cool.

Allerdings ... wenn ich renne

PS C:\Get-MsmqQueue -Name private$\mt_queuename_request_001 

Ich bekomme nichts zurück ... obwohl ich einen gültigen Namen verwende ... also rennend

PS C:\Get-MsmqQueue -Name private$\mt_queuename_request_001 -Journal 

Bekomme mir auch nichts ... was ich wirklich gerne hätte, um diese Liste von Journaleinträgen bekommen zu können.

Rat? Erfolgsgeschichten?

1
Ich weiß nichts über MSMQ, aber in den Get-MsmqQueue-Beispielen haben wir Folgendes: `Get-MsmqQueue -Name Order * -QueueType Private -Journal`. Das bedeutet für mich, dass Sie dies versuchen könnten: `Get-MsmqQueue -Name mt_queuename_request_001 -QueueType Private -Journal` dangph vor 9 Jahren 0
Die einzige wirkliche Abweichung hier ist der Zusatz des QueueType-Parameters. Dies ist nicht hilfreich, wenn Sie auch den Namen angeben ... es sei denn, Sie haben einen Namen für ein öffentliches Objekt angegeben, aber natürlich den privaten Typ angefordert Stellen Sie absolut nichts dar, statt eine nutzlose Sammlung von Pixeln. beauXjames vor 9 Jahren 0
Okay, es war nur eine Idee. Ich dachte, vielleicht mag es die "private $" -Notation nicht. Aber wie gesagt, ich weiß nichts über MSMQ. In der Regel ist es hilfreich, sich die Beispiele anzusehen. (`help Get-MsmqQueue -detail`) Es lohnt sich vielleicht, Platzhalter im Namen zu versuchen. dangph vor 9 Jahren 0
Ja, Sie können es ohne das "private $ \" ausführen und es gibt tatsächlich etwas zurück ... nur nicht die Liste, auf die ich gehofft hatte beauXjames vor 9 Jahren 0

1 Antwort auf die Frage

1
Egis

Ich sehe, dass der Beitrag ziemlich alt ist, aber vielleicht hilft er jemandem, weil ich ihn lange gesucht habe, als ich zur Lösung kam.

Um die Eigenschaften der Warteschlange abzurufen, können Sie den Pfad "private $ \" ohne Angabe von Pfaden ausführen.

PS C:\Get-MsmqQueue -Name mt_queuename_request_001 

Ich befürchte, dass es keine Möglichkeit gibt, Nachrichten in Warteschlangen mithilfe von PS-Cmdlets zu lesen.

Um Nachrichten in MSMQ zu lesen und zu bearbeiten, verwende ich Folgendes:

# Load Messaging Assembly [Reflection.Assembly]::LoadWithPartialName("System.Messaging") | Out-Null  # Get Queue Messages $queuePath = ("SERVER01\mt_queuename_request_001") $queue = New-Object System.Messaging.MessageQueue $queuePath $queue.GetAllMessages()  # Get Journal Messages $queuePath = ("SERVER01\mt_queuename_request_001;JOURNAL") $queue = New-Object System.Messaging.MessageQueue $queuePath $queue.GetAllMessages() 

Grüße, E