Как удалить сообщения из 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