Combinar archivos AVHDX en un único VHDX

Con equipos virtualizados mediante Hyper-V es posible realizar instántaneas / puntos de control / checkpoints de un estado completo de la máquina virtual. Esta posiblidad nos permite jugar en el tiempo con el estado de la máquina, realizar copias de seguridad, diferenciales… todas las ventajas de la virtualización.

En ocaciones es posible que el espacio ocupado por todos estos movimientos empieza a quedar pequeño, pese a eliminar puntos de control obsoletos no siempre se realiza la acción correspondiente en los ficheros de disco duro, creandose archivos diferenciales:

Lo primero que buscamos es el disco que queremos combinar, para ello desde la configuración de la máquina virtual tenemos que apunta a un fichero AVHDX en lugar de un VHDX pese a no tener puntos de control en activo:

 

Este es el último punto de control que utiliza, a partir de aquí debemos navegar pulsando en el botón «Inspeccionar» para conocer el siguiente fichero padre, de esta manera tendremos el árbol correcto de los discos. Es importante NO UTILIZAR la fecha de modificación de los ficheros AVHDX para establecer el orden de combinación, dependerá del uso que hayamos tenido del árbol de puntos de control que coincida o no con el real:

Una vez aclarado el orden, dependiendo de la versión de Hyper-V podremos hacerlos con la máquina encendida o apagada. Buscaremos la opción de «Editar disco…». Seleccionando desde el primer nodo (el que apunta directamente nuestra máquina virtual) y los siguientes EN ORDEN:

La opción de «Combinar» solo nos aparece al seleccionar un archivo diferencial AVHDX, a partir de entonces seguiremos la misma operación de manera secuencial sobre el resto de archivos.

 

Una vez finalizado el proceso, recuerda apuntar al nuevo último punto de combinación que hayas dejado; revisa la configuración de replicación si esta activada con otra máquina antes de proceder con la combinación de discos.

En el caso de no poder eliminar desde la interfaz gráfica algún punto de control, puedes realizarlo desde powershell con el comando remove.

 

Get-VM NombreMaquinaVirtual | Remove-VMSnapshot -Name NombrePunto*

Transferir funciones FSMO

A la hora de incorporar nuevos servidores en un directorio activo, debemos revisar que funciones queremos transferir antes de dar de baja alguno. En entornos sencillos en los que un equipo es el único encargado de todos ellos debemos:

  1. Añadir el nuevo servidor al dominio existente
  2. Instalar y configurar los roles de Directorio Activo
  3. Migrar las funciones: RID, Controlador principal de dominio e infraestructura, de forma gráfica podemos hacerlo desde la gestión de «Usuarios y equipos de Active Directory». Pulsaremos sobre «Cambiar» en cada una de las tres pestañas, debemos hacerlo desde el sistema operativo más reciente:
  4. Consultamos las funciones FSMO con el comando: «netdom query fsmo» veremos que todavía queda por transferir «Maestro de esquema». Para realizado desde la interfaz gráfica ejecutamos desde la línea de comandos con permisos de administrador (dependerá de la versión de Windows):
    regsvr32 schmmgmt.dll
  5. Iniciamos «mmc» y añadimos el complemento «Esquema de Active Directory» pulsamos con el botón derecho sobre el nodo y seleccionamos la opción de «Cambiar el controlador de dominio de Active Directory…» y/o «Maestro de operaciones» seleccionado «Cambiar» como en pasos anteriores.

Desde línea de comandos, ejecutamos «ntdsutil.exe«:

roles
connections
connect to server NombreDelServidorDestinoFuncion.local
q
transfer naming master
...

Siempre podemos pulsar «?» en la utilidad para ver que comandos tenemos disponibles

Para comprobar ejecutamos:

netdom query fsmo

NOTA: aunque las funciones estén ya transferidas, debemos desactivar el servidor antiguo como «Catálogo Global» antes de «Disminuir el nivel del controlador de dominio» y eliminar el rol definitivamente.

ACTUALIZADO: es posible realizarlo mediante Powershell igualmente…

Move-ADDirectoryServerOperationMasterRole -Identity "NombreDelServidorDestinoFuncion.local" PDCEmulator
Move-ADDirectoryServerOperationMasterRole -Identity "NombreDelServidorDestinoFuncion.local" RIDMaster
Move-ADDirectoryServerOperationMasterRole -Identity "NombreDelServidorDestinoFuncion.local" Infrastructuremaster
Move-ADDirectoryServerOperationMasterRole -Identity "NombreDelServidorDestinoFuncion.local" DomainNamingmaster
Move-ADDirectoryServerOperationMasterRole -Identity "NombreDelServidorDestinoFuncion.local" SchemaMaster

