[Reflection.Assembly]::LoadWithPartialName("System.Messaging") $michineName = $env:COMPUTERNAME $queueNames = [System.Messaging.MessageQueue]::GetPrivateQueuesByMachine($michineName) | % {".\" + $_.QueueName} $queueNames = $queueNames | ?{ $_ -like "*my.special*"} $queueNames | foreach { [System.Messaging.MessageQueue]::Delete($_); [System.Messaging.MessageQueue]::Create($_, [bool]1) ; }
Krótki opis co robi skrypt:
1. Ładuje referencje do biblioteki Messaging
2. Pobiera nazwę komputera
3. Pobiera listę prywatnych kolejek i zwraca ich nazwy
4. Wybiera kolejki mające w nazwie "my.special"
5. Iteruje po wszystkich znalezionych kolejkach
6. Usuwa kolejkę
7. Tworzy transakcyjną kolejkę
Próbowałem zmienić proces usuwania i dodawania tej samej kolejki na pojedynczy proces czyszczenia kolejki, ale natrafiałem na pewne ograniczenia :/ Nie miałem wystarczającej ilości czasu, aby zamienić ten skrypt. Gdybyś znal inne sposoby na czyszczenie kolejek MSMQ to napisz w komentarzu.
Brak komentarzy:
Prześlij komentarz