| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- On Error goto 0
- Const HKEY_LOCAL_MACHINE = &H80000002
- Const HKEY_CURRENT_USER = &H80000001
- Const strObjRegistry = "winmgmts:\\.\root\default:StdRegProv"
- Function RegistryDeleteKeyRecursive(regRoot, strKeyPath)
- Set objRegistry = GetObject(strObjRegistry)
- objRegistry.EnumKey regRoot, strKeyPath, arrSubkeys
- If IsArray(arrSubkeys) Then
- For Each strSubkey In arrSubkeys
- RegistryDeleteKeyRecursive regRoot, strKeyPath & "\" & strSubkey
- Next
- End If
- objRegistry.DeleteKey regRoot, strKeyPath
- End Function
- Function RegistryListSubkeys(regRoot, strKeyPath)
- Set objRegistry = GetObject(strObjRegistry)
- objRegistry.EnumKey regRoot, strKeyPath, arrSubkeys
- RegistryListSubkeys = arrSubkeys
- End Function
- Function GetUserSID()
- Dim objWshNetwork, objUserAccount
-
- Set objWshNetwork = CreateObject("WScript.Network")
- Set objUserAccount = GetObject("winmgmts://" & objWshNetwork.UserDomain & "/root/cimv2").Get("Win32_UserAccount.Domain='" & objWshNetwork.ComputerName & "',Name='" & objWshNetwork.UserName & "'")
- GetUserSID = objUserAccount.SID
- End Function
- Function RegistryCleanupSyncRootManager()
- strSyncRootManagerKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager"
- arrSubKeys = RegistryListSubkeys(HKEY_LOCAL_MACHINE, strSyncRootManagerKeyPath)
-
- If IsArray(arrSubkeys) Then
- arrSubkeys=Filter(arrSubkeys, Session.Property("APPNAME"))
- End If
- If IsArray(arrSubkeys) Then
- arrSubkeys=Filter(arrSubkeys, GetUserSID())
- End If
- If IsArray(arrSubkeys) Then
- For Each strSubkey In arrSubkeys
- RegistryDeleteKeyRecursive HKEY_LOCAL_MACHINE, strSyncRootManagerKeyPath & "\" & strSubkey
- Next
- End If
- End Function
- Function RegistryCleanupCfApiShellExtensions()
- Set objRegistry = GetObject(strObjRegistry)
- strShellExtAppId = "Software\Classes\AppID\@CFAPI_SHELLEXT_APPID_REG@"
- strShellExtThumbnailHandlerClsId = "Software\Classes\CLSID\@CFAPI_SHELLEXT_THUMBNAIL_HANDLER_CLASS_ID_REG@"
- strShellExtCustomStateHandlerClsId = "Software\Classes\CLSID\@CFAPI_SHELLEXT_CUSTOM_STATE_HANDLER_CLASS_ID_REG@"
- rootKey = HKEY_CURRENT_USER
- If objRegistry.EnumKey(rootKey, strShellExtAppId, arrSubKeys) = 0 Then
- RegistryDeleteKeyRecursive rootKey, strShellExtAppId
- End If
- If objRegistry.EnumKey(rootKey, strShellExtThumbnailHandlerClsId, arrSubKeys) = 0 Then
- RegistryDeleteKeyRecursive rootKey, strShellExtThumbnailHandlerClsId
- End If
- If objRegistry.EnumKey(rootKey, strShellExtCustomStateHandlerClsId, arrSubKeys) = 0 Then
- RegistryDeleteKeyRecursive rootKey, strShellExtCustomStateHandlerClsId
- End If
- End Function
- Function RegistryCleanup()
- RegistryCleanupSyncRootManager()
- RegistryCleanupCfApiShellExtensions()
- End Function
|