If, like me, you build and repair PC all the time, you start to amass several "helper" files that make PC builds/repair easier. Well, one of these files that I've had for years is at the front of the list.
It's a script I found on the web that makes cleaning the MSCONFIG settings much easier.
Ever get someone's machine and they had a billion process firing up at startup? So you run MSCONFIG and turn them off. But the list can get extremely long, especially if the user downloads and installs everything they get their hands on!!
Well this script deletes the MSCONFIG entries that are disabled! So instead of a list as long as your arm, you get a list of only those processes that are selected to run. Nice and tidy.
Credit goes to Kelly's Corner!
Copy the follwing script and dump it into a text file. Rename it to "MSCcleaner.vbs" or whatever. Then just run it! Can't get any simpler than that!
*****************************************
Set oReg = GetObject("winmgmts:!root/default:StdRegProv")
Const HKLM = &H80000002
RegKeySUF = "SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder"
RegKeySUR = "SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg"
ResultsSUF = EnumKey(HKLM, RegKeySUF, False)
If ResultsSUF = "" Then
ResultsSUF = space(5) & "(none)"
iBtns = 0
Else
iBtns = 4
sDelPrompt = "Would you like to selectively delete any of these items?"
End If
sResults = "Disabled items in startupfolder key:" & vbcrlf & _
ResultsSUF & vbcrlf & vbcrlf
ResultsSUR = EnumKey(HKLM, RegKeySUR, False)
If ResultsSUR = "" Then
ResultsSUR = space(5) & "(none)"
If iBtns <> 4 Then iBtns = 0
Else
iBtns = 4
sDelPrompt = "Would you like to selectively delete any of these items?"
End If
sResults = sResults & "Disabled items in startupreg key:" & vbcrlf & _
ResultsSUR & vbcrlf & vbcrlf
If MsgBox(sResults & sDelPrompt, iBtns + 256) <> 6 Then WScript.quit
EnumKey HKLM, RegKeySUF, True
EnumKey HKLM, RegKeySUR, True
Function EnumKey(Key, SubKey, bDelete)
Dim Ret()
oReg.EnumKey Key, SubKey, sKeys
On Error Resume Next
ReDim Ret(UBound(sKeys))
If Err = 13 Then Exit Function
On Error GoTo 0
For Count = 0 to UBound(sKeys)
If Not bDelete Then
'this branch used on first call
Ret(Count) = space(5) & sKeys(Count)
Else
'this branch used on deletion iteration
If MsgBox("Do you want to delete " & sKeys(Count) & "?" & vbcrlf & _
vbcrlf & "This operation cannot be undone!", 4 + 256) = 6 Then
DeleteKey HKLM, SubKey & "\" & sKeys(Count)
End If
End If
Next
EnumKey = Join(Ret, vbcrlf)
End Function
Function DeleteKey(Key, SubKey)
DeleteKey = oReg.DeleteKey(Key, SubKey)
End Function
Set ws = WScript.CreateObject("WScript.Shell")
On Error Resume Next
Err.Clear
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MSConfig"
If Err.Number <> 0 then
MsgBox "You may need Administrator permissions to run this script" & vbcr & "or the registry entry does not exist.",4096,"Error!"
Else
MsgBox "The registry entry has been removed.", 4096,"Done!"
End If
Set WshShell = Nothing
**************************************