レジストリ キーへの書き込みができないため、Message Queuing サービスを開始できません。

Microsoft.MSMQ.6.3.Rule.Alert.Event2001 (Rule)

Knowledge Base article:

概要

レジストリ キーへの書き込みができないため、Message Queuing サービスを開始できません。

原因

MSMQ サービスが構成情報をレジストリに書き込めないため、MSMQ サービスを開始できません。これは、レジストリが破損しているか、Message Queuingのインストールが適切に行われなかった可能性があることを示しています。

解決方法

Message Queuingのレジストリ値の削除とMessage Queuingの再インストール

注意: 次の手順を実行すると、レジストリに保存されている以前のMessage Queuing エントリが消去されます。

これらの手順を実行するには、Administrators のメンバーであるか、適切な権限を委任されている必要があります。

レジストリ値を削除する

レジストリ値を削除するには:

注意: レジストリを誤って編集すると、システムに重大な障害をもたらす可能性があります。レジストリを変更する前に、重要なデータのバックアップを作成するようにしてください。

•

レジストリ エディターを開きます。レジストリ エディターを開くには、[スタート] をクリックします。[ファイル名を指定して実行] をクリックします。[名前] ボックスに「regedit」と入力し、Enter キーを押します。

•

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ に移動します。

•

MSMQ キーの下のすべてのレジストリ キーを削除します。

Message Queuingのアンインストールと再インストール (Windows XP)

Windows XP でMessage Queuingをアンインストールしてから、再インストールするには:

•

左ウィンドウで、[Windows の機能の有効化または無効化] をクリックします。

•

[Microsoft Message Queuing (MSMQ) サーバー] チェック ボックスをオフにしてから、[削除] をクリックします。

•

手順 1 と 2 を繰り返します。

•

[Windows の機能の有効化または無効化] セクションで、インストールするMessage Queuing コンポーネントを選択します。

Message Queuingのアンインストールと再インストール (Windows Server 2003)

Windows Server 2003 でMessage Queuingをアンインストールしてから、再インストールするには:

•

サーバー マネージャーを開きます。サーバー マネージャーを開くには、[スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャー] をクリックします。

•

コンソール ツリーで、[機能] をクリックします。

•

詳細ウィンドウの [機能の概要] セクションで、[機能の削除] をクリックします。

•

機能の削除ウィザードで、[Message Queuing] チェック ボックスをオフにしてから、[削除] をクリックします。

•

Message Queuingが削除されたら、サーバー マネージャーで [機能の追加] をクリックします。

•

機能の追加ウィザードで、インストールするMessage Queuing コンポーネントを選択してから、[インストール] をクリックします。

Element properties:

TargetMicrosoft.MSMQ.6.3.Servers
CategoryAvailabilityHealth
EnabledFalse
Event_ID2001
Event Source$Target/Property[Type="Microsoft.MSMQ.6.3.ServerRole"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
レジストリ キーへの書き込みができないため、Message Queuing サービスを開始できません。
{0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.MSMQ.6.3.Rule.Alert.Event2001" 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>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="Microsoft.MSMQ.6.3.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2001</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.6.3.Rule.Alert.Event2001.AlertName"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>