Bound FSLogix Cloud Cache sign-out time

This commit is contained in:
2026-09-18 11:24:33 -06:00
parent c47913e81d
commit 01e0ee5ac4
4 changed files with 19 additions and 5 deletions
+2
View File
@@ -14,6 +14,8 @@ Files se consume mediante su endpoint público.
incluyendo equipos que habían aplicado la política directa anterior. incluyendo equipos que habían aplicado la política directa anterior.
- Se impide el retorno silencioso a un perfil local o temporal cuando FSLogix - Se impide el retorno silencioso a un perfil local o temporal cuando FSLogix
no puede registrar el contenedor. no puede registrar el contenedor.
- El cierre de sesión deja de esperar indefinidamente por un proveedor remoto:
se limita a 60 segundos y conserva la caché local si vence el plazo.
- La documentación agrega capacidad de disco, validación del registro efectivo - La documentación agrega capacidad de disco, validación del registro efectivo
y rutas de diagnóstico para ambos modos. y rutas de diagnóstico para ambos modos.
+3 -1
View File
@@ -48,7 +48,9 @@ un endpoint público sólo debe usarse para diagnóstico.
Cloud Cache necesita espacio local suficiente para el perfil (30 GB de máximo 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 por omisión), conserva la caché tras cerrar sesión y exige al menos un proveedor
remoto sano al registrar o desmontar el perfil. La GPO también impide el inicio 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 con perfil temporal o local cuando FSLogix falla, para que una incidencia no
produzca dos perfiles divergentes silenciosamente. produzca dos perfiles divergentes silenciosamente.
+10 -3
View File
@@ -449,30 +449,37 @@ $fsLogixValues = [ordered]@{
} }
$cloudCacheOnlyValues = @( $cloudCacheOnlyValues = @(
'CCDLocations', 'CCDLocations',
'CcdUnregisterTimeout',
'ClearCacheOnForcedUnregister',
'ClearCacheOnLogoff', 'ClearCacheOnLogoff',
'HealthyProvidersRequiredForRegister', 'HealthyProvidersRequiredForRegister',
'HealthyProvidersRequiredForUnregister', 'HealthyProvidersRequiredForUnregister',
'PreventLoginWithFailure', 'PreventLoginWithFailure',
'PreventLoginWithTempProfile', 'PreventLoginWithTempProfile'
'VHDCompactDisk'
) )
if ($resolvedStaffProfileStorageMode -eq 'CloudCache') { if ($resolvedStaffProfileStorageMode -eq 'CloudCache') {
$fsLogixValues.CCDLocations = @{ $fsLogixValues.CCDLocations = @{
Type = 'String' Type = 'String'
Value = "type=smb,name=`"SGU Azure Files`",connectionString=$profilesSharePath" Value = "type=smb,name=`"SGU Azure Files`",connectionString=$profilesSharePath"
} }
$fsLogixValues.CcdUnregisterTimeout = @{ Type = 'DWord'; Value = 60 }
$fsLogixValues.ClearCacheOnForcedUnregister = @{ Type = 'DWord'; Value = 0 }
$fsLogixValues.ClearCacheOnLogoff = @{ Type = 'DWord'; Value = 0 } $fsLogixValues.ClearCacheOnLogoff = @{ Type = 'DWord'; Value = 0 }
$fsLogixValues.HealthyProvidersRequiredForRegister = @{ Type = 'DWord'; Value = 1 } $fsLogixValues.HealthyProvidersRequiredForRegister = @{ Type = 'DWord'; Value = 1 }
$fsLogixValues.HealthyProvidersRequiredForUnregister = @{ Type = 'DWord'; Value = 1 } $fsLogixValues.HealthyProvidersRequiredForUnregister = @{ Type = 'DWord'; Value = 1 }
$fsLogixValues.PreventLoginWithFailure = @{ Type = 'DWord'; Value = 1 } $fsLogixValues.PreventLoginWithFailure = @{ Type = 'DWord'; Value = 1 }
$fsLogixValues.PreventLoginWithTempProfile = @{ Type = 'DWord'; Value = 1 } $fsLogixValues.PreventLoginWithTempProfile = @{ Type = 'DWord'; Value = 1 }
$fsLogixValues.VHDCompactDisk = @{ Type = 'DWord'; Value = 0 }
} }
else { else {
$fsLogixValues.VHDLocations = @{ Type = 'String'; Value = $profilesSharePath } $fsLogixValues.VHDLocations = @{ Type = 'String'; Value = $profilesSharePath }
} }
Set-SguGpoRegistryValue -GpoName $staffGpo.DisplayName -DomainName $domainName `
-Server $DomainController -Key 'HKLM\SOFTWARE\FSLogix\Apps' `
-ValueName 'VHDCompactDisk' -Type DWord -Value 0
foreach ($staffGroup in @($professorGroup, $administrativeGroup)) { foreach ($staffGroup in @($professorGroup, $administrativeGroup)) {
$objectSpecificKey = "$fsLogixRoot\ObjectSpecific\$($staffGroup.SID.Value)" $objectSpecificKey = "$fsLogixRoot\ObjectSpecific\$($staffGroup.SID.Value)"
Set-SguGpoRegistryValueDeletion -GpoName $staffGpo.DisplayName -DomainName $domainName `
-Server $DomainController -Key $objectSpecificKey -ValueName 'VHDCompactDisk'
if ($resolvedStaffProfileStorageMode -eq 'CloudCache') { if ($resolvedStaffProfileStorageMode -eq 'CloudCache') {
Set-SguGpoRegistryValueDeletion -GpoName $staffGpo.DisplayName -DomainName $domainName ` Set-SguGpoRegistryValueDeletion -GpoName $staffGpo.DisplayName -DomainName $domainName `
-Server $DomainController -Key $objectSpecificKey -ValueName 'VHDLocations' -Server $DomainController -Key $objectSpecificKey -ValueName 'VHDLocations'
+4 -1
View File
@@ -100,8 +100,11 @@ Describe 'SGU role-specific roaming policies' {
$source | Should Match "ValueName 'VHDLocations'" $source | Should Match "ValueName 'VHDLocations'"
$source | Should Match '\*\*del\.\$ValueName' $source | Should Match '\*\*del\.\$ValueName'
$source | Should Match 'HealthyProvidersRequiredForRegister' $source | Should Match 'HealthyProvidersRequiredForRegister'
$source | Should Match 'CcdUnregisterTimeout.*60'
$source | Should Match 'ClearCacheOnForcedUnregister'
$source | Should Match 'PreventLoginWithFailure' $source | Should Match 'PreventLoginWithFailure'
$source | Should Match 'VHDCompactDisk' $source | Should Match "'HKLM\\SOFTWARE\\FSLogix\\Apps'"
$source | Should Match "ValueName 'VHDCompactDisk'"
} }
It 'uses an AD computer identity with AES-256 Kerberos' { It 'uses an AD computer identity with AES-256 Kerberos' {