2012-08-31 50 views
2

我目前正在嘗試編寫一個腳本,它將通過消息隊列並刪除/發送到另一個子消息隊列中的每個消息,如果某個字符串在正文中。一次在PowerShell中通過MSMQ一條消息

僞代碼,我目前想實現

$queue = 'My Queue' 
foreach($message in $queue) 
    { 
    if ($message.body.Contains("matchstring") 
     { 
     $message.delete OR $message.movequeue 
     } 
    } 

我目前在PowerShell中使用[Reflection.Assembly] :: LoadWithPartialName(「System.Messaging」),但我不知道它是否包含所有我需要的功能。

回答

2

您可以在PowerShell中執行此操作。這裏有一些簡單的代碼讓你開始並連接到一個隊列:

$queuePath = ("Direct=OS:SERVER\private$\PRIVATEQUEUE") 
$queue = New-Object System.Messaging.MessageQueue $queuePath 
$queue.GetAllMessages() 

使用$ queue | gm和MSDN,以幫助你找到你需要的地方。