Как удалить сообщения из MS Queue в Remote Server с помощью скрипта?

Как программно удалить / удалить сообщение из MS Queue на удаленном сервере с клиентского компьютера, используя скрипт (Powershell) или инструмент командной строки (C#)?

Мой пользователь (учетные данные) на клиентском компьютере имеет ПОЛНЫЙ КОНТРОЛЬ в очереди MS на удаленном сервере.

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 было включено на удаленном сервере.

Или, если вы используете Windows Server 2012 на удаленном компьютере, вы можете использовать функции модуля MSMQ:

Get-MessageQueue -Name QueueName | Clear-MessageQueue
Другие вопросы по тегам