Directorio activo hybrido en Azure: ImmutableID / sourceAnchor

Ambos nombres son equivalentes, describen un atributo que no cambia durante la vida de un objecto. Se trata de identificar de forma única en un entorno local y en Azure AD.

Por defecto se calcula codificando en Base 64 la propiedad objectGUID del servidor local, por ejemplo:

$Usuario = Get-ADuser nombreDeUsuario -Properties * -server localhost
$ImmutableID = [system.convert]::ToBase64String(([GUID]($Usuario.ObjectGUID)).tobytearray())

Realmente no debería cambiarse, pero en ocasiones nos encontramos en la necesidad de hacerlo, bien por una migración de directorio, eliminación de usuarios, replicación con errores... Si en lugar de utilizar el objectGUID utilizariamos un atributo personalizado no tendríamos este problema pero conllevaría la gestión y administración del mismo, si dentro de la empresa cada uno tiene un identificador único personal podría utilizarse para calcular el sourceAnchor.

Esta propiedad se establece durante la instalación inicial, solo si se desinstala correctamente se puede volver a establecer con un valor personalizado, desde la versión 1.1.524.0 se facilita el atributo ms-DS-ConsistencyGuidcomo atributo de los usuarios a utilizar como sourceAnchor.

Podemos visualizar la propiedad actual desde PowerShell:

Import-Module AzureAD
$O365Cred = Get-Credential
$O365Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-AzureAD -Credential $O365Cred
Get-AzureADUser -ObjectId nombreUsuario@midominio.com | Select objectID, UserPrincipalName, ImmutableID

Si bien, en la documentación aparece, la posibilidad de establecer el valor en nulo para desvincular las cuentas creadas localmente de la nube mediante powershell:

Set-AzureADUser -ObjectId nombreUsuario@midominio.com -ImmutableID $null

No genera ningún resultado ni modificación del objeto, por lo menos a fecha de hoy.

Como alternativa, podemos crear un usuario temporal en nuestro directorio, sincronizar e intercambiar sourceAnchor, asignando otro incorrecto al usuario a eliminar posteriormente.

 

 


Activar escritorio remoto mediante Powershell

Por defecto la conexión por escritorio remoto aparece deshabilitada en los equipos con Windows Pro, en una red de dominio es posible establecer mediante políticas de grupo los permisos necesarios:

- Configuración de Equipo \ Directivas \ Plantillas Administrativas
--- Componentes de Windows \ Servicios de escritorio remoto \ Host de sesión de Escritorio remoto \ Conexiones \ Permitir que los usuarios se conecten de forma remota mediante Servicios de Escritorio Remoto

--- Red \ Conexiones de red \ Firewall de Windows \ Perfil de dominio \ Firewall de Windows: permitir excepciones de Escritorio remoto entrantes

Igualmente podemos echar mano de un Script para powershell escrito por Sitaram Pamarthi en 2013, que mediante WMI nos facilita acciones puntuales:

