1

如何使用脚本 (Powershell) 或命令行工具 (C#) 从客户端计算机以编程方式从远程服务器中的 MS 队列中清除/删除消息?

我在客户端计算机中的用户(凭据)在远程服务器的 MS 队列中具有完全控制权。

4

2 回答 2

2

尝试这个:

Invoke-Command -ComputerName "mycomputer" -ScriptBlock {

        ## if public then $queuename = ".\YOUR_Q_NAME" 
        $queuename = ".\private$\YOUR_Q_NAME"  

        [Reflection.Assembly]::LoadWithPartialName("System.Messaging") | Out-Null
        $queue = New-Object -TypeName "System.Messaging.MessageQueue"
        $queue.Path = $queuename 
        $messagecount = $queue.GetAllMessages().Length
        $queue.Purge()
        Write-Host "$queuename has been purged of $messagecount messages."
    }

注意:需要在远程服务器中启用 PS Remoting。

于 2014-07-29T14:17:51.307 回答
1

或者,如果您在远程计算机上运行 Windows Server 2012,则可以使用 MSMQ 模块功能:

Get-MessageQueue -Name QueueName | Clear-MessageQueue
于 2014-07-29T17:47:06.960 回答