C# 如何使用脚本从远程服务器的MS队列中清除消息?

C# 如何使用脚本从远程服务器的MS队列中清除消息?,c#,powershell,queue,msmq,purge,C#,Powershell,Queue,Msmq,Purge,如何使用脚本(Powershell)或命令行工具(C#)从客户端计算机以编程方式从远程服务器的MS队列中清除/删除消息 客户端计算机中的我的用户(凭据)在远程服务器的MS队列中拥有完全控制权。请尝试以下操作: Invoke-Command -ComputerName "mycomputer" -ScriptBlock { ## if public then $queuename = ".\YOUR_Q_NAME" $queuename = ".\private

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

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

请尝试以下操作:

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远程处理

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

Get-MessageQueue -Name QueueName | Clear-MessageQueue

有趣的阅读:&注意:需要在远程服务器中启用PS远程处理。