{"id":2582,"date":"2026-05-18T14:33:48","date_gmt":"2026-05-18T14:33:48","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=2582"},"modified":"2026-05-18T14:51:59","modified_gmt":"2026-05-18T14:51:59","slug":"eliminacion-restos-microsoft-dpm-desinstalacion-incompleta","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/eliminacion-restos-microsoft-dpm-desinstalacion-incompleta\/","title":{"rendered":"Eliminaci\u00f3n manual de restos de Microsoft DPM tras una desinstalaci\u00f3n incompleta"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Durante la retirada de un entorno de copias de seguridad basado en Microsoft System Center Data Protection Manager (DPM), puede ocurrir que el asistente de desinstalaci\u00f3n no consiga eliminar correctamente todos los componentes asociados: bases de datos, trabajos de SQL Server, grupos locales, almacenamiento o servicios vinculados.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">En uno de nuestros \u00faltimos procesos de retirada de infraestructura nos encontramos con varios errores t\u00edpicos de desinstalaci\u00f3n parcial de DPM sobre Windows Server 2022 y SQL Server 2017.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">S\u00edntomas habituales tras desinstalar DPM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El desinstalador puede mostrar mensajes similares a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No se pudo eliminar la base de datos <code>DPMDB<\/code><\/li>\n\n\n\n<li>No se pudieron eliminar trabajos SQL (<code>SQL Agent Jobs<\/code>)<\/li>\n\n\n\n<li>Persisten grupos <code>AutoRecoverableSnapShotReaders_*<\/code><\/li>\n\n\n\n<li>No se eliminan componentes de Reporting Services<\/li>\n\n\n\n<li>Fallos relacionados con <code>MICROSOFT$DPM$Acct<\/code><\/li>\n\n\n\n<li>Servicios SQL que ya no arrancan<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En nuestro caso, adem\u00e1s, la instancia SQL dej\u00f3 de iniciar correctamente tras la desinstalaci\u00f3n parcial debido a un problema de inicio de sesi\u00f3n del servicio asociado a la cuenta administrada de DPM.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Identificaci\u00f3n de la instancia SQL utilizada por DPM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Desde <code>services.msc<\/code> localizamos la instancia:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL Server (MSDPMINSTANCE)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n es habitual encontrar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SQL Server Agent<\/li>\n\n\n\n<li>SQL Browser<\/li>\n\n\n\n<li>Reporting Services<\/li>\n\n\n\n<li>SQL VSS Writer<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Recuperar temporalmente el acceso a la instancia SQL<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En nuestro caso el servicio SQL no arrancaba debido a un error de inicio de sesi\u00f3n de la cuenta administrada <code>MICROSOFT$DPM$Acct<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n temporal consisti\u00f3 en:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Abrir propiedades del servicio <code>SQL Server (MSDPMINSTANCE)<\/code><\/li>\n\n\n\n<li>Pesta\u00f1a \u201cIniciar sesi\u00f3n\u201d<\/li>\n\n\n\n<li>Cambiar temporalmente la cuenta del servicio a:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Sistema local<\/code><\/li>\n\n\n\n<li>o <code>Servicio de red<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Reiniciar el servicio<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez arrancado correctamente, pudimos acceder mediante <code>sqlcmd<\/code> usando autenticaci\u00f3n integrada de Windows.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comprobaci\u00f3n de bases de datos existentes<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsqlcmd -E -S localhost\\MSDPMINSTANCE -Q &quot;SELECT name FROM sys.databases&quot;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">La salida mostraba:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nmaster\ntempdb\nmodel\nmsdb\nReportServer$MSDPMINSTANCE\nReportServer$MSDPMINSTANCETempDB\nDPMDB\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n manual de la base de datos DPMDB<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsqlcmd -E -S localhost\\MSDPMINSTANCE -Q &quot;ALTER DATABASE DPMDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE DPMDB&quot;\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Limpieza de trabajos hu\u00e9rfanos de SQL Agent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Listado de jobs:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsqlcmd -E -S localhost\\MSDPMINSTANCE -Q &quot;SELECT name FROM msdb.dbo.sysjobs&quot;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">En este caso aparec\u00edan varios jobs identificados \u00fanicamente por GUID.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eliminaci\u00f3n individual:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsqlcmd -E -S localhost\\MSDPMINSTANCE -Q &quot;EXEC msdb.dbo.sp_delete_job @job_name=&#039;GUID_DEL_JOB&#039;&quot;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Verificaci\u00f3n posterior:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsqlcmd -E -S localhost\\MSDPMINSTANCE -Q &quot;SELECT name FROM msdb.dbo.sysjobs&quot;\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de categor\u00edas DPM en SQL Agent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Listado:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsqlcmd -E -S localhost\\MSDPMINSTANCE -Q &quot;SELECT name FROM msdb.dbo.syscategories WHERE name LIKE &#039;DPM%&#039;&quot;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Eliminaci\u00f3n:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsqlcmd -E -S localhost\\MSDPMINSTANCE -Q &quot;EXEC msdb.dbo.sp_delete_category @class=&#039;JOB&#039;, @name=&#039;DPM_XXXX-XXXX-XXXX-XXXX-XXXX000XXXXX&#039;&quot;\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Limpieza restante recomendada<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de SQL, todav\u00eda pueden quedar restos manuales.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Grupos locales<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Eliminar grupos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>AutoRecoverableSnapShotReaders_*<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Desde:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Administraci\u00f3n de equipos<\/li>\n\n\n\n<li>Usuarios y grupos locales<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Usuarios COM distribuidos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Eliminar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>MICROSOFT$DPM$Acct<\/code><\/li>\n\n\n\n<li>Equipos protegidos antiguos<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Discos de almacenamiento DPM<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El desinstalador normalmente no elimina autom\u00e1ticamente el almacenamiento utilizado por DPM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de formatear o eliminar discos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>verificar que no contienen otros datos<\/li>\n\n\n\n<li>comprobar que no existen retenciones pendientes<\/li>\n\n\n\n<li>validar que no haya otros servidores DPM utilizando esos vol\u00famenes<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Para terminar&#8230;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque la desinstalaci\u00f3n de DPM puede parecer sencilla inicialmente, en entornos reales es relativamente frecuente encontrar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>instancias SQL hu\u00e9rfanas<\/li>\n\n\n\n<li>trabajos de SQL Agent residuales<\/li>\n\n\n\n<li>Reporting Services incompletos<\/li>\n\n\n\n<li>cuentas administradas inv\u00e1lidas<\/li>\n\n\n\n<li>almacenamiento no liberado<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Realizar una limpieza controlada permite:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>evitar errores posteriores en Windows<\/li>\n\n\n\n<li>liberar correctamente recursos<\/li>\n\n\n\n<li>simplificar futuras reutilizaciones del servidor<\/li>\n\n\n\n<li>y reducir alertas innecesarias en monitorizaci\u00f3n y eventos del sistema.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"793\" height=\"323\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/05\/image.png\" alt=\"\" class=\"wp-image-2584\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/05\/image.png 793w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/05\/image-300x122.png 300w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2026\/05\/image-768x313.png 768w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Proceso real de limpieza manual de un entorno Microsoft DPM tras una desinstalaci\u00f3n incompleta sobre Windows Server y SQL Server. Se detallan errores habituales relacionados con DPMDB, SQL Agent, cuentas administradas, Reporting Services y almacenamiento residual, incluyendo comandos pr\u00e1cticos para recuperar acceso a la instancia SQL y eliminar componentes hu\u00e9rfanos de forma controlada.<\/p>\n","protected":false},"author":1,"featured_media":1944,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[1060,559,734,1062,1061,1067,1055,1057,1064,123,1056,178,1066,1059,1058,1063,101,1065],"class_list":["post-2582","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bases-de-datos","tag-administracion-de-sistemas","tag-backup","tag-data-protection-manager","tag-dpmdb","tag-infraestructura-it","tag-mantenimiento-servidores","tag-microsoft-dpm","tag-microsoft-sql-server","tag-microsoft-system-center","tag-powershell","tag-reporting-services","tag-sql-server","tag-sql-server-2017","tag-sqlcmd","tag-sysadmin","tag-troubleshooting","tag-windows-server","tag-windows-server-2022"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=2582"}],"version-history":[{"count":2,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2582\/revisions"}],"predecessor-version":[{"id":2586,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2582\/revisions\/2586"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/1944"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=2582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=2582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=2582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}