首页 > 解决方案 > 如何通过 Powershell 删除 Msmq 消息配额和日志配额?

问题描述

我正在尝试通过 Powershell 脚本删除/取消选中 2008 R2 中的 Msmq 消息和日志配额限制。

在此处输入图像描述

我的机器上运行了以下脚本(Windows 10)。但它根本不适用于我们的任何服务器(它们是 2008 R2 服务器)。它也没有显示任何错误。

#Set the value for unchecked (hex or decima)
Set-ItemProperty -Path HKLM:\Software\Microsoft\MSMQ\Parameters\MachineCache -Name MachineQuota -Value 4294967295
Set-ItemProperty -Path HKLM:\Software\Microsoft\MSMQ\Parameters\MachineCache -Name MachineJournalQuota -Value 4294967295

#IMP-Restart the MSMQ services for changes to take effect
Get-Service MSMQ | Restart-Service -Force

我尝试使用 Regedit 工具手动更改注册表中的值。但是每当我重新启动 MSMQ(消息队列)服务时,它总是将其更改回原始值 '1048576'

我尝试执行 Octopus 部署,它使用“本地系统帐户”运行脚本,但仍然没有运气,它没有删除存储限制并且没有显示错误。

您是否必须是管理员或最高角色才能删除它?

您能否建议我如何通过 Powershell 消除该限制?

标签: sql-server-2008-r2powershell-2.0msmq

解决方案


我可以毫无问题地通过计算机管理手动设置 MachineQuota 和 MachineJournalQuota,并且重新启动 MSMQ 使它们保持不变。

如果您收到“拒绝访问”,请检查 MachineCache 密钥的权限。在我的 Windows 10 机器上,系统、管理员和 MSMQ 拥有完全控制权。因此,在本地系统帐户下运行脚本应该可以工作。也许由于某种原因您的权限不同。


推荐阅读