【问题标题】:How to reset MSMQ permissions after changing domains更改域后如何重置 MSMQ 权限
【发布时间】:2011-09-26 00:20:06
【问题描述】:

将安装了 MSMQ 的 Microsoft 2003 服务器移动到另一个域时应注意哪些事项?

我们为来自新域的用户帐户分配了队列权限。我们仍然收到错误消息“拒绝访问消息队列系统。”

新域中没有其他服务器在运行 MSMQ。在成员服务器上安装 MSMQ 时是否会创建 Active Directory 对象?

【问题讨论】:

  • 你的意思是安装 MSMQ 的机器被移到了另一个域?
  • 是的。我们实际上必须从域中删除服务器,重建一个新域,然后将服务器重新加入新域。我们删除了权限列表中的孤立用户对象,并从新域中添加了一个用户。

标签: msmq


【解决方案1】:

如果域在不同的林中并且您希望使用公共队列等,那么您将需要重新安装 MSMQ,以便在 AD 中创建所有 MSMQ 对象。

究竟是什么操作生成“访问消息队列系统被拒绝。”?

【讨论】:

  • 我们软件的一个组件抛出嵌入了附加信息的错误消息。我们不使用公共队列,也看不到在 AD 中为 MSMQ 创建的任何对象。另一篇文章提到了 AD 对象,这混淆了这个问题。我相信我们找到了解决问题的方法。我们将发布所采取的步骤。
  • 我以为您在原始问题“在成员服务器上安装 MSMQ 时是否创建了 Active Directory 对象?”中提到了 AD 对象?
【解决方案2】:

问题已解决。问题出在我们的应用程序创建的私有队列上。这就解释了为什么我们没有看到创建任何 AD 对象。使用域管理员凭据,我们尝试使用 MMC 管理单元修改私有队列的权限。我们收到错误并且无法进行所需的更改,因为域管理员不在该队列的 ACL 上。我们找到了解决该问题的方法。我们创建了一个新的临时私有队列,并为我们的应用程序所需的用户帐户分配了完全控制权。我们在 \system32\msmq\storage\lqs 目录中找到了新创建的私有队列配置文件。我们打开文件并复制了整个安全线。然后我们打开我们试图修复的私有队列的配置文件,并将安全行粘贴到该文件的同一行上。我们保存了配置文件。我们重新启动了 MSMQ 服务,然后启动了我们的应用程序服务。该应用程序现在可以正常运行。感谢大家的帮助!

【讨论】:

    【解决方案3】:

    如果您没有任何需要保存的消息或日志历史记录,我建议您卸载并重新安装 MSMQ。

    您是否使用尝试发送消息的帐户直接登录服务器?这是建立消息队列证书所必需的,这是 MSMQ 的一个鲜为人知且文档记录不充分的领域。

    【讨论】:

    • 谢谢!我们会尝试的。我认为我们从未使用该帐户登录到服务器控制台。
    【解决方案4】:

    我们还发现了另一种更简单的方法来重置私有队列的权限。我们没有修改私有队列配置文件,而是将私有队列的所有权作为域管理员,将完全权限分配给我们的应用程序所需的用户帐户,并将所有权转移给同一用户。这会将私有队列恢复到服务器移动之前的状态。

    【讨论】:

    • 最好将这个答案和您发布的另一个答案合并为一个单个答案,并标记最终版本已接受,这样未来的访问者就可以清楚地知道什么决议是。不要忽略问题和答案下的edit 链接。
    猜你喜欢
    • 2016-01-16
    • 2012-04-18
    • 2011-03-08
    • 2013-10-30
    • 2011-01-13
    • 1970-01-01
    • 2014-02-07
    • 2020-01-11
    • 2011-03-12
    相关资源
    最近更新 更多