This is an old revision of the document!
Scripts and guide by Soren Birk.
This scripts checks for temporary profiles in the registry and deletes them, if any found.
Tested with:
Tree:
CLIENT_DATA ├ registry.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]