Forum Discussion
OneDrive with FSlogix in an AVD environment how to prevent profile bloat
Try using this Powershell Script in Autostart.
This will activate OneDrive CleanUp for every Connected OneDrive Account or Sharepoint Site.
Data in OneDrive Cache will be flushed every Day.
$EnableStorageSense = 1
$RunInterval = 1
$DeleteTempFiles = 1
$DeleteRecycleBinContent = 1
$DeleteRecycleBinInterval = 1
$DeleteDownloadsContent = 0
$DeleteDownloadsInterval = 0
$DeleteOneDriveContent = 1
$DeleteOneDriveInterval = 1
function Set-RegistryValue
{
param(
[string]$RegPath,
[string]$RegName,
$RegValue,
[ValidateSet("String","ExpandString","Binary","Dword","MultiString","Qword")]
[string]$RegType = "String"
)
If (!(Test-Path -Path $RegPath))
{
Write-Output "Creating the registry key $RegPath"
New-Item -Path $RegPath -Force | Out-Null
}
else
{
$RegPath.Property
Write-Output "$RegPath already exist"
}
If ($RegName)
{
$CheckReg = Get-Item -Path $RegPath
If ($CheckReg.GetValue($RegName) -eq $null)
{
Write-Output "Creating the registry value $RegName in $RegPath"
New-ItemProperty -Path $RegPath -Name $RegName -Value $RegValue -PropertyType $RegType | Out-Null
}
else
{
Write-Output "Modifying the registry value $RegName in $RegPath"
Set-ItemProperty -Path $RegPath -Name $RegName -Value $RegValue | Out-Null
}
}
}
# Storage Sense registry location
$StoragePolicyRegKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy"
# Enable Storage Sense
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "01" -RegType DWORD -RegValue $EnableStorageSense
# Set 'Run Storage Sense' to specified interval
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "2048" -RegType DWORD -RegValue $RunInterval
# Enable 'Delete temporary files that my apps aren't using'
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "04" -RegType DWORD -RegValue $DeleteTempFiles
# Set 'Delete files in my recycle bin at the specified interval
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "08" -RegType DWORD -RegValue $DeleteRecycleBinContent
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "256" -RegType DWORD -RegValue $DeleteRecycleBinInterval
# Set 'Delete files in my Downloads folder at the specified interval
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "32" -RegType DWORD -RegValue $DeleteDownloadsContent
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "512" -RegType DWORD -RegValue $DeleteDownloadsInterval
# Suppress Storage Sense notifications
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "StoragePoliciesNotified" -RegType DWORD -RegValue 1
Set-RegistryValue -RegPath $StoragePolicyRegKey -RegName "CloudfilePolicyConsent" -RegType DWORD -RegValue 1
# Prerequisite for OneDrive cleanup configuration, get the user SID
$User1 = New-Object System.Security.Principal.NTAccount($env:userDOMAIN, $env:USERNAME)
$GetSID = $User1.Translate([System.Security.Principal.SecurityIdentifier])
$UserSID = $GetSID.Value
# Configure OneDrive cleanup for all OneDrive providers configured
# Get OneDrive providers
$OneDriveProviders = Get-ChildItem -Path HKCU:\Software\SyncEngines\Providers\OneDrive\
ForEach ($ProviderKeys in $OneDriveProviders)
{
$ProviderKeyString = "OneDrive!"+$UserSID+"!Business1|"+$ProviderKeys.Name.Split("\")[-1]
$ProviderKeyStringPath = $StoragePolicyRegKey +"\" + $ProviderKeyString
Set-RegistryValue -RegPath $ProviderKeyStringPath -RegName "02" -RegType DWORD -RegValue $DeleteOneDriveContent
Set-RegistryValue -RegPath $ProviderKeyStringPath -RegName "128" -RegType DWORD -RegValue $DeleteOneDriveInterval
}