Puntos clave:
Los scripts de remediación permiten automatizar el diagnóstico y la resolución de configuraciones de DNS incorrectas, fallos en los parches y cifrado de BitLocker desactivado.
- Usar PowerShell para problemas de DNS: resuelve cualquier problema de DNS y registra los resultados de la resolución con los comandos de PowerShell que verás más abajo.
- Usar comandos por lotes para problemas de DNS: si prefieres no usar PowerShell, puedes recurrir a scripts por lotes para corregir rápidamente los errores de DNS.
- Usar PowerShell para corregir fallos en los parches: sigue el script de más abajo para usar el módulo PSWindowsUpdate adecuado e identificar, instalar o reintentar las actualizaciones o parches que falten.
- Usar comandos por lotes para solucionar problemas de actualización: utiliza el comando por lotes de más abajo para restablecer rápidamente los componentes de actualización y buscar actualizaciones pendientes o no aplicadas. Sin embargo, a diferencia de PowerShell, un comando por lotes no puede instalar automáticamente las actualizaciones nuevas.
- Recuperación de BitLocker con scripts de remediación en PowerShell: usa el script de más abajo para automatizar la comprobación del estado del cifrado, la activación de BitLocker si está desactivado y la restauración de las claves de recuperación, además de registrar los datos de cifrado para mantener la seguridad de endpoints.
- Scripts del Registro para DNS, parches y BitLocker: puedes editar el Registro de Windows para corregir la configuración de DNS, desactivar los aplazamientos de actualizaciones y activar BitLocker en dispositivos sin TPM.
- Usar GPO para desplegar scripts: accede a la Consola de administración de directivas de grupo y aprovecha las GPO para automatizar el diagnóstico y la corrección de problemas de DNS, parches y BitLocker.
Los fallos de DNS, los parches de Windows que no se instalan y las configuraciones incorrectas de BitLocker pueden debilitar la seguridad de un entorno. Automatizar la resolución de estos problemas mediante scripts mejora el tiempo medio de reparación (MTTR) y reduce tanto el número de tickets de soporte como la duración de las interrupciones. En esta guía repasamos los scripts de remediación que los administradores pueden desplegar con un software de monitorización y gestión remota (RMM) para resolver incidencias.
Si prefieres ver el contenido en vídeo, echa un vistazo a Cómo crear scripts de remediación RMM personalizados para corregir automáticamente problemas de DNS, parches y BitLocker.
Scripts de remediación para resolver problemas de DNS, parches y BitLocker
Desplegar scripts desde una plataforma RMM reduce las correcciones manuales y repetitivas, y permite a los administradores gestionar los endpoints de forma centralizada y automática. Así se consigue una prestación del servicio más rápida y una remediación inmediata de las incidencias, manteniendo los endpoints en cumplimiento con los requisitos de la organización o del sector.
📌 Requisitos previos:
- Acceso a una plataforma RMM.
- PowerShell 5.1 o posterior en los endpoints de destino.
- Acceso a una cuenta de administrador.
- Funciones de BitLocker y Windows Update instaladas.
- Acceso a directivas de grupo para el despliegue centralizado.
📌 Estrategias de despliegue recomendadas:
💡 Nota: los scripts de esta guía funcionan en plataformas RMM que permiten desplegar PowerShell remoto y scripts por lotes. Para simplificar, usaremos NinjeOne RMM como herramienta de despliegue de nuestros scripts de remediación.
⚠️ Importante: realiza estos pasos para los métodos 1 a 6 antes de continuar:
La plataforma RMM de NinjaOne admite los lenguajes JavaScript, PowerShell, Batch, ShellScript y VBS Script. Así puedes subir scripts personalizados a la biblioteca de scripts de NinjaOne:
- Abre NinjaOne RMM y ve a:
Administration > Library > Automation.
- Dentro de Automation, pulsa Add y selecciona New Script.
- Rellena los campos y parámetros necesarios para tu script personalizado.
- Introduce los scripts que aparecen en esta guía para guardarlos como script de automatización.
- Comprueba que el lenguaje seleccionado coincide con el del script.
- Una vez guardado, puedes usar las herramientas integradas de NinjaOne para elegir los dispositivos de destino de la automatización marcando la casilla situada junto a ellos.
Método 1: usar scripts de PowerShell para remediar automáticamente problemas de DNS
📌 Casos de uso: aprovecha los scripts de PowerShell para vaciar la caché DNS y sustituir los registros de nombres de dominio y direcciones IP por otros nuevos. Los administradores también pueden usar PowerShell para reiniciar el servicio de cliente DNS y restablecer la conexión con los servidores DNS.
⚠️ Importante: en un entorno unido a un dominio con configuraciones de DNS mediante GPO, el reinicio del DNS solo surte efecto de forma temporal. (Consulta ⚠️ Aspectos a tener en cuenta).
Script de remediación para vaciar la caché DNS:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("8.8.8.8","8.8.4.4")
Clear-DnsClientCache
💡 Nota: no todos los dispositivos usan «Ethernet» como nombre predeterminado del adaptador de red, lo que puede provocar errores en despliegues masivos. Puedes usar comodines para desplegar los scripts en dispositivos con nombres de adaptador de red distintos.
Get-NetAdapter | Where-Object { $_.Status -eq "Up" } | ForEach-Object {
Set-DnsClientServerAddress -InterfaceAlias $_.Name -ServerAddresses ("8.8.8.8", "8.8.4.4")
}
Clear-DnsClientCache
Script de PowerShell para reiniciar el servicio de cliente DNS:
Los administradores pueden reiniciar el cliente DNS desde Services.msc, lo que vacía la caché DNS en memoria y reinicia el solucionador de DNS.
Restart-Service -Name dnscache
Script para registrar los resultados de las pruebas de resolución
El siguiente script comprueba si la resolución DNS funciona y registra los errores en el Visor de eventos de Windows si falla.
$test = Test-Connection google.com -Count 2 -Quiet
if (-not $test) {
Write-EventLog -LogName Application -Source "DNSFix" -EventID 3001 -EntryType Warning -Message "DNS resolution failed after fix."
}
💡 Consejo: los administradores pueden programar estos scripts en las plataformas RMM para realizar un mantenimiento periódico del DNS. Si tu RMM ofrece alertas en tiempo real, puedes activar automáticamente estos scripts de remediación de DNS a partir de alertas y registros.
Método 2: aprovechar comandos por lotes para corregir el DNS desde CMD
📌 Caso de uso: usa el siguiente script por lotes para vaciar la caché DNS, reiniciar el cliente, establecer un servidor y comprobar la remediación de una sola vez.
Remediación básica de problemas de DNS con un script por lotes:
@echo off
ipconfig /flushdns
net stop dnscache
net start dnscache
netsh interface ip set dns "Ethernet" static 8.8.8.8
if not exist C:\Logs mkdir C:\Logs
echo [%DATE% %TIME%] DNS test >> C:\Logs\dns_fix_result.txt
nslookup google.com >> C:\Logs\dns_fix_result.txt
⚠️ Importante: un nombre fijo como «Ethernet» puede hacer que el script falle si no existe ningún adaptador que coincida, ya que netsh exige nombres exactos. (Consulta ⚠️ Aspectos a tener en cuenta).
Método 3: scripts de PowerShell para resolver fallos en los parches
📌 Casos de uso: aprovecha los scripts de PowerShell para forzar las actualizaciones pendientes, restablecer los componentes de actualización y registrar los resultados para diagnosticar errores.
Forzar una nueva comprobación e instalar las actualizaciones que faltan:
Este script instala e importa primero el módulo PSWindowsUpdate necesario, lo que da a los administradores un mayor control sobre la gestión de actualizaciones. Después, busca e instala las actualizaciones pendientes para que los equipos de destino queden al día.
Install-Module PSWindowsUpdate -Force -AllowClobber
Import-Module PSWindowsUpdate
Get-WindowsUpdate -AcceptAll -Install -AutoReboot
Script de PowerShell para restablecer los componentes de Windows Update:
El siguiente script detiene el servicio Windows Update (wuauserv). A continuación, elimina la carpeta SoftwareDistribution, que contiene actualizaciones en caché y archivos temporales que pueden provocar corrupción o actualizaciones bloqueadas. Usa este script para resolver fallos de actualización tras una descarga corrupta o para remediar análisis de actualizaciones lentos o bloqueados.
Stop-Service wuauserv
Remove-Item -Path "C:\Windows\SoftwareDistribution" -Recurse -Force
Start-Service wuauserv
Generar un resumen de registro de actualizaciones con scripts:
Usa el script siguiente para recopilar datos de diagnóstico después de las actualizaciones y centralizar el registro, lo que facilita la monitorización de errores.
Get-WindowsUpdateLog -LogPath "C:\Logs\WindowsUpdateSummary.txt"
⚠️ Importante: comprueba que C:\Logs existe antes de asignarlo como ruta del registro. (Consulta ⚠️ Aspectos a tener en cuenta).
Método 4: ejecutar comandos por lotes en CMD para solucionar problemas de actualización
📌 Caso de uso: desde CMD puedes ejecutar comandos por lotes que restablecen los componentes de actualización y lanzan un análisis.
Script por lotes básico para corregir las actualizaciones:
El siguiente comando por lotes permite restablecer rápidamente los componentes de actualización y buscar actualizaciones pendientes o no aplicadas. Sin embargo, a diferencia del método 3, CMD no puede instalar actualizaciones automáticamente: los usuarios tendrán que actualizar sus sistemas Windows manualmente.
@echo off
net stop wuauserv
rd /s /q C:\Windows\SoftwareDistribution
net start wuauserv
wuauclt /detectnow
💡 Consejo: configura una condición de política en tu RMM para lanzar este script cuando la última actualización instalada supere un número determinado de días. Así, los endpoints gestionados buscarán actualizaciones de forma periódica y constante.
Método 5: recuperación de BitLocker con scripts de remediación en PowerShell
Tener BitLocker desactivado en los endpoints hace que el dispositivo deje de cumplir las normas y que sus datos queden expuestos a amenazas. Por eso, garantizar que la protección de BitLocker esté activada de forma coherente en todos los endpoints gestionados refuerza la seguridad de la organización.
📌 Casos de uso: los administradores pueden usar scripts en su RMM para verificar el estado de BitLocker, crear copias de seguridad de las claves de recuperación, comprobar el estado del cifrado y registrarlo.
📌 Requisito previo: dispositivos con Trusted Platform Module (TPM)
Scripts para comprobar y activar BitLocker si no está habilitado:
Este script de PowerShell permite a los administradores obtener el objeto de volumen de BitLocker de una unidad concreta, por ejemplo C:. Además, activa BitLocker automáticamente si está desactivado, sin necesidad de que intervenga el usuario final.
$bitlocker = Get-BitLockerVolume -MountPoint "C:"
if ($bitlocker.ProtectionStatus -eq "Off") {
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -TpmProtector
}
💡 NOTA: -TpmProtector requiere un TPM disponible y listo en el dispositivo de destino. Aplicarlo en dispositivos sin TPM provocará un error.
Exportar la clave de recuperación al controlador de dominio o guardarla localmente:
El script siguiente busca el protector de contraseña de recuperación en un volumen de BitLocker concreto. Después, crea una copia de seguridad de la clave de recuperación en el controlador de dominio o en el almacenamiento predeterminado. Así se garantiza que la recuperación de BitLocker sea posible en caso de restablecimiento del TPM o de corrupción del SO.
Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId (
$bitlocker.KeyProtector | Where-Object { $_.KeyProtectorType -eq 'RecoveryPassword' }
).KeyProtectorId
Comprobar y registrar el estado de cifrado de BitLocker:
Los administradores pueden usar el script siguiente para crear un registro sencillo que sirva como prueba local del estado de cifrado de un dispositivo.
$bitlocker | Select-Object MountPoint, VolumeType, ProtectionStatus, EncryptionPercentage | Out-File "C:\Logs\bitlocker_status.txt"
💡 Consejo: los administradores pueden configurar este script para que se ejecute automáticamente de forma programada o cuando se detecte que el estado de protección de BitLocker es Off.
Método 6: método del Registro para políticas de DNS, parches o BitLocker
El Registro contiene valores que los administradores pueden configurar para sustituir servidores DNS incorrectos, desactivar los aplazamientos de Windows Update y forzar la activación de BitLocker en dispositivos sin TPM.
⚠️ Advertencia: una configuración incorrecta del Registro puede afectar a la estabilidad del sistema y provocar problemas como fallos de arranque y una bajada importante del rendimiento. (Consulta ⚠️ Aspectos a tener en cuenta).
📌 Casos de uso: aprovecha los scripts de PowerShell para automatizar las configuraciones del Registro y desplegarlas de forma coherente en todos los endpoints con una plataforma RMM.
Asignar un nuevo servidor DNS con scripts de PowerShell:
Este script asigna un servidor DNS estático en todo el sistema y anula cualquier configuración automática de DNS. Así se obliga al sistema a usar el DNS indicado en el Registro; no obstante, las imposiciones de DNS por GPO prevalecerán sobre este cambio.
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "NameServer" -Value "8.8.8.8"
Desactivar los aplazamientos de Windows Update (si los parches están bloqueados):
Puedes activar las actualizaciones automáticas en el Registro estableciendo el valor DWORD NoAutoUpdate en 0. Usa este script en entornos donde la aplicación de parches esté bloqueada por una configuración incorrecta o desactivada de forma predeterminada.
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 0 -Type DWord
Activar BitLocker con scripts del Registro:
Este script activa BitLocker en los dispositivos, incluso en equipos antiguos sin TPM, lo que proporciona un cifrado coherente en todo el entorno.
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\FVE" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\FVE" -Name "EnableBDEWithNoTPM" -Value 1 -Type DWord
💡 Nota: aunque puedes activar BitLocker en dispositivos sin TPM, necesitarás protectores alternativos, como contraseñas de inicio y claves USB.
Método 7: usar GPO para el despliegue centralizado de scripts de remediación
📌 Casos de uso: los administradores pueden desplegar una GPO para configurar de forma centralizada, mediante scripts, la asignación de servidores DNS, la instalación de actualizaciones de Windows y los ajustes de BitLocker.
📌 Requisitos previos:
- Acceso a la Consola de administración de directivas de grupo (gpmc.msc)
- Privilegios de administrador de dominio
⚠️ Importante: prueba las configuraciones en local antes de desplegarlas en todo el entorno. (Consulta ⚠️ Aspectos a tener en cuenta).
- Pulsa Win + R, escribe Notepad y pulsa Intro.
- Elige el script de esta guía que corresponda para corregir tus problemas de DNS, parches o BitLocker.
- Pega el script en el Bloc de notas, pulsa Ctrl + Mayús + S, dale un nombre y añade una extensión.
- Añade .ps1 si es un script de PowerShell (por ejemplo, DNS-powershell.ps1).
- Añade .bat si es un script por lotes (por ejemplo, patching-batch.BAT).
- Pulsa el desplegable que está junto a Tipo y selecciona Todos los archivos.
- Abre la Consola de administración de directivas de grupo.
- Busca tu OU de destino, haz clic derecho sobre ella y elige Crear un GPO en este dominio y vincularlo aquí….
- Haz clic derecho en la GPO que acabas de crear y elige Editar.
- Ve a:
Configuración del equipo > Directivas > Configuración de Windows > Scripts (inicio o apagado)
- Haz doble clic en Inicio, pulsa Agregar y busca y selecciona tu script en el recurso compartido de red.
- Además, si usas scripts .ps1, ve a la ruta siguiente:
Configuración del equipo > Directivas > Plantillas administrativas > Sistema > Scripts
- Establece la directiva Especificar la ejecución de scripts de inicio en Permitir todos los scripts.
💡 Consejo: puedes desplegar el siguiente script de PowerShell en tus endpoints de destino para aplicar las configuraciones al instante:
gpupdate /force
⚠️ Aspectos a tener en cuenta
| Riesgos | Posibles consecuencias | Cómo revertirlo |
| Aplicar configuraciones personalizadas en dispositivos gestionados por GPO | La GPO anula los cambios en las configuraciones impuestas después de una actualización de directivas programada. | Como buena práctica, aplica scripts solo sobre ajustes no impuestos por GPO, salvo que quieras anularlos de forma temporal. |
| Los adaptadores de red no se llaman «Ethernet» de forma predeterminada. | Algunos scripts fijan el nombre del adaptador de red como Ethernet, pero ese nombre no es el predeterminado en todos los adaptadores, lo que hace que el script falle. | Puedes cambiar el nombre de los adaptadores de red de tu entorno para usar un nombre uniforme y mejorar así la eficacia de los scripts con nombres fijos. |
| C:\Logs no existe antes de indicarlo como ruta del registro. | Si no creas C:\Logs antes de asignarlo como ruta del registro, se producirá un error. | Crea la carpeta de destino y comprueba que existe en la ruta indicada antes de asignarla como ruta del registro. |
| Configuraciones incorrectas en el Registro | Configurar mal el Registro puede provocar inestabilidad del sistema y un rendimiento más lento. | Crea una copia de seguridad del Registro de Windows antes de continuar para poder recuperarlo fácilmente si algo se configura mal. |
| Desplegar scripts sin probar en todo el entorno | No todos los entornos son iguales, por lo que los scripts pueden comportarse de forma distinta en cada sistema gestionado. | Prueba las configuraciones en local para validar su eficacia antes de desplegarlas en todo el entorno. |
Aspectos clave al usar scripts de remediación con un RMM
En esta sección veremos los aspectos clave que debes tener presentes al usar scripts para resolver problemas de DNS, parches y BitLocker.
Consideraciones de seguridad
Si usas BitLocker, guarda las claves de recuperación en un Active Directory y, como mínimo, sigue buenas prácticas de almacenamiento local. Además, imponer servidores DNS públicos como 8.8.8.8 solo es adecuado para un uso general, pero no debería emplearse en entornos con requisitos estrictos de cumplimiento.
Registros para auditar y revertir con facilidad
Los registros documentan las configuraciones realizadas por los scripts y anotan los cambios en un archivo de log, lo que facilita la documentación y la validación. Registrar los cambios de forma periódica ayuda a detectar configuraciones erróneas y ofrece una referencia clara para las estrategias de reversión.
Dividir los scripts largos en scripts cortos y modulares
Aunque es fácil combinar scripts que resuelven varios problemas a la vez, conviene separarlos en scripts más pequeños. Así la remediación es más precisa y se reduce el riesgo de configurar mal, por accidente, funciones del sistema que ya funcionaban.
Guía de inicio rápido
NinjaOne ofrece potentes funciones de scripting para crear scripts RMM personalizados que resuelven automáticamente problemas de DNS, parches y BitLocker. Estos son algunos scripts concretos que te pueden ayudar:
Scripts relacionados con el DNS
- Vaciar la caché DNS: script para macOS
- Buscar entradas en la caché DNS: script para localizar registros DNS concretos
- Buscar entradas en la caché DNS en Linux para sistemas Linux
Scripts de parches
- Gestión de parches de Windows con despliegue por anillos
- Suspender BitLocker: script para suspender temporalmente la protección de BitLocker durante la aplicación de parches
- Patch Intelligence AI: anulaciones de aprobación para una gestión de parches inteligente
Scripts relacionados con BitLocker
Script para suspender BitLocker, que puede:
- Suspender la protección de BitLocker hasta el siguiente reinicio
- Reiniciar el equipo tras la suspensión, si así lo eliges
Otros scripts útiles
- Actualizar directivas de grupo (gpupdate) para que las políticas del sistema estén al día
- Activar o desactivar el Firewall de Windows
- Establecer requisitos mínimos de contraseña
La biblioteca de automatización de NinjaOne incluye un amplio conjunto de scripts que puedes personalizar y automatizar para resolver distintas tareas de gestión de sistemas, entre ellas los problemas de DNS, parches y BitLocker.
Solución de problemas habituales al desplegar scripts
Problema n.º 1: los scripts no se ejecutan correctamente al desplegarlos desde el RMM
Un motivo habitual de que los scripts no se ejecuten bien son los permisos insuficientes del agente RMM. Asegúrate de tener acceso de nivel administrador antes de ejecutar cualquier script, especialmente si vas a modificar claves y valores del Registro.
Por otro lado, algunos sistemas bloquean los scripts sin firmar, como los descargados de fuentes no confiables. Puedes permitir temporalmente la ejecución de scripts en la sesión actual añadiendo el siguiente comando a tus scripts de PowerShell:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
Problema n.º 2: BitLocker no se activa después de ejecutar el script
Antes de ejecutar un script, comprueba el estado del TPM del dispositivo de destino abriendo PowerShell con privilegios elevados e introduciendo Get-Tpm. Si hay TPM, revisa si existen GPO de BitLocker impuestas que puedan entrar en conflicto con la configuración. Además, en dispositivos sin TPM puedes usar scripts para activar BitLocker desde el Registro.
Problema n.º 3: los scripts de remediación de parches fallan sin avisar
Para resolverlo, comprueba que el dispositivo tiene acceso a internet y puede comunicarse con el servidor WSUS. Revisa también si hay GPO que bloqueen Windows Update, reinicia el agente de Windows Update y lanza un análisis de actualizaciones.
Servicios de NinjaOne para desplegar scripts de remediación en los endpoints
Con NinjaOne, los MSP pueden poner en marcha y escalar la remediación automática con total transparencia y control. Estos son los servicios que puedes usar para agilizar el despliegue de scripts de remediación para problemas de DNS, parches y BitLocker.
| Servicio de NinjaOne | Definición | Cómo ayuda en el despliegue de scripts |
| Tareas programadas por política | NinjaOne permite programar tareas sin complicaciones, de modo que los scripts se ejecuten automáticamente en los intervalos que definas. | Los administradores pueden programar el despliegue de scripts de remediación de DNS, parches y BitLocker para el mantenimiento periódico. |
| Respuesta automatizada a alertas | Los activadores basados en alertas permiten que el RMM ejecute acciones de remediación cuando aparece una alerta concreta en un endpoint. | Despliega automáticamente scripts de remediación después de que se active una alerta, lo que reduce la intervención manual y el MTTR. |
| Despliegue por plantillas | Los despliegues por plantillas permiten a los administradores dirigirse a grupos de dispositivos concretos y evitar aplicar scripts en dispositivos incompatibles. | Los administradores pueden asignar un script de BitLocker específico a los dispositivos sin TPM y aplicar los scripts estándar a los que sí tienen TPM. |
| Visibilidad del inventario | El inventario completo de NinjaOne ofrece una visión detallada de los endpoints, todo desde el panel de la plataforma. | Consulta la configuración de DNS, el historial de Windows Update y el estado de BitLocker para agilizar los diagnósticos y mejorar el tiempo de respuesta. |
Remedia incidencias a gran escala desplegando scripts con un RMM
Automatizar scripts personalizados con una plataforma RMM permite resolver de forma coherente y a gran escala los fallos de DNS, los problemas con los parches y las configuraciones incorrectas de BitLocker. Puedes usar los scripts modulares que te hemos facilitado para remediar problemas concretos o combinarlos para una implementación más amplia. Despliega los scripts con un RMM, como NinjaOne, para aprovechar los activadores basados en alertas y la programación de scripts, y automatizar así la remediación de incidencias, el despliegue de scripts y la auditoría.
Temas relacionados:
- Cómo gestionar de forma remota el cifrado de disco BitLocker con PowerShell
- Guía para MSP: cómo usar una plataforma RMM
- Domina la gestión de la caché DNS: vaciar el DNS con PowerShell
- Cómo automatizar la gestión de vulnerabilidades
- Domina los scripts automatizados de NinjaOne para optimizar las operaciones de TI