El servicio de Message Queue no se puede iniciar debido a que no es posible escribir una clave de registro.

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

Knowledge Base article:

Resumen

El servicio de Message Queue no se puede iniciar debido a que no es posible escribir una clave de registro.

Causas

El servicio de MSMQ no se puede iniciar porque no puede escribir la información de configuración en el registro. Esto puede indicar que el registro está dañado o que Message Queue no se instaló de manera apropiada.

Soluciones

Elimine los valores del Registro de Message Queue Server y vuelva a instalar Message Queue Server.

Nota: El siguiente procedimiento borrará las entradas anteriores de Message Queue Server que estén almacenadas en el Registro.

Para llevar a cabo estos procedimientos, debe ser miembro de Administradores o tener delegada la autoridad adecuada.

Eliminar valores de Registro

Para eliminar valores de registro, realice lo siguiente:

Precaución: La edición incorrecta del Registro puede dañar gravemente el sistema. Antes de realizar cambios en el Registro, se recomienda hacer una copia de seguridad de los datos de valor.

Abra el Editor del Registro. Para abrir el Editor del Registro, haga clic en Inicio. Haga clic en Ejecutar. En la casilla Abrir, escriba regedit y presione ENTER.

Busque HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ.

Elimine todas las claves de registro debajo de la clave de MSMQ.

Desinstale y vuelva a instalar Message Queue Server (Windows XP)

Para desinstalar Message Queue Server y volver a instalarlo en Windows XP, realice lo siguiente:

En el panel izquierdo, haga clic en Activar o Desactivar las características de Windows.

Desactive la casilla Microsoft Message Queue (MSMQ) Server y haga clic en Quitar.

Repita los pasos 1 y 2.

En la sección Activar o desactivar las características de Windows, seleccione los componentes de Message Queue Server que desea instalar.

Desinstale y vuelva a instalar Message Queue Server (Windows Server 2016 y posterior)

Para desinstalar Message Queue Server y volver a instalarlo en Windows Server 2016 y posterior, realice lo siguiente:

Abra el Administrador del servidor: Para abrir el Administrador del servidor, haga clic en Inicio, luego en Herramientas administrativas y, a continuación, en Administrador del servidor.

En el árbol de consola, haga clic en Características.

En el panel de detalles, en la sección Resumen de características, haga clic en Eliminar características.

En el Asistente para quitar características, desactive la casilla Message Queue Server y haga clic en Quitar.

Una vez que se haya eliminado Message Queue Server, en el Administrador del servidor, haga clic en Agregar características.

En el Asistente para agregar características, seleccione los componentes de Message Queue Server que desea instalar y haga clic en Instalar.

Element properties:

TargetMicrosoft.MSMQ.10.0.Servers
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
El servicio de Message Queue no se puede iniciar debido a que no es posible escribir una clave de registro.
{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.10.0.Rule.Alert.Event2001" Enabled="false" Target="Microsoft.MSMQ.10.0.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>EventSourceName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="Microsoft.MSMQ.10.0.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.10.0.Rule.Alert.Event2001.AlertName"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>