7.9 KiB
User roaming por rol en Azure (opcional)
Estado predeterminado: desactivado. Todas las cuentas
AL,AD,DOy cualquier otra cuenta de dominio usan un perfil local normal bajoC:\Users. Escritorio y Documentos permanecen en el disco del equipo; no se mapean shares de perfiles ni se monta un contenedor FSLogix.
La implementación se conserva para un posible piloto futuro, pero no forma parte
del enrolamiento normal. Activarla requiere dos decisiones explícitas: desplegar
la infraestructura con -DeployUserRoaming $true -AcknowledgeUserRoamingRisks y después ejecutar el configurador con
-AcknowledgeUserRoamingRisks.
Diseño opcional
Cuando se habilita expresamente, el comportamiento es:
| Rol | Datos conservados | Implementación |
|---|---|---|
AL |
Desktop y Documents |
Redirección de carpetas a Azure Files; el resto del perfil sigue local. |
AD / DO |
Perfil completo | FSLogix VHDX: montaje directo con endpoint privado o Cloud Cache con endpoint público. |
Linux conserva su directorio personal nativo y no monta un perfil de Windows.
infra/azure/main.bicep puede crear una cuenta StorageV2 dedicada con shares
profiles y redirected, soft delete de 14 días, private endpoint y zona
privatelink.file.<sufijo-de-Azure>. Su valor predeterminado
deployUserRoaming=false evita crear estos recursos. La cuenta de staging usada
para paquetes no se reutiliza automáticamente como almacenamiento de perfiles.
Los clientes de un endpoint privado requieren P2S u otra ruta privada a la VNet.
Un endpoint público exige resolución DNS, salida TCP 445 y reglas de red de
Storage limitadas a redes institucionales. El modo Auto selecciona Direct
para endpoint privado y CloudCache para uno público. CCDLocations y
VHDLocations son mutuamente excluyentes.
Azure Files se integra con AD DS mediante Kerberos AES-256. Las ACL de la raíz
usan CREATOR OWNER para aislar los directorios de usuarios. La clave de la
cuenta se usa sólo en memoria durante la creación de ACL y no se guarda en GPO.
Riesgos que deben aceptarse
El piloto de septiembre de 2026 confirmó que esta función puede aumentar de forma considerable el tiempo de inicio y cierre de sesión. Antes de activarla se deben aceptar y probar, como mínimo, estos escenarios:
- latencia o indisponibilidad de Azure Files que mantiene
WelcomeoSign outdurante varios minutos; - VHDX remoto en estado abierto, pendiente de eliminación o de creación, con
fallos como
0x80070050; - caché o proxy local obsoleto de Cloud Cache y fallos de registro como
0xE000000B; - recuperación que puede exigir detener por fuerza los servicios FSLogix y reiniciar el equipo;
- datos todavía no sincronizados, caché local insuficiente o divergencia si se fuerza una recuperación;
- dependencia de DNS, Kerberos, TCP 445, la red y el servicio de Storage tanto para registrar como para desmontar el perfil.
No se debe desplegar a todos los usuarios sin un piloto de inicio, cierre, desconexión, cuota, restauración y pérdida temporal del proveedor. Cloud Cache reduce I/O WAN síncrono, pero no elimina la dependencia al cerrar sesión.
1. Desplegar la infraestructura opcional
El despliegue normal no incluye user roaming. Para crear deliberadamente sus recursos:
$azure = .\scripts\Deploy-SguAzureInfrastructure.ps1 `
-SubscriptionId '00000000-0000-0000-0000-000000000000' `
-ResourceGroupName 'rg-sgu-lab' `
-Location 'centralus' `
-AdministratorUsername 'azureadmin' `
-P2sRootCertificatePath $p2s.RootCertificatePath `
-DeployUserRoaming $true `
-AcknowledgeUserRoamingRisks
Puede definirse un nombre con -UserRoamingStorageAccountName. Si no se pasan
los dos parámetros de aceptación, la infraestructura de perfiles no se crea.
2. Unir Azure Files al dominio y publicar las GPO
Primero termine Initialize-SguDomainController.ps1. Después, en Windows
PowerShell 5.1 elevado dentro del DC, instale Azure PowerShell y el módulo oficial
AzFilesHybrid,
y ejecute:
$parameters = @{
SubscriptionId = '00000000-0000-0000-0000-000000000000'
ResourceGroupName = 'rg-sgu-lab'
StorageAccountName = '<cuenta de perfiles>'
FsLogixProfilesShareName = 'profiles'
RedirectedFoldersShareName = 'redirected'
AzFilesHybridModulePath = 'C:\Admin\AzFilesHybrid'
UseDeviceAuthentication = $true
AcknowledgeUserRoamingRisks = $true
}
.\payload\scripts\Enable-SguAzureUserRoaming.ps1 @parameters
Para una cuenta autorizada con endpoint público:
$parameters.EndpointAccess = 'Public'
$parameters.StaffProfileStorageMode = 'Auto'
.\payload\scripts\Enable-SguAzureUserRoaming.ps1 @parameters
El script crea las GPO SGU - AL redirected folders y SGU - AD-DO FSLogix profiles, y vuelve a habilitar el enlace de instalación de FSLogix si ya existe.
No borra perfiles locales existentes salvo que se proporcione deliberadamente
-DeleteExistingStaffLocalProfiles.
3. Instalar FSLogix sólo para un piloto
FSLogix no forma parte de Windows. Valide su licencia y descargue
FSLogixAppsSetup.exe directamente de Microsoft. Puede pasarse como quinto
argumento al enrolamiento Azure o publicarse con:
.\payload\scripts\Publish-SguFsLogixClientDeployment.ps1
El publicador valida firma y SHA-256 y crea SGU - FSLogix client deployment.
El rollback descrito abajo deshabilita su enlace para que no se instale en más
equipos.
4. Desactivar y volver a perfiles locales
Ejecute desde Windows PowerShell 5.1 elevado en el controlador de dominio:
.\payload\scripts\Disable-SguAzureUserRoaming.ps1
Es idempotente y realiza lo siguiente:
- fija
Profiles\Enabled=0yODFC\Enabled=0; - deshabilita
frxsvcyfrxccdsmediante GPO; - elimina
CCDLocations,VHDLocationsy valores de contenedor específicos de los gruposSGU-AdministrativosySGU-Docentes; - restaura Escritorio y Documentos de alumnos a
%USERPROFILE%\Desktopy%USERPROFILE%\Documents; - deshabilita el enlace de despliegue del cliente FSLogix;
- limpia
profilePath,homeDirectoryyhomeDrivede los usuarios de las OU SGU, salvo que se use-PreserveLegacyUserMappings.
Después aplique gpupdate /force y reinicie cada Windows administrado antes de
probar un nuevo inicio de sesión. El primer ingreso vuelve a crear o reutilizar
un perfil local. El script no borra automáticamente VHDX, shares de Azure ni
cachés existentes: conservarlos permite recuperación y evita destrucción de
datos. Su eliminación debe ser una decisión separada y posterior a la validación.
5. Validar un piloto futuro
Después de gpupdate /force y reiniciar un cliente de prueba:
Resolve-DnsName "$($azure.UserRoamingStorageAccountName).file.core.windows.net"
Test-NetConnection "$($azure.UserRoamingStorageAccountName).file.core.windows.net" -Port 445
Get-Service frxsvc
Get-ItemProperty 'HKLM:\SOFTWARE\FSLogix\Profiles\ObjectSpecific\<SID-del-grupo>'
& 'C:\Program Files\FSLogix\Apps\frx.exe' list-redirects
Revise %ProgramData%\FSLogix\Logs\Profile, pruebe inicio y cierre varias veces,
simule indisponibilidad y valide restauración. No active el borrado de perfiles
locales ni amplíe el alcance antes de superar esas pruebas.
Referencias de Microsoft: