====== 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]