訊息佇列無法存取 Active Directory 且無法計算傳送至佇列的訊息路由路徑。訊息會在傳出佇列中等待,直到 Active Directory 連線還原。
訊息佇列無法存取 Active Directory 且無法計算傳送至佇列的訊息路由路徑。訊息會在傳出佇列中等待,直到 Active Directory 連線還原。
訊息佇列無法加入電腦網域或 MSMQ 路由因網域連線性問題而失敗。此錯誤可能是由下列其中一項狀況所造成:
Active Directory 網域服務 (AD DS) 中的過期物件會使訊息佇列無法加入網域。
電腦沒有連線能力,因此無法加入網域。
需要適當的權限才能建立和存取物件。
若要執行這些程序,您必須具備 Administrators 的成員資格,或者必須已被委派適當的權限。
AD DS 中的過期物件會使訊息佇列無法加入網域
確認是否有過期的電腦物件:
按一下 [開始],指向 [系統管理工具],以滑鼠右鍵按一下 [Active Directory 使用者和電腦],然後按一下 [以系統管理員身分執行]。
在 [檢視] 功能表中,確定已選取 [將使用者、連絡人、群組和電腦作為容器],且已選取 [進階功能]。
瀏覽至特定電腦。檢查該電腦底下是否有訊息佇列物件。
如果有訊息佇列物件,且該特定電腦並未安裝訊息佇列和 Active Directory 整合,則這些物件已過期。
如果您確定該電腦有過期物件,則請參閱<移除過期的 Active Directory 物件>一節。
電腦沒有連線能力,因此無法加入網域。
如果電腦沒有網路或網域連線能力,則請參閱<連絡 Microsoft>一節
需要適當的權限才能建立和存取物件
確認安裝訊息佇列的使用者是網域使用者,且為本機系統管理員群組中的成員:
開啟電腦管理嵌入式管理單元。若要開啟 [電腦管理],請按一下 [開始]。在搜尋方塊中輸入 compmgmt.msc,然後按下 ENTER。
在主控台樹狀目錄中展開 [系統工具],然後展開 [本機使用者和群組]。
在詳細資料窗格中,按兩下 [Administrators],然後確認該使用者為此群組中的成員。
如果您確認該使用者沒有適當的權限,則請參閱<授與適當的權限>一節。
"
若要解決此問題,請針對<原因>一節中所識別出的原因,使用對應的解決方式。在執行解決方式之後,請查看<驗證>一節以確認功能是否正常運作
原因 | 解決方式 |
Active Directory 網域服務中有過期的物件 | |
尚未授與適當的權限 | |
電腦沒有連線能力或尚未加入網域 |
移除過期的 Active Directory 物件
過期物件可能會導致 MSMQ 服務無法正確運作。刪除過期物件也許可以解決此問題。不過,刪除 Active Directory 網域服務 (AD DS) 中的電腦物件可能會導致用戶端電腦出現問題。刪除電腦物件之前,請確定在用戶端電腦中執行的服務不會受到影響。在此情況下,刪除訊息佇列 Active Directory 物件也會一併刪除該電腦中的公用佇列。
您必須在遠端伺服器管理下的 [角色管理工具] 中安裝 Active Directory 服務工具。
若要執行這些程序,您必須具備 Administrators 的成員資格,或者必須已被委派適當的權限。
確認 Active Directory 服務和控制元件已安裝
確認 Active Directory 服務和控制元件已正確安裝:
按一下 [開始],指向 [系統管理工具],以滑鼠右鍵按一下 [Active Directory 使用者和電腦],然後按一下 [以系統管理員身分執行]。
確認下列 Active Directory 工具已顯示於清單中:
Active Directory 網域及信任
Active Directory 站台及服務
Active Directory 使用者和電腦
刪除過期的電腦物件
刪除過期的電腦物件:
按一下 [開始],指向 [系統管理工具],以滑鼠右鍵按一下 [Active Directory 使用者和電腦],然後按一下 [以系統管理員身分執行]。
在 [檢視] 功能表中,確定已選取 [將使用者、連絡人、群組和電腦作為容器],且已選取 [進階功能]。
瀏覽至特定電腦。檢查該電腦底下是否有訊息佇列物件。
如果有訊息佇列物件,且該特定電腦並未安裝訊息佇列和 Active Directory 整合,則這些物件已過期。刪除特定的訊息佇列 Active Directory 物件,然後重新啟動 MSMQ 服務,或者視需要重新啟動電腦。
授與適當的權限
如果執行 Active Directory 的帳戶沒有適當的權限,則訊息佇列可能無法建立 Active Directory。請檢查下列各項:
確認安裝訊息佇列的使用者是網域使用者,且為本機系統管理員群組中的成員。
確認已安裝正確的 Active Directory 服務工具。
如果帳戶是網域使用者,請連絡網域系統管理員來確認權限。
如果您具有適當的權限,則請授與權限給訊息佇列使用者帳戶,以便其修改子物件。
若要執行這些程序,您必須具備 Administrators 的成員資格,或者必須已被委派適當的權限。
確認安裝訊息佇列的使用者是網域使用者,且為本機系統管理員群組中的成員
確認安裝訊息佇列的使用者是網域使用者,且為本機系統管理員群組中的成員:
開啟 [電腦管理] 主控台。若要開啟 [電腦管理],請按一下 [開始]。在搜尋方塊中輸入 compmgmt.msc,然後按下 ENTER。
在主控台樹狀目錄中,展開 [系統工具] 和 [本機使用者和群組],然後按一下 [群組]。
在詳細資料窗格中,按兩下 [系統管理員]。
在 [成員] 區段中,確認該使用者為此群組的成員。如果使用者不是系統管理員群組中的成員,則請將該使用者新增至群組。
確認已安裝正確的 Active Directory 服務工具
確認已安裝正確的 Active Directory 服務工具:
按一下 [開始],指向 [系統管理工具],以滑鼠右鍵按一下 [Active Directory 使用者和電腦],然後按一下 [以系統管理員身分執行]。
確認下列 Active Directory 工具已顯示於清單中:
Active Directory 網域及信任
Active Directory 站台及服務
Active Directory 使用者和電腦
授與權限給訊息佇列使用者帳戶,以便其修改子物件
如果您具有適當的權限,請使用以下程序授與權限給訊息佇列使用者帳戶,以便其修改和刪除子物件。您必須在遠端伺服器管理功能下的 [角色管理工具] 中安裝 Active Directory 服務和控制元件。
授與權限給訊息佇列使用者帳戶:
按一下 [開始],指向 [系統管理工具],以滑鼠右鍵按一下 [Active Directory 使用者和電腦],然後按一下 [以系統管理員身分執行]。
在 [檢視] 功能表中,確定已選取 [將使用者、連絡人、群組和電腦作為容器],且已選取 [進階功能]。
以滑鼠右鍵按一下電腦名稱,然後按一下 [內容]。
在 [安全性] 索引標籤中,確認使用者所屬的群組具有建立和刪除子物件的權限。
如需有關正確存取控制設定的詳細資訊,請參閱 Active Directory 文件。
連絡 Microsoft
如果可以,請透過提供事件中的錯誤描述,洽詢網域系統管理員。
如果這項錯誤仍持續發生,請記下事件訊息中的所有詳細資料,然後連絡 Microsoft 客戶服務及支援 (CSS)。如需如何連絡 CSS 的相關資訊,請參閱「企業支援」( http://go.microsoft.com/fwlink/?LinkId=52267)。
驗證
如果這項錯誤仍持續發生,請記下事件訊息中的所有詳細資料,然後連絡 Microsoft 客戶服務及支援 (CSS)。如需如何連絡 CSS 的相關資訊,請參閱 Microsoft 服務 ( http://go.microsoft.com/fwlink/?LinkId=52267) 中的支援選項。
如需詳細資訊,請參閱事件識別碼 2188 ( http://technet.microsoft.com/en-us/library/dd337487(WS.10).aspx)
Target | Microsoft.MSMQ.6.3.Servers | ||
Category | AvailabilityHealth | ||
Enabled | False | ||
Event_ID | 2188 | ||
Event Source | $Target/Property[Type="Microsoft.MSMQ.6.3.ServerRole"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.MSMQ.6.3.Rule.Alert.Event2188" Enabled="false" Target="Microsoft.MSMQ.6.3.Servers" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2188</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.MSMQ.6.3.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.6.3.Rule.Alert.Event2188.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>