如何使用脚本 (Powershell) 或命令行工具 (C#) 从客户端计算机以编程方式从远程服务器中的 MS 队列中清除/删除消息?
我在客户端计算机中的用户(凭据)在远程服务器的 MS 队列中具有完全控制权。
如何使用脚本 (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 Remoting。
或者,如果您在远程计算机上运行 Windows Server 2012,则可以使用 MSMQ 模块功能:
Get-MessageQueue -Name QueueName | Clear-MessageQueue