Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save DavoudTeimouri/cf943a796b667894b2af02376f0a06df to your computer and use it in GitHub Desktop.

Select an option

Save DavoudTeimouri/cf943a796b667894b2af02376f0a06df to your computer and use it in GitHub Desktop.
Windows Profile Cleanup Script
force_cscript
dim objWSH, sProfile, objFolder
dim objFSO, sProfileRoot, objProfileFolder
dim sTemp, sWindows
set objFSO=CreateObject("Scripting.FileSystemObject")
' Get user profile root folder
set objWSH = CreateObject("WScript.Shell")
sTemp = objWSH.ExpandEnvironmentStrings("%TEMP%")
sWindows = objWSH.ExpandEnvironmentStrings("%WINDIR%")
sProfile = objWSH.ExpandEnvironmentStrings("%USERPROFILE%")
sProfileRoot=objFSO.GetFolder(sProfile).ParentFolder.Path
set objWSH=nothing
set objProfileFolder=objFSO.GetFolder(sProfileRoot)
Set SystemSet = GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem")
for each System in SystemSet
sysversion = System.Version
next
OSVersionNum = Left(sysversion, 1)
If OSVersionNum = 5 Then ' If OS is Windows XP
for each objFolder in objProfileFolder.SubFolders
select case LCase(objFolder.Name)
case "all users": ' do nothing
case "default user": ' do nothing
case "localservice": ' do nothing
case "networkservice": ' do nothing
case else:
wscript.echo "Processing profile: " & objFolder.Name
sProfile=sProfileRoot & "\" & objFolder.Name
DeleteFolderContents sProfile & "\Local Settings\Temp"
DeleteFolderContents sProfile & "\Local Settings\Temporary Internet Files\Content.IE5"
DeleteFolderContents sProfile & "\Local Settings\Temporary Internet Files"
DeleteFolderContents sProfile & "\Local Settings\Application Data\Microsoft\Office\14.0\OfficeFileCache"
DeleteFolderContents "C:\Windows\Temp"
DeleteAFile("C:\Windows\AgentInstall64.msi")
DeleteAFile("C:\Windows\AgentInstall.msi")
DeleteAFile("C:\Windows\VMAgent-64-5.msi")
DeleteAFile("C:\VMware View Agent64.msi")
end select
next
End if
If OSVersionNum = 6 Then 'If OS is Windows Vista and above
wscript.echo "Processing profile: " & objProfileFolder
for each objFolder in objProfileFolder.SubFolders
wscript.echo "Processing profile: " & objFolder.Name
next
for each objFolder in objProfileFolder.SubFolders
select case (objFolder.Name)
case "Public": ' do nothing
case "Default": ' do nothing
case "Default User": ' do nothing
case "All Users": ' do nothing
case else:
wscript.echo "Processing profile: " & objFolder.Name
sProfile=sProfileRoot & "\" & objFolder.Name
DeleteFolderContents sProfile & "\AppData\Local\Temp"
DeleteFolderContents sProfile & "\AppData\Local\Microsoft\Windows\Temporary Internet Files"
DeleteFolderContents "C:\Windows\Temp"
DeleteAFile("C:\Windows\AgentInstall64.msi")
DeleteAFile("C:\Windows\AgentInstall.msi")
DeleteAFile("C:\Windows\VMAgent-64-5.msi")
DeleteAFile("C:\VMware View Agent64.msi")
end select
next
End if
' Now delete the folder given by the TEMP environment variable
wscript.echo "Processing folder: " & sTemp
DeleteFolderContents sTemp
' And the windows\temp folder
wscript.echo "Processing folder: " & sWindows & "\Temp"
DeleteFolderContents sWindows & "\Temp"
Sub DeleteAFile(filespec)
on error resume next
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(filespec)
End Sub
sub DeleteFolderContents(strFolder)
' Deletes all files and folders within the given folder
dim objFolder, objFile, objSubFolder
on error resume next
set objFolder=objFSO.GetFolder(strFolder)
if Err.Number<>0 then
Err.Clear
Exit sub ' Couldn't get a handle to the folder, so can't do anything
end if
for each objSubFolder in objFolder.SubFolders
objSubFolder.Delete true
if Err.Number<>0 then
'Try recursive delete (ensures better result)
Err.Clear
DeleteFolderContents(strFolder & "\" & objSubFolder.Name)
end if
next
for each objFile in ObjFolder.Files
objFile.Delete true
if Err.Number<>0 then Err.Clear ' In case we couldn't delete a file
next
end sub
sub force_cscript
dim args : args=""
dim i, wshshell
If right(lCase(wscript.fullname),11)= "wscript.exe" then
for i=0 to wscript.arguments.count-1
args = args & wscript.arguments(i) & " "
next
set wshshell=createobject("wscript.shell")
wshshell.run wshshell.ExpandEnvironmentStrings("%comspec%") & _
" /c cscript.exe //nologo """ & wscript.scriptfullname & """" & args
set wshshell=nothing
wscript.quit
end if
end sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment