mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-27 09:30:13 +03:00
289a641d74
Signed-off-by: allexzander <blackslayer4@gmail.com>
80 lines
2.7 KiB
Text
80 lines
2.7 KiB
Text
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
|