get-addomain | select InfrastructureMaster, PDCEmulator, RIDMaster
Get-ADForest | select DomainNamingMaster, SchemaMaster

«Recuperar» claves privadas de certificados SSL en IIS

En ocasiones es posible tener alguna que otra dificultad a la hora de crear peticiones (CSR) o renovar si no se realizan los pasos con cuidado en IIS. Debemos tener en cuenta que a la hora de crear una petición de certificado, la clave privada se almacena en el equipo que la realiza y solo en este es posible recuperarla.

Pese a ello en ocasiones se producen errores en el proceso, llegados a este extremo podemos intentar dos opciones:

  1. Desde la linea de comandos podemos intentar reparar el almacen de certificados:
    certutil -repairstore my "ThumbprintDelCertificadoConoSinEspacios"

    Si el comando encuentra las claves privadas asociadas al certificado indicado con el thumprint las asocia, en otros casos es posible que muestre errores del tipo «Insertar tarjeta inteligente» ya que busca en todos los medios y proveedores criptográficos existentes, en tal caso no podrá acabar.

    NOTA: este comando también se puede utilizar para asociar las claves privadas con la renovación de un certificado CER de manera rápida dentro del mismo equipo, es decir, certificado completo del año 2010 (PFX) y renovación de 2011 (CER) en el mismo almacén de certificados.

  2. Si hemos solicitado el certificado a una autoridad online, es posible que tenga almacenadas las claves privadas en la solicitud web, en este caso podremos unirlas con el certificado de respuesta para obtener el PFX resultante mediante OpenSSL, puedes probar online pero nunca en producción
    openssl pkcs12 -export -inkey clave.pem -in pki.crt -out certificadoCompleto.pfx

 

NOTA: Una pequeña aclaración rápida, los archivos CRT contienen la información entre las etiquetas —–BEGIN CERTIFICATE—– y —–END CERTIFICATE—– mientras que las claves de ficheros PEM utilizan: —–BEGIN RSA PRIVATE KEY—– y —–END RSA PRIVATE KEY—– habitualmente.

Eliminación de catálogo global (GC) no accesible

En entornos con varios servidores actuando conjuntamente con funciones de directorio activo, bien como lectura, replicado… o cualquier escenario posible, recuperación de backups, virtualizaciones fallidas, virus… podemos llegar a querer eliminar cualquier registro del servidor ya no disponible.

Echaremos un vistazo a las referencias que pueda quedar en los DNS, sobre todo en el caso de estar integrados con el directorio.

Con los sitios y servicios debemos hacer lo mismo:

Si intentamos crear un usuario con uno de los servidores no disponible para el sitio, con el mismo nivel como catálogo global replicado, aparecerá un error del tipo:

El servicio de directorio no puede asignar un identificador relativo.

Si estamos seguros que el servidor no va a poder ser restaurado y queremos eliminar todo rastro, deberemos acudir a la linea de comandos.

Conectaremos con el servidor que tenemos activo, consultando y seleccionando el dominio/sitio/servidor que queremos limpiar de nuestra infraestructura.

ntdsutil 
metadata cleanup 
connections
connect to server SERVIDORBUENO
q
select operation target 
list domains
select domain 0
list sites 
select site 0
list servers in site
select server 5 // OJO servidor que queremos eliminar
q
remove selected server 

Debemos tener en cuenta que cualquiera de estas acciones no es reversible y puede suponer el fallo de servicios si no se realiza con cuidado.

 

En el caso de iniciar el proceso sin haber transferido las funciones FSMO del equipo, se intenta realizar de forma segura (si es accesible) en el proceso de eliminación.

Asignación de permisos sobre carpetas mediante políticas de grupo

Dentro de un contexto de seguridad restringido/limitado, en ocasiones es necesario asignar permisos adicionales sobre algunas carpetas. Por ejemplo con directorios temporales, carpetas de fuentes… con los usuarios de un dominio podemos realizado mediante la política de grupo (GPO) siguiente:

Configuración del equipo / Directivas / Configuración de Windows / Configuración de seguridad / Sistema de archivos

Con el botón derecho agregamos una nueva carpeta o fichero, en este caso hemos optado por el directorio temporal de Windows, de forma predeterminada rescata los permisos actuales permitiendo propagar o reemplazar los cambios que necesitemos.