Batch file 清除MSMQ队列并从bat文件重置IIS
是否可以从bat文件中清除msmq队列 基本上,我想制作一个bat文件或至少是一些快速简单的东西,这样未经培训的员工就可以在不知道任何shell或管理工具的情况下单击并修复 有人能帮我找到正确的方向吗?看一看 通过实用程序管理的任务包括:Batch file 清除MSMQ队列并从bat文件重置IIS,batch-file,msmq,Batch File,Msmq,是否可以从bat文件中清除msmq队列 基本上,我想制作一个bat文件或至少是一些快速简单的东西,这样未经培训的员工就可以在不知道任何shell或管理工具的情况下单击并修复 有人能帮我找到正确的方向吗?看一看 通过实用程序管理的任务包括: 浏览本地队列 清除消息 删除单个邮件 停止和启动MSMQ服务 连接和断开与网络的连接 别忘了powershell,看看吧 更新 打开powershell并逐行写入 [Reflection.Assembly]::LoadWithPartialName("Sy
- 浏览本地队列
- 清除消息
- 删除单个邮件
- 停止和启动MSMQ服务
- 连接和断开与网络的连接
[Reflection.Assembly]::LoadWithPartialName("System.Messaging")
$queueName = '.\Private$\testQueue'
$queue = new-object -TypeName System.Messaging.MessageQueue -ArgumentList $queueName
$queue.Purge()
从cmd调用powershell
[Reflection.Assembly]::LoadWithPartialName("System.Messaging") | Out-Null
$Name=(get-wmiobject win32_computersystem).name
$QName=(
"FormatName:Direct=OS:$name\System$;DEADXACT",
"FormatName:Direct=OS:$name\System$;DEADLETTER"
)
foreach ($Q in $Qname){
$MessageQueue = New-Object System.Messaging.MessageQueue($Q)
$MSGCount=$($MessageQueue.GetMessageEnumerator2()).count
IF($MSGCount){
$MessageQueue.Purge()
Write-Host "$Q has been purged of $MSGCount messages." -ForegroundColor green
}
Else{
Write-Host "$Q is clean"}
}
清除本地计算机上所有专用队列的PowerShell脚本:
[Reflection.Assembly]::LoadWithPartialName("System.Messaging")
$MachineName=(get-wmiobject win32_computersystem).name
[System.Messaging.MessageQueue]::GetPrivateQueuesByMachine("$MachineName") | % { $_.Purge(); }
如中所述,最简单的执行方法是:
- 将脚本保存到文件
清除专用msmq队列。ps1
- 在同一文件夹中,创建脚本文件
,其中包含以下内容:purge private msmq queues.cmd
powershell -executionpolicy Unrestricted .\purge-private-msmq-queues.ps1