Tema: windows
-
Manejo de errores en PowerShell para scripts de administración: errores terminantes, $ErrorActionPreference y $LASTEXITCODE
PowerShell distingue dos clases de errores en un script: los terminantes, que try/catch puede interceptar, y los no terminantes, que solo $ErrorActionPreference o -ErrorAction pueden convertir en una detención. Una tercera clase, los fallos de ejecutables nativos, no sigue ninguno de esos caminos salvo que se active $PSNativeCommandUseErrorActionPreference (PowerShell 7.4+, experimental en 7.3).
-
Kerberos en Windows: klist, klist purge y setspn -L/-Q para diagnosticar problemas de SPN
Windows expone los tickets Kerberos en cache mediante klist y los nombres principales de servicio (SPN) mediante setspn. Los SPN duplicados y el desfase de reloj entre un cliente y un controlador de dominio son los dos fallos que más a menudo acaban en confusos errores de «no se puede autenticar» en lugar de un mensaje claro de Kerberos.
-
Entradas de arranque UEFI y estado de Secure Boot en Linux y Windows
efibootmgr y bcdedit /enum firmware leen y modifican la lista de entradas de arranque UEFI, que determina qué intenta iniciar el firmware y en qué orden. mokutil --sb-state y Confirm-SecureBootUEFI indican si Secure Boot está activo, algo distinto de la confianza shim/MOK en un módulo de kernel de terceros y condición previa de ella.
-
Registro desde scripts de administración: logger y systemd-cat en Linux, Write-EventLog/New-WinEvent y Start-Transcript en Windows
Cada plataforma ofrece una forma de dejar la salida de un script de administración donde una persona u otra herramienta pueda encontrarla después, distinta de escribir en stdout: logger(1) o systemd-cat hacia el registro del sistema en Linux, el Registro de eventos de Windows mediante Write-EventLog (solo Windows PowerShell 5.1) o New-WinEvent, y Start-Transcript para una captura en bruto de la sesión. Ninguno de ellos debe recibir nunca un secreto.
-
Muestreo de contadores de rendimiento de Windows Server con Get-Counter y exportación a CSV
Get-Counter muestrea rutas de contadores con nombre a un intervalo elegido, de forma continua o con un número fijo de muestras; Export-Counter (solo en Windows PowerShell 5.1) conserva todos los campos en el formato nativo BLG, y relog convierte después una captura a CSV incluso sin el comando Export-Counter original.
-
Archivos de respuesta de Windows (unattend.xml): fases de configuración y dónde los busca Setup
Un archivo de respuesta unattend.xml aporta ajustes a fases de configuración concretas de Windows Setup; windowsPE, generalize, specialize y oobeSystem son las que más intervienen en el aprovisionamiento. Setup lo localiza mediante un orden de búsqueda implícito fijo y lo guarda en caché en %WINDIR%\Panther, y Windows System Image Manager crea estos archivos y puede ocultar, pero no cifrar, las contraseñas de cuentas locales.
-
Windows Event Forwarding: suscripción iniciada por el origen, wecutil y el grupo EventLog Readers
En una suscripción WEF iniciada por el origen, cada equipo de origen obtiene su configuración de un recopilador mediante directiva de grupo y le envía los eventos coincidentes; wecutil administra la suscripción en el recopilador, y para reenviar el registro Security hay que agregar la cuenta NETWORK SERVICE al grupo EventLog Readers en cada origen.
-
Priorizar el Patch Tuesday de octubre de 2026 según las pruebas de explotación y los activos afectados
Un protocolo propuesto de clasificación de parches convierte una publicación extensa en una cola de trabajo por activo. La explotación confirmada, la exposición y las consecuencias para la actividad determinan la urgencia; EPSS ayuda cuando no hay pruebas de explotación.
-
Generalizar una imagen de Windows con Sysprep: /generalize, /oobe, /shutdown y el límite de rearme
Sysprep /generalize elimina de una instalación de Windows la información propia del equipo, como el SID y los dispositivos configurados, para poder implementar la imagen en otros equipos. En Windows 8.1/Server 2012 y posteriores, Sysprep puede ejecutarse hasta 1001 veces por imagen (3 veces en Windows 7/Server 2008 R2), y los fallos de generalización dejan rastro en los registros Panther de System32\Sysprep.
-
Almacenar secretos para scripts desatendidos: credenciales de systemd, DPAPI, llavero de macOS y qué no hacer
Cada sistema operativo ofrece un mecanismo para entregar un secreto a un script sin usar variables de entorno ni argumentos de línea de comandos, que cualquier proceso coexistente o registro puede leer: LoadCredential= de systemd, DPAPI de Windows mediante Export-Clixml o SecretManagement, y el llavero de macOS con security find-generic-password.
-
Retención de logs y presupuesto de disco en un host: journald, logrotate y tamaño del registro de eventos de Windows
`SystemMaxUse` de journald limita el espacio en disco del propio journal, `maxage` y `rotate` de logrotate limitan los archivos rotados en otras ubicaciones, y `wevtutil sl` fija el tamaño máximo de un registro de eventos de Windows. Los tres son ajustes de presupuesto de disco que decide el operador o un agente; cuánto tiempo deben conservarse los registros por motivos legales u organizativos es una decisión de política que este artículo no toma.
-
Códigos de salida de Windows más allá de éxito/fallo: la máscara de bits de robocopy, los códigos del instalador de msiexec y $LASTEXITCODE
robocopy codifica varios hechos independientes (archivos copiados, archivos extra, discrepancias, fallos) en un único número inferior a 8 que debe leerse como máscara de bits, no compararse con cero; msiexec devuelve códigos específicos de Windows Installer, donde 3010 y 1641 significan éxito con reinicio pendiente, no fallo; y $LASTEXITCODE de PowerShell es la única forma fiable de ver el código real de un programa nativo, con reglas distintas según cómo se invocó el script.
-
Windows Shell CVE-2026-96951: verificar la corrección de Windows 11 y conservar la protección de adjuntos
Verificar la actualización acumulativa de la versión exacta de Windows 11, completar el reinicio y conservar los controles de origen de los adjuntos y de SmartScreen. La ausencia de una advertencia no demuestra que un archivo descargado sea seguro.
-
Windows 10 después de octubre de 2026: cobertura ESU para consumidores y organizaciones
La página de ESU para consumidores de Microsoft indica ahora una cobertura hasta el 12 de octubre de 2027. Las organizaciones tienen condiciones anuales de ESU distintas, por lo que deben registrarse por separado el cumplimiento de los requisitos de acceso, el año del programa, la activación y las actualizaciones instaladas en cada dispositivo Windows 10 que se conserve.
-
Por qué NTP sigue ejecutándose dentro de las máquinas virtuales pese a los agentes invitados y los relojes paravirtualizados
Las máquinas virtuales reciben ayuda relacionada con la hora de varias capas (kvm-clock, agentes invitados, servicios de integración de Hyper-V), pero ninguna sustituye a un cliente NTP o chrony dentro del invitado. El artículo explica qué hace realmente cada capa y por qué la sincronización horaria sigue siendo responsabilidad del sistema operativo invitado.
-
Cuentas de servicio en distintas familias de SO: mínimo privilegio para los propios servicios en segundo plano de un agente
Cada SO ofrece una forma de ejecutar un servicio sin inicio de sesión normal y sin contraseña gestionada a mano: usuarios de sistema con shell nologin o DynamicUser= de systemd en Linux, cuentas virtuales y cuentas de servicio administradas de grupo (gMSA) en Windows, y usuarios de daemon en macOS. Elegir la más restrictiva es importante para todo lo que un agente instale para ejecutarse sin supervisión.
-
windows_exporter: instalar el MSI con recolectores habilitados y verificar /metrics en Windows
windows_exporter se distribuye como un MSI que se instala como servicio de Windows y acepta propiedades del instalador para elegir los recolectores habilitados, el puerto de escucha y una excepción en el Firewall de Windows, todo de forma no interactiva con msiexec.
-
Diagnóstico del rendimiento por proceso en Windows: Get-Process, Get-CimInstance y recuento de handles
Get-Process ordena por working set o por tiempo acumulado de CPU; la clase CIM Win32_PerfFormattedData_PerfProc_Process ofrece en cambio un porcentaje de CPU ya calculado como tasa. Un recuento de handles que crece de forma constante es la señal típica de una fuga, y Process Explorer o Process Monitor aportan el detalle que PowerShell no expone.
-
Trampas de cmd.exe y de los scripts batch: momento de evaluación de %ERRORLEVEL%, expansión retardada y escape con el acento circunflejo
Los archivos batch siguen apareciendo en instaladores, tareas programadas heredadas y herramientas de proveedores. %ERRORLEVEL% se expande al analizar la línea y puede leer un valor obsoleto, la expansión retardada cambia ese comportamiento, y el acento circunflejo es el carácter de escape que la mayor parte del código batch generado por agentes escribe mal al primer intento.
-
Agentes de aprovisionamiento de Windows en el primer arranque en la nube: EC2Launch v2, el agente de VM de Azure y cloudbase-init
AWS, Azure y la mayoría de las demás nubes incluyen en la imagen de Windows un pequeño agente que procesa los datos de usuario o los datos personalizados en el primer arranque. Los agentes habituales son EC2Launch v2, los agentes de aprovisionamiento y de VM de Windows de Azure (que guardan los datos personalizados en CustomData.bin pero no los ejecutan) y el proyecto de código abierto cloudbase-init. Cada uno registra en una ubicación distinta, que conviene revisar cuando el aprovisionamiento parece haber fallado sin avisar.
Legible por máquina: JSON