From 6e16d12f10ff523b8f4e020226a578e17c386e50 Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 16 Sep 2026 10:43:11 +0000 Subject: [PATCH] =?UTF-8?q?sergey-filter:=20MAX=20=D0=BD=D0=B5=20=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B3=D0=B0=D0=B5=D0=BC,=20=D1=80=D0=B5=D0=B6?= =?UTF-8?q?=D0=B8=D0=BC=20RESTORE=5FMAX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sergey-filter.ps1 | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/sergey-filter.ps1 b/sergey-filter.ps1 index fa68307..d8c641c 100644 --- a/sergey-filter.ps1 +++ b/sergey-filter.ps1 @@ -1,16 +1,16 @@ -# sergey-filter.ps1 — фильтр контента на Windows: AdGuard DNS (DoH) + браузеры без своего DoH + hosts + удаление Telegram/MAX + запрет запуска +# sergey-filter.ps1 — фильтр контента на Windows: AdGuard DNS (DoH) + браузеры без своего DoH + hosts + удаление Telegram + запрет запуска (MAX НЕ трогаем — нужен клиенту, 16.09) # Запуск (PowerShell от администратора), ПЕРЕД запуском задать ID профиля AdGuard DNS: # $AGID='abcdef'; [Net.ServicePointManager]::SecurityProtocol='Tls12'; irm https://git.dttb.ru/oleg/scripts/raw/branch/main/sergey-filter.ps1 | iex # Откат: $UNDO=1; ... | iex — снимает политики DNS/браузеров, hosts и запреты запуска (программы не восстанавливает) +# Вернуть MAX после старой версии скрипта: $RESTORE_MAX=1; ... | iex — убирает max.ru из hosts и Max.exe из запретов (сам MAX переустановить с max.ru) $ErrorActionPreference = 'Continue' -if (-not $AGID -and -not $UNDO) { Write-Host 'Не задан $AGID (ID профиля AdGuard DNS). Пример: $AGID=''abcdef''' -ForegroundColor Red; return } +if (-not $AGID -and -not $UNDO -and -not $RESTORE_MAX) { Write-Host 'Не задан $AGID (ID профиля AdGuard DNS). Пример: $AGID=''abcdef''' -ForegroundColor Red; return } $DohTemplate = "https://d.adguard-dns.com/dns-query/$AGID" $DnsIPs = @('94.140.14.14','94.140.15.15') -$BlockDomains = @('telegram.org','www.telegram.org','desktop.telegram.org','t.me','telegram.me','web.telegram.org','tdesktop.com','telegram.dog', - 'max.ru','www.max.ru','web.max.ru','download.max.ru','oneme.ru','www.oneme.ru') -$BlockExe = @('Telegram.exe','Max.exe','MAX.exe','Unigram.exe') +$BlockDomains = @('telegram.org','www.telegram.org','desktop.telegram.org','t.me','telegram.me','web.telegram.org','tdesktop.com','telegram.dog') +$BlockExe = @('Telegram.exe','Unigram.exe') function Step($t){ Write-Host "`n=== $t ===" -ForegroundColor Cyan } function RegSet($path,$name,$value,$type='DWord'){ if(-not (Test-Path $path)){ New-Item -Path $path -Force | Out-Null }; New-ItemProperty -Path $path -Name $name -Value $value -PropertyType $type -Force | Out-Null; Write-Host " $path\$name = $value" } @@ -21,6 +21,15 @@ $isPro = $os.Caption -notmatch 'Home|Домашняя' Step "Система" Write-Host " $($os.Caption) build $build ($(if($isPro){'Pro-ветка: SRP доступен'}else{'Home: только DisallowRun'}))" +if ($RESTORE_MAX) { + Step "ВЕРНУТЬ MAX" + $h = "$env:SystemRoot\System32\drivers\etc\hosts"; (Get-Content $h) | Where-Object { $_ -notmatch 'max\.ru|oneme\.ru' } | Set-Content $h -Encoding ASCII; ipconfig /flushdns | Out-Null + $dr = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun' + if(Test-Path $dr){ Get-ItemProperty $dr | ForEach-Object { $_.PSObject.Properties } | Where-Object { $_.Value -match '^Max\.exe$' } | ForEach-Object { Remove-ItemProperty $dr -Name $_.Name -EA SilentlyContinue } } + Get-ChildItem 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths' -EA SilentlyContinue | Where-Object { (Get-ItemProperty $_.PSPath).ItemData -match '^Max\.exe$' } | Remove-Item -Recurse -Force + Write-Host "hosts и запреты для MAX сняты. MAX переустановить с max.ru (ссылка «Скачать для Windows»)." -ForegroundColor Green; return +} + if ($UNDO) { Step "ОТКАТ" Remove-Item 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' -Recurse -Force -EA SilentlyContinue @@ -70,10 +79,10 @@ $add = $BlockDomains | Where-Object { $d=$_; -not ($cur | Where-Object { $_ -mat if($add){ Add-Content $h -Value $add -Encoding ASCII; Write-Host " добавлено $($add.Count) записей" } else { Write-Host " уже есть" } ipconfig /flushdns | Out-Null -Step "4. Удаление Telegram и MAX" -Get-Process | Where-Object { $_.Name -match '^(Telegram|Max|Unigram)$' } | Stop-Process -Force -EA SilentlyContinue +Step "4. Удаление Telegram" +Get-Process | Where-Object { $_.Name -match '^(Telegram|Unigram)$' } | Stop-Process -Force -EA SilentlyContinue $unins = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*','HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*','HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*' -EA SilentlyContinue | - Where-Object { $_.DisplayName -match '^Telegram|^MAX\b|^Max\b|OneMe' } + Where-Object { $_.DisplayName -match '^Telegram' } foreach($u in $unins){ Write-Host " найдено: $($u.DisplayName) → $($u.UninstallString)" $cmd = $u.QuietUninstallString; if(-not $cmd){ $cmd = $u.UninstallString } @@ -83,10 +92,10 @@ foreach($u in $unins){ try { cmd /c "$cmd" | Out-Null; Write-Host " выполнено: $cmd" } catch { Write-Host " ошибка, удалить вручную: $cmd" -ForegroundColor Yellow } } if(-not $unins){ Write-Host " в списке программ не найдено" } -$appx = Get-AppxPackage -AllUsers | Where-Object { $_.Name -match 'Telegram|Unigram|\.MAX|OneMe' } +$appx = Get-AppxPackage -AllUsers | Where-Object { $_.Name -match 'Telegram|Unigram' } foreach($p in $appx){ Write-Host " Store-пакет: $($p.Name)"; Remove-AppxPackage -Package $p.PackageFullName -AllUsers -EA SilentlyContinue } # Портативные остатки -foreach($d in "$env:APPDATA\Telegram Desktop","$env:LOCALAPPDATA\Programs\MAX","$env:LOCALAPPDATA\Programs\Max","$env:LOCALAPPDATA\Max","$env:LOCALAPPDATA\MAX"){ +foreach($d in "$env:APPDATA\Telegram Desktop"){ if(Test-Path $d){ Remove-Item $d -Recurse -Force -EA SilentlyContinue; Write-Host " удалена папка $d" } } $left = Get-ChildItem "$env:USERPROFILE","$env:ProgramFiles","${env:ProgramFiles(x86)}" -Recurse -Include $BlockExe -EA SilentlyContinue -Depth 4 | Select-Object -Expand FullName if($left){ Write-Host " ОСТАЛИСЬ exe (удалить вручную):" -ForegroundColor Yellow; $left | ForEach-Object { Write-Host " $_" } } @@ -116,9 +125,9 @@ if($isPro){ Step "6. Проверка" if($build -ge 22000){ Get-DnsClientDohServerAddress | Format-Table -AutoSize | Out-String | Write-Host } -foreach($d in 'pornhub.com','t.me','web.max.ru','ya.ru'){ +foreach($d in 'pornhub.com','t.me','web.telegram.org','ya.ru','web.max.ru'){ try { $r = Resolve-DnsName $d -Type A -EA Stop | Select-Object -First 1 -Expand IPAddress } catch { $r = 'NXDOMAIN/ошибка' } Write-Host (" {0,-14} → {1}" -f $d, $r) } -Write-Host "`nОжидание: pornhub/t.me/web.max.ru → 0.0.0.0 или пусто; ya.ru → реальный IP." -ForegroundColor Green +Write-Host "`nОжидание: pornhub/t.me/web.telegram.org → 0.0.0.0 или пусто; ya.ru и web.max.ru → реальный IP (MAX не блокируем)." -ForegroundColor Green Write-Host "Дальше: перезагрузка, затем проверить в браузере и в режиме раздачи с телефона." -ForegroundColor Green