====== Windows Remove Temporary Profiles ====== //Scripts and guide by Soren Birk.// This scripts checks for temporary profiles in the registry and deletes them, if any found. **Tested with:** * OPSI 4.0.7.3.5 * Winst 4.11.6.11 * Windows 7, 64-Bit **Tree:** CLIENT_DATA ├ registrylogo.png └ once.ins ==== once.ins ==== ; Author Soren Birk [Actions] requiredWinstVersion >= "4.11.2.6" DefVar $ProductId$ DefVar $UserProfileName$ DefVar $SID$ DefStringList $SIDcmd$ DefStringList $UserProfileNamesList$ set $UserProfileNamesList$ = getOutStreamFromSection ('DosInAnIcon_list_profiledir') ; ---------------------------------------------------------------- ; - Please edit these values - ; ---------------------------------------------------------------- Set $ProductId$ = "remove-temp-profiles" ; ---------------------------------------------------------------- comment "Show product logo" ShowBitmap "%ScriptPath%\registrylogo.png" "Remove temporary profiles" Message "Removing temporary profiles ..." comment "Removing .bak-files" ChangeDirectory "%SCRIPTPATH%" for %prof% in $UserProfileNamesList$ do sub_remove_bak [DosInAnIcon_list_profiledir] @echo off dir "%ProfileDir%" /b /ad [sub_remove_bak] Set $UserProfileName$ = "%prof%" if not ($UserProfileName$ = "") and not ($UserProfileName$ = "All Users") and not ($UserProfileName$ = "Public") and not ($UserProfileName$ = "LocalService") and not ($UserProfileName$ = "NetworkService") Set $SIDcmd$ = getOutStreamFromSection ('DosInAnIcon_getuser') Set $SID$ = trim(takeFirstStringContaining($SIDcmd$,"S-")) comment "Removing .bak-file for " + $UserProfileName$ + " if it exists..." Registry_install endif [DosInAnIcon_getuser] wmic useraccount where name='$UserProfileName$' get sid [Registry_install] Deletekey [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SID$.bak]