[cmdletbinding()]
param(
	[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
	[string[]]$ComputerName = $env:computername,
	[ValidateScript({Test-Path $_})]
	[string]$OutFolder = "c:\"
)

begin {
$SuccessComps = Join-Path $OutFolder "Successcomps.txt"
$FailedComps = Join-Path $OutFolder "FailedComps.txt"
}

process {
	foreach($Computer in $ComputerName) {

		try {
			$RDP = Get-WmiObject -Class Win32_TerminalServiceSetting `
								-Namespace root\CIMV2\TerminalServices `
								-Computer $Computer `
								-Authentication 6 `
								-ErrorAction Stop
								
		} catch {
			Write-Host "$Computer : WMIQueryFailed"
			"$Computer : WMIQueryFailed" | Out-File -FilePath $FailedComps -Append
			continue
		}
		
		if($RDP.AllowTSConnections -eq 1) {
			Write-Host "$Computer : RDP Already Enabled"
			"$Computer : RDP Already Enabled" | Out-File -FilePath $SuccessComps -Append
			continue
		} else {
			try {
				$result = $RDP.SetAllowTsConnections(1,1)
				if($result.ReturnValue -eq 0) {
					Write-Host "$Computer : Enabled RDP Successfully"
					"$Computer : RDP Enabled Successfully" | Out-File -FilePath $SuccessComps -Append
				} else {
					Write-Host "$Computer : Failed to enabled RDP"
					"$Computer : Failed to enable RDP" | Out-File -FilePath $FailedComps -Append

				}
			
			} catch {
				Write-Host "$computer : Failed to enabled RDP"
				"$Computer : Failed to enable RDP" | Out-File -FilePath $FailedComps -Append
			}
		}
	}

}

end {}

Su utilización para un equipo concreto:

.\Enable-RDPAccess.ps1 -ComputerName <computer name>

 Si obtenemos errores al ejectuarlo, debemos comprobar que tenemos acceso mediante WMI o activarlo mediante GPO:

- Configuración del equipo \ Directivas \ Configuración de Windows \ Configuración de seguridad \ Firewall de Windows con seguridad avanzada \ Reglas de Entrada

Error durante la migración a Windows 10: No se pudo actualizar la partición reservada del sistema

Microsoft ha simplificado, cada vez más, las actualizaciones y migraciones a Windows 10 desde el año 2015, pero en ocasiones es necesario acciones específicas. En este caso el error que nos aparece al utilizar la herramienta de actualización es el siguiente: "No se pudo actualizar la partición reservada del sistema"

En equipos antiguos la partición reservada para el sistema es de escasos 100 MB y los requisitos habituales para Windows 10 en un equipo nuevo crean particiones de 500 MB. Existe una solución temporal que nos permite liberar espacio de la partición original, sin tener que mover particiones completas, se trata de liberar espacio eliminando los recursos de idiomas que no se utilizan. Necesitaremos 15 MB libres.

Debemos seguir el procedimiento muy bien descrito en el artículo de Microsoft, según el tipo de partición MBR o GPT que tengamos en nuestro sistema, lograremos acceder y eliminar algunos recursos no críticos de la partición. Si debemos ejecutar en el procedimiento los comandos del tipo "takeown" en las instrucciones se especifica:

takeown /d y /r /f .

Donde debemos tener cuidado de incorporar el espacio y el punto después de la 'f' además si nuestros sistema operativo se encuentra en español debemos cambiar la 'y' de YES por la 's' de SI

takeown /d s /r /f .

Siguiendo el procedimiento, pasaremos a tener entorno al 50% más espacio libre que nos permitirá continuar la instalación.

 

NOTA: Para otros errores puedes utilizar la aplicacion SetupDiag.exe para analizar los registros de instalación.

Modern Backup Storage, DPM, NTFS y ReFS

A partir de System Center Data Protection Manager (DPM) 2016 se introdujo este nuevo sistema de "almacenamiento moderno de copias de seguridad" en su traducción literal, con el objetivo de simplificar, optimizar y gestionar de forma más rápida copias de seguridad locales consumiendo menos espacio.

En la práctica y de manera sencilla, se utiliza un volumen formateado en ReFS y ficheros/discos VHDX que se provisionan para la copia. La combinación de ambas permite sacar mayor rendimiento en el sistema de ficheros:

  • Clonación de bloques (Block cloning) permite transformar la copia de ficheros en copia de metadatos, es decir, si tenemos un Fichero A dividido en nuestro disco en 100 partes y lo copiamos en un Fichero B, este último hará referencia a las 100 partes iguales de su origen, enlaza el contenido. Si se produce una modificación de una parte del fichero, en ese momento se realiza una copia de la parte afectada (se desenlaza de A y se enlaza el nuevo bloque a B)
  • VDL disperso (Sparse Valid Data Length) agiliza la escritura de ceros en ficheros grandes, permite eliminar ficheros, y crear archivos de tamaño fijo VHDX de manera rápida.
  • Paridad acelerada por reflejos (Mirror accelerated Parity) se realiza la escritura de entrada espejada para después calcular la paridad y almacenarse en su ubicación final.

En el momento de "Agregar almacenamiento en disco" se formatea automáticamente el contenido de la unidad en ReFS.

Si bien este sistema de ficheros no sustituye todavía a NTFS, permite grandes ventajas en entornos de almacenamiento y virtualización.

Ahora bien, en el momento que intentamos localmente "Agregar DPM Externo" de Azure nos encontramos:

Error 100070: El destino de recuperación seleccionado para recuperar una o más archivos no es válido.
Acción recomendad: Asegúrese de que el destino de recuperación se encuentra en un volumen NTFS montado localmente

Durante la configuración no se advierte ni comprueba. En el momento de intentar agregarlo si ¿Por qué este requisito? ¿No se puede restaurar ficheros desde Azure sobre un destino ReFS?

 

Referencia de errores: Codigo de error de Data Protection Manager
Versión: Azure Backup Server v3 13.0.415.0

 

Exportación de certificado X.509 codificado en PEM

La digitalización en la administración pública no lleva precisamente un ritmo rápido... y tampoco lo ponen fácil a usuarios finales...

Veremos como para dar de alta un proveedor en FACe, o gestionar su renovación, nos solicitan certificado en formato PEM. Por simplificar, tal como en un fichero de texto Word o una hoja de Excel tenemos diferentes formatos y versiones con los que podemos trabajar, con el certificado nos pasa lo mismo.

En este caso PEM se codifica en Base64 encerrado entre la cabecera "-----BEGIN CERTIFICATE-----" y el fin de contenido con "-----END CERTIFICATE-----".

Sin entrar en detalles técnicos, por ilustrar con un ejemplo, el texto "Este frase sería codificada" en base 64 contendría: "RXN0ZSBmcmFzZSBzZXLDrWEgY29kaWZpY2FkYQ=="

Este tipo de certificados se basan en el estándar "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile" siguiendo la normativa RFC 5280. Gracias a ello podemos identificar el propietario, emisor (Autoridad de Certificación), fecha de caducidad, fecha de misión... basándonos en infraestructura de clave pública (PKI - Public Key Infraestructure)

Por tanto lo que nos están pidiendo es un "certificado X.509 codificado en formato PEM".
En un escenario habitual en un entorno Windows donde tenemos almacenado el certificado accedemos ejecutando el comando "mmc.exe" (existen otras opciones de visualización pero esta funciona en todas las versiones de Windows hasta ahora)

Nos aparecerá una ventana de consola, y bajo la opción del menú "Archivo" la opción: "Agregar o quitar complemento"

A continuación seleccionamos "Certificado" entre los complementos disponibles y pulsamos en agregar: 

Seleccionamos "Mi cuenta de usuario" teniendo en cuenta que los certificados mostrados son los del usuario que ha iniciado sesión en el equipo:

Dentro de "Personal" / "Certificados" nos mostrará todos los disponibles del usuario actual. El icono del listado, muestra una pequeña llave en aquellos certificados de los que disponemos la parte privada:

Haciendo clic con el botón derecho sobre el certificado pulsamos en "Todas las tareas" y "Exportar". Debemos seleccionar el formato de codificación X.509, no debemos exportar la clave privada en este caso:

Indicamos una ruta de nuestro ordenador para guardar el certificado, pulsando con el botón derecho sobre el certificado "Abrir con..." y seleccionamos el editor de texto Bloc de notas nos mostrará:

Con este contenido ya podemos copiar y pegar en la página de FACe de proveedores.