Created
May 31, 2019 11:10
-
-
Save DavoudTeimouri/cf943a796b667894b2af02376f0a06df to your computer and use it in GitHub Desktop.
Windows Profile Cleanup Script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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