diff --git a/config/feature.json b/config/feature.json index c8dd9d73..10835451 100644 --- a/config/feature.json +++ b/config/feature.json @@ -242,15 +242,6 @@ "ButtonWidth": "300", "link": "https://christitustech.github.io/winutil/dev/features/Fixes/RunAdobeCCCleanerTool" }, - "WPFRazerBlock": { - "Content": "Block Razer", - "category": "Fixes", - "panel": "1", - "Order": "a046_", - "Type": "Button", - "ButtonWidth": "300", - "link": "https://christitustech.github.io/winutil/dev/features/Fixes/razer" - }, "WPFPanelnetwork": { "Content": "Network Connections", "category": "Legacy Windows Panels", diff --git a/config/tweaks.json b/config/tweaks.json index 3e3a54da..c13ede77 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -2767,6 +2767,42 @@ ], "link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOnedrive" }, + "WPFTweaksRazerBlock": { + "Content": "Block Razer software autoinstall", + "Description": "It disables the automatic driver installation and denies write permission of Razer folder to system which prevents the automatic install.", + "category": "z__Advanced Tweaks - CAUTION", + "panel": "1", + "Order": "a031_", + "InvokeScript": [ + " + function RazerBlock { + $RazerPath = \"C:\\Windows\\Installer\\Razer\" + Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DriverSearching\" -Name \"SearchOrderConfig\" -Type DWord -Value 0 + Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Device Installer\" -Name \"DisableCoInstallers\" -Type DWord -Value 1 + Remove-Item $RazerPath -Recurse -Force + New-Item -Path \"C:\\Windows\\Installer\\\" -Name \"Razer\" -ItemType \"directory\" + $Acl = Get-Acl $RazerPath + $Ar = New-Object System.Security.AccessControl.FileSystemAccessRule(\"NT AUTHORITY\\SYSTEM\",\"Write\",\"ContainerInherit,ObjectInherit\",\"None\",\"Deny\") + $Acl.SetAccessRule($Ar) + Set-Acl $RazerPath $Acl + } + RazerBlock + " + ], + "UndoScript": [ + " + function RazerUnblock { + $RazerPath = \"C:\\Windows\\Installer\\Razer\" + Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DriverSearching\" -Name \"SearchOrderConfig\" -Type DWord -Value 1 + Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Device Installer\" -Name \"DisableCoInstallers\" -Type DWord -Value 0 + Remove-Item $RazerPath -Recurse -Force + New-Item -Path \"C:\\Windows\\Installer\\\" -Name \"Razer\" -ItemType \"directory\" + } + RazerUnblock + " + ], + "link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/RazerBlock" + }, "WPFTweaksDisableNotifications": { "Content": "Disable Notification Tray/Calendar", "Description": "Disables all Notifications INCLUDING Calendar", diff --git a/functions/public/Invoke-WPFButton.ps1 b/functions/public/Invoke-WPFButton.ps1 index 4e672b1b..9f768fd8 100644 --- a/functions/public/Invoke-WPFButton.ps1 +++ b/functions/public/Invoke-WPFButton.ps1 @@ -48,7 +48,6 @@ function Invoke-WPFButton { "WPFFixesUpdate" {Invoke-WPFFixesUpdate} "WPFFixesWinget" {Invoke-WPFFixesWinget} "WPFRunAdobeCCCleanerTool" {Invoke-WPFRunAdobeCCCleanerTool} - "WPFRazerBlock" {Invoke-WPFRazerBlock} "WPFFixesNetwork" {Invoke-WPFFixesNetwork} "WPFUpdatesdisable" {Invoke-WPFUpdatesdisable} "WPFUpdatessecurity" {Invoke-WPFUpdatessecurity} diff --git a/functions/public/Invoke-WPFRazerBlock.ps1 b/functions/public/Invoke-WPFRazerBlock.ps1 deleted file mode 100644 index bea00fee..00000000 --- a/functions/public/Invoke-WPFRazerBlock.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -function Invoke-WPFRazerBlock { - <# - .SYNOPSIS - Blocks razer software automatic install. - .DESCRIPTION - It disables the automatic driver installation and denies write permission of razer folder to system which prevents the automatic install. - #> - $RazerPath = "C:\Windows\Installer\Razer" - - # Disable driver auto-install via registry - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" -Name "SearchOrderConfig" -Type DWord -Value 0 - Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Installer" -Name "DisableCoInstallers" -Type DWord -Value 1 - - # Remove and lock install directory - Remove-Item $RazerPath -Recurse -Force - New-Item -Path "C:\Windows\Installer\" -Name "Razer" -ItemType "directory" - $Acl = Get-Acl $RazerPath - $Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM", "Write", "ContainerInherit,ObjectInherit", "None", "Deny") - - $Acl.SetAccessRule($Ar) - Set-Acl $RazerPath $Acl -}