PowerShell-скрипт с логированием для полной очистки Dr.Web из реестра, отображает ход выполнения и сохраняет лог на рабочем столе.
2025.05.22
#PowerShell
#Dr.Web
#скрипт
#Реестр
#Логирование
#удаление
#автоматизация
#антивирус
#очистка
#реестр Windows
Как использовать:
- Скопируйте код в файл: Clean-DrWebRegistry.ps1
- Запустите PowerShell от имени администратора
Выполните скрипт:
.\Clean-DrWebRegistry.ps1
Что делает скрипт:
- Удаляет основные и скрытые ключи Dr.Web.
- Сохраняет лог на рабочем столе: DrWeb_Cleanup_Log.txt.
- Сообщает об успехе или ошибках при каждом действии.
- После чего можно повторно и наново приступить к установки Dr.Web.
Исходник скрипта:
# ========================
# Dr.Web Registry Cleaner
# С логированием и обратной связью
# ========================
# Путь к лог-файлу
$LogFile = "$env:USERPROFILE\Desktop\DrWeb_Cleanup_Log.txt"
# Запись в лог
function Write-Log {
param([string]$Message)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$entry = "$timestamp - $Message"
Write-Output $entry
Add-Content -Path $LogFile -Value $entry
}
# Удаление ключа, если найден
function Remove-RegistryKeyIfExists {
param (
[string]$Path
)
if (Test-Path $Path) {
try {
Remove-Item -Path $Path -Recurse -Force -ErrorAction Stop
Write-Log "Удален ключ: $Path"
}
catch {
Write-Log "Ошибка при удалении $Path: $_"
}
} else {
Write-Log "Ключ не найден: $Path"
}
}
# Заголовок
Write-Log "=== Начало очистки Dr.Web из реестра ==="
# Основные ключи
$keysToRemove = @(
"HKLM:\SOFTWARE\Doctor Web",
"HKCU:\Software\Doctor Web",
"HKLM:\SYSTEM\CurrentControlSet\Services\dwprot",
"HKLM:\SYSTEM\CurrentControlSet\Services\dwengine",
"HKLM:\SYSTEM\CurrentControlSet\Services\dwwatcher",
"HKLM:\SYSTEM\CurrentControlSet\Services\drwebfw"
)
# Удаление стандартных ключей
foreach ($key in $keysToRemove) {
Remove-RegistryKeyIfExists -Path $key
}
# Поиск по шаблону в SOFTWARE
Write-Log "Поиск ключей с 'DrWeb' в HKLM:\SOFTWARE..."
try {
$foundKeys = Get-ChildItem -Path "HKLM:\SOFTWARE" -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.Name -match "DrWeb|Doctor Web" }
foreach ($foundKey in $foundKeys) {
Remove-RegistryKeyIfExists -Path $foundKey.PSPath
}
}
catch {
Write-Log "Ошибка при поиске в SOFTWARE: $_"
}
Write-Log "=== Очистка завершена. Перезагрузите систему. ==="
# Финальное сообщение
Write-Output "`nОчистка завершена. Подробности см. в логе: $LogFile"