Долгое время я сталкивался с проблемой, которая раздражала многих пользователей Яндекс браузера: даже после закрытия окна приложения в памяти оставались активные процессы. Это не только занимало ресурсы системы, но и препятствовало полной очистке оперативной памяти.
Да, куда же без этого в начале:
❤️ Спасибо всем кто участвует в финансовой поддержке канала. Это мотивирует писать всё больше и больше полезных статей, обзоров инструментов, подробных инструкций и гайдов для ВАС📝
Окажитесь и Вы в их числе. Благое дело никогда не остается незамеченным — оно всегда возвращается добром. СПАСИБО каждому из Вас. 🙏
💰ПОДДЕРЖАТЬ КАНАЛ МОЖНО ТУТ ( ОТ 50 РУБЛЕЙ )💰
Или сделать любой перевод по ССЫЛКЕ или QR-коду через СБП. Быстро, безопасно и без комиссии. ( Александр Г. ) "Т.Е.Х.Н.О Windows & Linux".
До закрытия, пока он открыт:
После закрытия всё равно они работают в фоне:
После долгих поисков я наконец нашел решение, которое действительно работает. Этот PowerShell скрипт полностью закрывает Яндекс браузер, корректно завершая все его процессы, включая те, которые продолжали работать в фоне. Решение подходит как для личного использования, так и для автоматизации на ПК.
Как работает скрипт
Скрипт использует многоуровневый подход к закрытию браузера:
- Поиск процессов — находит все активные процессы браузера
- Корректное завершение — отправляет сигнал на закрытие главного окна
- Ожидание — дает приложению 8 секунд на корректное завершение
- Принудительное завершение — если процессы остались, они принудительно завершаются
Полный скрипт с инструкцией
function Write-ColorOutput {
param([string]$Message, [string]$Color = "Cyan")
Write-Host $Message -ForegroundColor $Color
}
function Show-ProgressAnimation {
param([string]$Message, [int]$Duration = 2000)
$frames = @('⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏')
$sw = [Diagnostics.Stopwatch]::StartNew()
while ($sw.ElapsedMilliseconds -lt $Duration) {
foreach ($frame in $frames) {
Write-Host "`r$frame $Message" -NoNewline -ForegroundColor Cyan
Start-Sleep -Milliseconds 80
if ($sw.ElapsedMilliseconds -ge $Duration) { break }
}
}
Write-Host "`r✓ $Message`n" -ForegroundColor Green
}
Write-ColorOutput "════════════════════════════════════════" "Cyan"
Write-ColorOutput " Завершение процессов Яндекс браузера" "Yellow"
Write-ColorOutput "════════════════════════════════════════`n" "Cyan"
Show-ProgressAnimation "Поиск процессов браузера..." 1500
$GraceSeconds = 8
$procs = Get-Process -Name 'browser' -ErrorAction SilentlyContinue
if (-not $procs) {
Write-ColorOutput "✗ Процессы браузера не найдены`n" "Yellow"
return
}
Write-ColorOutput "✓ Найдено процессов: $($procs.Count)`n" "Green"
Show-ProgressAnimation "Отправка сигнала на закрытие..." 1500
$closedCount = 0
$procs | Where-Object { $_.MainWindowHandle -ne 0 } | ForEach-Object {
try {
[void]$_.CloseMainWindow()
$closedCount++
} catch {}
}
Write-ColorOutput "✓ Сигналы отправлены: $closedCount процессам`n" "Green"
Show-ProgressAnimation "Ожидание корректного завершения..." 500
$sw = [Diagnostics.Stopwatch]::StartNew()
$remainingSeconds = $GraceSeconds
while ($sw.Elapsed.TotalSeconds -lt $GraceSeconds) {
$currentSecond = [Math]::Floor($sw.Elapsed.TotalSeconds)
if ($currentSecond -ne $remainingSeconds) {
$remainingSeconds = $currentSecond
Write-Host "`r⏱ Осталось времени: $($GraceSeconds - $currentSecond) сек." -NoNewline -ForegroundColor Cyan
}
Start-Sleep -Milliseconds 250
if (-not (Get-Process -Name 'browser' -ErrorAction SilentlyContinue)) {
Write-Host "`r✓ Процессы корректно завершены`n" -ForegroundColor Green
break
}
}
$remainingProcs = Get-Process -Name 'browser' -ErrorAction SilentlyContinue
if ($remainingProcs) {
Show-ProgressAnimation "Принудительное завершение оставшихся процессов..." 1500
$forcedCount = 0
$remainingProcs | ForEach-Object {
try {
Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue
$forcedCount++
} catch {}
}
Write-ColorOutput "✓ Принудительно завершено: $forcedCount процессов`n" "Green"
}
Write-ColorOutput "════════════════════════════════════════" "Cyan"
Write-ColorOutput " ✓ Браузер полностью закрыт" "Green"
Write-ColorOutput "════════════════════════════════════════`n" "Cyan"
Инструкция по использованию
Проще всего сначала создать простой текстовый файл.
Затем вставить туда содержимое скрипта и сохранить к примеру как SCRIPT.ps1
ВАЖНО: Сохранять в UTF-8 Со спецификацией, если просто с UTF-8 не работает!
Затем запустить из контекстного меню, выполнить с помощью PowerShell:
Ну вначале конечно окно работало без информации, но я добавил пару строк, чтобы было поинформативней.
Если у вас возникают проблемы с запуском скриптов в PowerShell, может потребоваться изменить политику выполнения командой:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Присоединяйтесь к нашему сообществу!
Если этот скрипт вам помог или у вас есть улучшения или идея для автоматизации — обязательно напишите комментарий ниже! Ваши вопросы и советы помогают создавать еще лучший контент. Не забудьте подписаться на канал, чтобы не пропустить новые полезные скрипты, туториалы и оптимизации Windows и Linux.
#ЯндексБраузер #PowerShell #Скрипт #WindowsАвтоматизация #ОптимизацияПК #PowerShellСкрипты #ЗакрытиеПроцессов #АдминистрированиеWindows #БраузеросОПроцессы #ФоновыеПроцессы #ОчисткаПамяти #ТехническийТьюториал #WindowsOптимизация #АвтоматизацияWindows #СистемноеАдминистрирование #ТучкойПроцессов #BrowserЗавершение #PowerShellУтилиты #РазработкаСкриптов #ЛинуксWindowsКонтент #БыстраяОптимизация #ПроцессыПК #ОптимизацияОперативнойПамяти #WindowsТюнинг #АвтоматизацияЗадач #ПолезныеСкрипты