Default all users to local Windows profiles
This commit is contained in:
+13
-11
@@ -78,18 +78,20 @@ is deliberately left unset because the verified page does not expose it.
|
||||
Missing metadata does not clear existing AD values and never changes the
|
||||
password outcome.
|
||||
|
||||
## Azure user roaming
|
||||
## Optional Azure user roaming
|
||||
|
||||
Azure P2S deployments can add a dedicated, private Azure Files account. Student
|
||||
accounts (`AL`) keep a non-authoritative local profile and redirect only
|
||||
Documents/Desktop. Administrative and professor accounts (`AD`/`DO`) receive an
|
||||
FSLogix VHDX profile container through object-specific settings keyed to their
|
||||
AD security-group SIDs. Private endpoints mount the VHDX directly; public WAN
|
||||
endpoints use a local FSLogix Cloud Cache synchronized to Azure Files so profile
|
||||
I/O does not block on every SMB round trip. The storage account uses AD DS Kerberos with AES-256;
|
||||
share-root ACLs use `CREATOR OWNER` so users cannot browse one another's data.
|
||||
The bootstrap staging account is deliberately separate. See
|
||||
[user-roaming.md](user-roaming.md) for rollout and recovery constraints.
|
||||
The default architecture uses local Windows profiles for every role. Desktop,
|
||||
Documents and the remainder of the profile live under `C:\Users`; enrollment
|
||||
does not map a profile share and the domain GPO keeps FSLogix disabled.
|
||||
|
||||
An experimental opt-in can add a dedicated Azure Files account. Student
|
||||
accounts (`AL`) redirect only Documents/Desktop, while administrative and
|
||||
professor accounts (`AD`/`DO`) receive an FSLogix VHDX profile container through
|
||||
object-specific settings. Enabling it is never implicit: both infrastructure
|
||||
deployment and policy configuration require an explicit risk acknowledgement.
|
||||
The storage account uses AD DS Kerberos with AES-256 and share-root ACLs use
|
||||
`CREATOR OWNER`. See [user-roaming.md](user-roaming.md) for the observed
|
||||
sign-out/cache failure modes, staged rollout requirements and rollback.
|
||||
|
||||
Every synchronization also enforces one idempotent security-group membership
|
||||
from the classified institutional prefix: `AL` to `SGU-Alumnos`, `AD` to
|
||||
|
||||
@@ -14,8 +14,8 @@ La plantilla crea:
|
||||
- VPN Gateway opcional `VpnGw1AZ` con IKEv2/OpenVPN y autenticación por certificados;
|
||||
- pool P2S `172.30.0.0/24`, autorizado en los firewalls SGU;
|
||||
- DNS de la NIC del servidor apuntando a `10.77.0.4`;
|
||||
- Azure Files privado para user roaming: `AL` conserva sólo Escritorio/Documentos
|
||||
y `AD`/`DO` usa contenedores de perfil FSLogix.
|
||||
- perfiles locales para todos los usuarios por omisión; Azure Files/FSLogix es
|
||||
una característica opcional que debe habilitarse y aceptarse explícitamente.
|
||||
|
||||
Los prefijos privados deben ser RFC1918 y no deben solaparse con las redes usadas
|
||||
por Hyper-V, el `Default Switch`, Wi-Fi o Ethernet locales. Los prefijos de
|
||||
@@ -84,9 +84,10 @@ pública actual:
|
||||
|
||||
No utilice `0.0.0.0/0`. El despliegue de un VPN Gateway suele tardar bastante
|
||||
más que la VM; omitirlo reduce tiempo y costo. El comando espera hasta que Azure
|
||||
entregue un resultado final. User roaming se crea por omisión y requiere la ruta
|
||||
privada del P2S; para un despliegue de enrolamiento público directo indique
|
||||
`-DeployUserRoaming $false`.
|
||||
entregue un resultado final. User roaming está desactivado por omisión. Sólo se
|
||||
provisiona al indicar juntos `-DeployUserRoaming $true` y
|
||||
`-AcknowledgeUserRoamingRisks`, después de revisar
|
||||
[sus riesgos y recuperación](user-roaming.md).
|
||||
|
||||
## 3. Conectarse al servidor
|
||||
|
||||
@@ -141,10 +142,12 @@ El JSON debe indicar `NetworkConfigurationMode = PlatformManaged`, el pool P2S
|
||||
en `TrustedClientNetworks` cuando exista VPN y los CIDR directos en
|
||||
`PublicEnrollmentNetworks` cuando se hayan habilitado.
|
||||
|
||||
Después de terminar la promoción, una Azure Files al nuevo bosque y publique
|
||||
las políticas por rol con `Enable-SguAzureUserRoaming.ps1`. Esta segunda fase
|
||||
requiere Azure PowerShell y el módulo oficial AzFilesHybrid porque el SID y GUID
|
||||
del bosque todavía no existen durante el despliegue Bicep. Consulte
|
||||
Después de terminar la promoción no se necesita ninguna acción de perfiles: las
|
||||
cuentas usarán archivos locales. Si se decide realizar un piloto explícito de
|
||||
Azure Files, publique las políticas ejecutando
|
||||
`Enable-SguAzureUserRoaming.ps1` con `-AcknowledgeUserRoamingRisks`. Esa fase opcional requiere Azure PowerShell y el
|
||||
módulo oficial AzFilesHybrid porque el SID y GUID del bosque todavía no existen
|
||||
durante el despliegue Bicep. Consulte
|
||||
[user roaming por rol en Azure](user-roaming.md).
|
||||
|
||||
## 5. Enrolar cada VM Hyper-V
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# SGU Credential Provider 0.6.4
|
||||
|
||||
Esta versión revierte el despliegue de perfiles móviles y deja los perfiles
|
||||
locales como comportamiento predeterminado para todo el dominio SGU.
|
||||
|
||||
## Cambio operativo
|
||||
|
||||
- `AL`, `AD`, `DO` y cualquier otra cuenta usan un perfil local bajo `C:\Users`.
|
||||
- Escritorio y Documentos vuelven a las rutas locales del usuario.
|
||||
- No se configura `profilePath`, `homeDirectory` ni `homeDrive` en Active Directory.
|
||||
- Las políticas deshabilitan FSLogix Profiles, ODFC, `frxsvc` y `frxccds`.
|
||||
- El enlace de instalación automática de FSLogix queda deshabilitado.
|
||||
- Los recursos Azure Files existentes no se destruyen y pueden conservarse para
|
||||
recuperación o para un piloto futuro.
|
||||
|
||||
## Herramientas
|
||||
|
||||
`Disable-SguAzureUserRoaming.ps1` aplica el rollback idempotente en el dominio.
|
||||
`Deploy-SguAzureInfrastructure.ps1` y Bicep usan
|
||||
`DeployUserRoaming=false` por omisión. Tanto el aprovisionamiento como la
|
||||
publicación de políticas exigen `AcknowledgeUserRoamingRisks` para volver a
|
||||
activar la función opcional.
|
||||
|
||||
La documentación registra los tiempos prolongados de inicio/cierre, estados
|
||||
pendientes de VHDX, caché obsoleta y recuperación mediante reinicio observados
|
||||
durante el piloto. User roaming se considera experimental y nunca se habilita de
|
||||
forma implícita.
|
||||
+107
-136
@@ -1,74 +1,70 @@
|
||||
# User roaming por rol en Azure
|
||||
# User roaming por rol en Azure (opcional)
|
||||
|
||||
El despliegue Azure puede crear almacenamiento privado y políticas distintas para
|
||||
cada tipo de cuenta SGU:
|
||||
> **Estado predeterminado:** desactivado. Todas las cuentas `AL`, `AD`, `DO` y
|
||||
> cualquier otra cuenta de dominio usan un perfil local normal bajo `C:\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 local no es autoritativo y no se copia al iniciar o cerrar sesión. |
|
||||
| `AD` / `DO` | Perfil completo | FSLogix: montaje directo del VHDX con endpoint privado o Cloud Cache local sincronizada con Azure Files cuando el endpoint es público. |
|
||||
| `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 solución nativa de directorios personales; no intenta montar
|
||||
un perfil de Windows.
|
||||
Linux conserva su directorio personal nativo y no monta un perfil de Windows.
|
||||
|
||||
## Arquitectura y seguridad
|
||||
`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.
|
||||
|
||||
`infra/azure/main.bicep` crea, por omisión, una cuenta `StorageV2` dedicada con
|
||||
dos recursos SMB (`profiles` y `redirected`), soft delete de 14 días, un private
|
||||
endpoint y la zona `privatelink.file.<sufijo-de-Azure>` ligada a la VNet. El
|
||||
endpoint público queda deshabilitado. La VNet entrega el DNS del controlador de
|
||||
dominio a los clientes P2S para que el nombre de Azure Files resuelva a la IP
|
||||
privada. La cuenta de staging usada para transferir paquetes no se reutiliza ni
|
||||
se convierte en 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.
|
||||
|
||||
Los clientes deben usar el P2S de Azure o disponer de otra ruta privada a la
|
||||
VNet. El modo de enrolamiento público directo no puede usar estos recursos y el
|
||||
script de despliegue exige `-DeployUserRoaming $false` cuando no se despliega el
|
||||
gateway P2S.
|
||||
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.
|
||||
|
||||
Para una cuenta SMB ya existente cuyo endpoint público se limite mediante el
|
||||
firewall de Storage a las redes institucionales, el configurador admite
|
||||
`-EndpointAccess Public`. En ese modo no exige una dirección RFC1918, pero sigue
|
||||
comprobando resolución DNS y TCP 445. La creación de los shares y las reglas de
|
||||
red de la cuenta existente se realiza antes de ejecutar el configurador. El host
|
||||
que aplica la integración AD/ACL debe conservar acceso temporal a SMB durante
|
||||
esa ejecución; después se establece `defaultAction=Deny` y se deja únicamente la
|
||||
red institucional autorizada. En el despliegue LCI actual esa regla final es
|
||||
`200.13.89.0/24`.
|
||||
## Riesgos que deben aceptarse
|
||||
|
||||
El modo `-StaffProfileStorageMode Auto` es el predeterminado. Selecciona
|
||||
`Direct` con un endpoint privado y `CloudCache` con uno público. Cloud Cache
|
||||
mantiene el VHDX de trabajo en `C:\ProgramData\FSLogix\Cache` y sincroniza sus
|
||||
cambios con Azure Files, evitando que cada operación del perfil dependa de la
|
||||
latencia WAN de SMB. `CCDLocations` y `VHDLocations` son mutuamente excluyentes:
|
||||
el configurador elimina de forma efectiva el valor obsoleto al cambiar de modo,
|
||||
incluso en clientes que ya habían aplicado la GPO anterior. Puede forzarse un
|
||||
modo con `-StaffProfileStorageMode Direct` o `CloudCache`, pero `Direct` sobre
|
||||
un endpoint público sólo debe usarse para diagnóstico.
|
||||
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:
|
||||
|
||||
Cloud Cache necesita espacio local suficiente para el perfil (30 GB de máximo
|
||||
por omisión), conserva la caché tras cerrar sesión y exige al menos un proveedor
|
||||
remoto sano al registrar o desmontar el perfil. Si el proveedor no completa la
|
||||
sincronización, el cierre espera como máximo 60 segundos y después conserva la
|
||||
caché local para reintentar; no la descarta. La GPO también impide el inicio
|
||||
con perfil temporal o local cuando FSLogix falla, para que una incidencia no
|
||||
produzca dos perfiles divergentes silenciosamente.
|
||||
- latencia o indisponibilidad de Azure Files que mantiene `Welcome` o `Sign out`
|
||||
durante 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.
|
||||
|
||||
Azure Files se integra con el AD DS SGU, no con cuentas o claves guardadas en
|
||||
cada cliente. El script configura AES-256 para Kerberos, una ACL de mínimo
|
||||
privilegio con `CREATOR OWNER`, administradores y los grupos del rol, y permiso
|
||||
SMB predeterminado para identidades autenticadas. La ACL NTFS mantiene aislado
|
||||
el contenido de cada usuario. La clave de la cuenta se usa en memoria sólo para
|
||||
crear las ACL iniciales y no se escribe en el dominio, en GPO ni en disco.
|
||||
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.
|
||||
|
||||
Los grupos de rol sólo pueden enumerar la raíz y crear su propio directorio; no
|
||||
reciben `Modify` en la raíz compartida. El directorio creado hereda `CREATOR
|
||||
OWNER`, de modo que un usuario no puede modificar ni eliminar el contenedor de
|
||||
otro usuario.
|
||||
## 1. Desplegar la infraestructura opcional
|
||||
|
||||
## 1. Desplegar la infraestructura
|
||||
|
||||
El soporte está activado por omisión para despliegues P2S:
|
||||
El despliegue normal no incluye user roaming. Para crear deliberadamente sus
|
||||
recursos:
|
||||
|
||||
```powershell
|
||||
$azure = .\scripts\Deploy-SguAzureInfrastructure.ps1 `
|
||||
@@ -76,128 +72,103 @@ $azure = .\scripts\Deploy-SguAzureInfrastructure.ps1 `
|
||||
-ResourceGroupName 'rg-sgu-lab' `
|
||||
-Location 'centralus' `
|
||||
-AdministratorUsername 'azureadmin' `
|
||||
-P2sRootCertificatePath $p2s.RootCertificatePath
|
||||
|
||||
$azure.UserRoamingStorageAccountName
|
||||
$azure.FsLogixProfilesSharePath
|
||||
$azure.RedirectedFoldersSharePath
|
||||
$azure.UserRoamingSetupArguments
|
||||
-P2sRootCertificatePath $p2s.RootCertificatePath `
|
||||
-DeployUserRoaming $true `
|
||||
-AcknowledgeUserRoamingRisks
|
||||
```
|
||||
|
||||
Puede definirse un nombre globalmente único con
|
||||
`-UserRoamingStorageAccountName`. Para omitir completamente el almacenamiento:
|
||||
|
||||
```powershell
|
||||
-DeployUserRoaming $false
|
||||
```
|
||||
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:
|
||||
|
||||
1. Instale Azure PowerShell actual (`Az.Accounts` y `Az.Storage` 8.1 o posterior).
|
||||
2. Descargue y extraiga el módulo oficial
|
||||
[AzFilesHybrid](https://github.com/Azure-Samples/azure-files-samples/releases).
|
||||
3. Ejecute el configurador incluido en el paquete de servidor:
|
||||
PowerShell 5.1 elevado dentro del DC, instale Azure PowerShell y el módulo oficial
|
||||
[AzFilesHybrid](https://github.com/Azure-Samples/azure-files-samples/releases),
|
||||
y ejecute:
|
||||
|
||||
```powershell
|
||||
$storageAccountName = '<valor UserRoamingStorageAccountName del despliegue>'
|
||||
$parameters = @{
|
||||
SubscriptionId = '00000000-0000-0000-0000-000000000000'
|
||||
ResourceGroupName = 'rg-sgu-lab'
|
||||
StorageAccountName = $storageAccountName
|
||||
StorageAccountName = '<cuenta de perfiles>'
|
||||
FsLogixProfilesShareName = 'profiles'
|
||||
RedirectedFoldersShareName = 'redirected'
|
||||
AzFilesHybridModulePath = 'C:\Admin\AzFilesHybrid'
|
||||
UseDeviceAuthentication = $true
|
||||
AcknowledgeUserRoamingRisks = $true
|
||||
}
|
||||
.\payload\scripts\Enable-SguAzureUserRoaming.ps1 @parameters
|
||||
```
|
||||
|
||||
Para reutilizar una cuenta con endpoint público:
|
||||
Para una cuenta autorizada con endpoint público:
|
||||
|
||||
```powershell
|
||||
$parameters.EndpointAccess = 'Public'
|
||||
$parameters.StaffProfileStorageMode = 'Auto' # resuelve a CloudCache
|
||||
$parameters.StaffProfileStorageMode = 'Auto'
|
||||
.\payload\scripts\Enable-SguAzureUserRoaming.ps1 @parameters
|
||||
```
|
||||
|
||||
La operación es idempotente. Crea `OU=AzureFilesConfig`, une la cuenta de
|
||||
almacenamiento al bosque y publica dos GPO:
|
||||
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`.
|
||||
|
||||
- `SGU - AL redirected folders`, ligada a `OU=Alumnos`;
|
||||
- `SGU - AD-DO FSLogix profiles`, ligada a `OU=Laboratorio` y habilitada sólo
|
||||
mediante configuración `ObjectSpecific` para los SID de `SGU-Docentes` y
|
||||
`SGU-Administrativos`.
|
||||
## 3. Instalar FSLogix sólo para un piloto
|
||||
|
||||
Por seguridad, el script no borra perfiles locales existentes de AD/DO. Antes
|
||||
de un piloto real, migre o respalde su contenido y elimínelos manualmente. El
|
||||
switch `-DeleteExistingStaffLocalProfiles` habilita la opción de FSLogix que los
|
||||
elimina al aplicar el contenedor; úselo sólo después de respaldar y validar.
|
||||
|
||||
La identidad de Azure Files queda con contraseña sin expiración en la OU
|
||||
dedicada para evitar que una cuenta de equipo sin agente pierda Kerberos a los
|
||||
30 días. Si la política exige rotación, use periódicamente el procedimiento
|
||||
oficial `Update-AzStorageAccountADObjectPassword` y no cambie sólo un lado.
|
||||
|
||||
## 3. Instalar FSLogix en los clientes Windows
|
||||
|
||||
FSLogix no forma parte de Windows y su licencia debe validarse para las ediciones
|
||||
y suscripciones usadas. Descargue `FSLogixAppsSetup.exe` directamente de
|
||||
Microsoft y agréguelo a la imagen base, o páselo como quinto argumento al
|
||||
enrolamiento Azure:
|
||||
|
||||
```bat
|
||||
Start-SguAzureClientEnrollment.cmd 10.77.0.4 C:\SGU\vpn.zip C:\SGU\client.pfx C:\SGU\root.cer C:\SGU\FSLogixAppsSetup.exe
|
||||
```
|
||||
|
||||
`Install-SguFsLogix.ps1` exige una firma Authenticode válida de Microsoft,
|
||||
instala silenciosamente sin reiniciar y comprueba `frxsvc` y `frx.exe`. Si la
|
||||
imagen ya contiene FSLogix, el instalador puede omitirse. Microsoft recomienda
|
||||
mantener la versión más reciente; FSLogix no se actualiza mediante Windows
|
||||
Update.
|
||||
|
||||
Para cubrir también equipos ya unidos al dominio —incluidos los que estaban
|
||||
apagados durante el despliegue— publique el instalador como script de inicio de
|
||||
equipo:
|
||||
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:
|
||||
|
||||
```powershell
|
||||
.\payload\scripts\Publish-SguFsLogixClientDeployment.ps1
|
||||
```
|
||||
|
||||
El script descarga el paquete oficial FSLogix 26.08, valida la firma
|
||||
Authenticode de Microsoft y el SHA-256 esperado, y crea la GPO
|
||||
`SGU - FSLogix client deployment` ligada a `OU=Laboratorio`. El ejecutable queda
|
||||
en el SYSVOL de esa GPO y se instala de forma idempotente durante el arranque;
|
||||
no usa tareas programadas ni requiere que el equipo estuviera encendido al
|
||||
publicarla. Si `frxsvc` y `frx.exe` ya existen, el script de inicio termina sin
|
||||
reinstalar.
|
||||
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. Validar un piloto
|
||||
## 4. Desactivar y volver a perfiles locales
|
||||
|
||||
Después de `gpupdate /force` y reiniciar un cliente:
|
||||
Ejecute desde Windows PowerShell 5.1 elevado en el controlador de dominio:
|
||||
|
||||
```powershell
|
||||
.\payload\scripts\Disable-SguAzureUserRoaming.ps1
|
||||
```
|
||||
|
||||
Es idempotente y realiza lo siguiente:
|
||||
|
||||
- fija `Profiles\Enabled=0` y `ODFC\Enabled=0`;
|
||||
- deshabilita `frxsvc` y `frxccds` mediante GPO;
|
||||
- elimina `CCDLocations`, `VHDLocations` y valores de contenedor específicos de
|
||||
los grupos `SGU-Administrativos` y `SGU-Docentes`;
|
||||
- restaura Escritorio y Documentos de alumnos a
|
||||
`%USERPROFILE%\Desktop` y `%USERPROFILE%\Documents`;
|
||||
- deshabilita el enlace de despliegue del cliente FSLogix;
|
||||
- limpia `profilePath`, `homeDirectory` y `homeDrive` de 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:
|
||||
|
||||
```powershell
|
||||
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>'
|
||||
Get-ItemProperty 'HKLM:\SOFTWARE\SGU\FSLogixDeployment'
|
||||
& 'C:\Program Files\FSLogix\Apps\frx.exe' list-redirects
|
||||
```
|
||||
|
||||
En modo privado, la resolución debe devolver la IP privada del endpoint; en
|
||||
modo público debe devolver una dirección pública y TCP 445 debe estar permitido
|
||||
desde la red institucional. En Cloud Cache compruebe además que existe
|
||||
`C:\ProgramData\FSLogix\Cache` y que el registro efectivo contiene
|
||||
`CCDLocations`, pero no `VHDLocations`. Inicie primero con un
|
||||
`AL` nuevo y confirme las ubicaciones de Escritorio/Documentos; luego pruebe un
|
||||
`AD` o `DO` sin perfil local previo y confirme la creación de un VHDX en
|
||||
`profiles`. Revise `%ProgramData%\FSLogix\Logs\Profile` para confirmar que el
|
||||
perfil se registró sin `ERROR: 258`, perfil temporal ni retorno a `C:\Users`.
|
||||
No active el borrado de perfiles locales ni despliegue a todos los
|
||||
usuarios hasta probar inicio, cierre, desconexión de VPN, cuota y restauración.
|
||||
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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user