# Скрипт завершает процессы, удаляет браузер и его ключи в реестре, очищает профиль браузера с сохранением данных первого пользователя # Можно использовать скрипт для установки и проверки новой сборки браузера # Остановить службу обновлений браузера и закрыть все запущенные экземпляры Stop-Service -Name YandexBrowserService -Force -ErrorAction silentlycontinue Stop-Service -Name YandexBrowserService -Force -ErrorAction silentlycontinue Stop-Process -Name browser* -Force -ErrorAction silentlycontinue Stop-Process -Name browser* -Force -ErrorAction silentlycontinue # Удалить старую версию браузера If (Test-Path "$ENV:LOCALAPPDATA\Yandex\YaPin\Yandex.exe") { Start-Process -FilePath "$env:LOCALAPPDATA\yandex\YaPin\YandexWorking.exe" -ErrorAction silentlycontinue -ArgumentList "--uninstall --nopinned" } If (Test-Path "$ENV:LOCALAPPDATA\Yandex\YandexBrowser\Application\browser.exe") { Start-Process -FilePath "$ENV:LOCALAPPDATA\Yandex\YandexBrowser\Application\*.*.*.*\Installer\setup.exe" -ErrorAction silentlycontinue -ArgumentList "--uninstall", "--force-uninstall", "--silent" } If (Test-Path "$ENV:PROGRAMFILES\Yandex\YandexBrowser\Application\browser.exe") { Start-Process -FilePath "$ENV:PROGRAMFILES\Yandex\YandexBrowser\Application\*.*.*.*\Installer\setup.exe" -ErrorAction silentlycontinue -ArgumentList "--uninstall", "--force-uninstall", "--silent" } If (Test-Path "${ENV:PROGRAMFILES(x86)}\Yandex\YandexBrowser\Application\browser.exe") { Start-Process -FilePath "${ENV:PROGRAMFILES(x86)}\Yandex\YandexBrowser\Application\*.*.*.*\Installer\setup.exe" -ErrorAction silentlycontinue -ArgumentList "--uninstall", "--force-uninstall", "--silent" } $apps1 = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "Yandex*" } if ($apps1 -ne $null){ foreach ($app1 in $apps1){ $app1.Uninstall() } } $apps2 = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "Яндекс*" } if ($apps2 -ne $null){ foreach ($app2 in $apps2){ $app2.Uninstall() } } Stop-Service -Name YandexBrowserService -Force -ErrorAction silentlycontinue Stop-Process -Name browser* -Force -ErrorAction silentlycontinue # Очистить папку установки по умолчанию If (Test-Path "$ENV:ProgramFiles\Yandex\"){ Remove-Item "$ENV:ProgramFiles\Yandex\" -Recurse -Force -ErrorAction silentlycontinue } # Очистить данные в реестре If (Test-Path "HKLM:\SOFTWARE\Yandex") {Remove-Item -Path "HKLM:\SOFTWARE\Yandex" -Recurse -ErrorAction silentlycontinue} If (Test-Path "HKLM:\SOFTWARE\WOW6432Node\Yandex") {Remove-Item -Path "HKLM:\SOFTWARE\WOW6432Node\Yandex" -Recurse -ErrorAction silentlycontinue} If (Test-Path "HKCU:\Software\Classes\YandexBrowser.crx") {Remove-Item -Path "HKCU:\Software\Classes\YandexBrowser.crx" -Recurse -ErrorAction silentlycontinue} If (Test-Path "HKCU:\Software\Yandex") {Remove-Item -Path "HKCU:\Software\Yandex" -Recurse -ErrorAction silentlycontinue} If (Test-Path "HKCU:\Software\AppDataLow\Yandex") {Remove-Item -Path "HKCU:\Software\AppDataLow\Yandex" -Recurse -ErrorAction silentlycontinue} # Очистить динамические папки пользователей с сохранением данных из профиля по умолчанию (Default) $users = Get-ChildItem -Path 'C:\Users' foreach ($user in $users){ $copydata1 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Ya Passman Data" $copydata2 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Bookmarks" $copydata3 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Bookmarks Log" $copydata4 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\History" $copydata5 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Sessions\*" $copydata6 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Sessions log" $copydata7 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Session Storage\*" $copydata8 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Visited Links" $copydata9 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Top Sites" $copydata10 = "$($user.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Tablo" If (Test-Path $copydata1) {New-Item -ItemType Directory -Name YandexBackup -Path "$($user.fullname)\AppData\Local\" -Force -ErrorAction silentlycontinue} If (Test-Path $copydata1) {New-Item -ItemType Directory -Name Sessions -Path "$($user.fullname)\AppData\Local\YandexBackup" -Force -ErrorAction silentlycontinue} If (Test-Path $copydata1) {New-Item -ItemType Directory -Name Session' Storage' -Path "$($user.fullname)\AppData\Local\YandexBackup" -Force -ErrorAction silentlycontinue} If (Test-Path $copydata1) {Copy-Item $copydata1 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Ya Passman Data" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata2) {Copy-Item $copydata2 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Bookmarks" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata3) {Copy-Item $copydata3 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Bookmarks Log" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata4) {Copy-Item $copydata4 -Destination "$($user.fullname)\AppData\Local\YandexBackup\History" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata5) {Copy-Item $copydata5 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Sessions\" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata6) {Copy-Item $copydata6 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Sessions Log" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata7) {Copy-Item $copydata7 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Session Storage\" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata8) {Copy-Item $copydata8 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Visited Links" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata9) {Copy-Item $copydata9 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Top Sites" -Recurse -ErrorAction silentlycontinue} If (Test-Path $copydata10) {Copy-Item $copydata10 -Destination "$($user.fullname)\AppData\Local\YandexBackup\Tablo" -Recurse -ErrorAction silentlycontinue} Remove-Item -Path "$($user.fullname)\AppData\Local\Yandex\YandexBrowser" -Force -Recurse -ErrorAction SilentlyContinue Remove-Item -Path "$($user.fullname)\AppData\Local\Yandex\YaPin" -Force -Recurse -ErrorAction SilentlyContinue Remove-Item -Path "$($user.fullname)\AppData\LocalLow\Yandex\Updater\yabrowser" -Force -Recurse -ErrorAction SilentlyContinue Remove-Item -Path "$($user.fullname)\AppData\LocalLow\Yandex\Updater\yupdate-exec-yabrowser.log" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$($user.fullname)\AppData\Roaming\Yandex\clids-yabrowser.xml" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$($user.fullname)\AppData\Roaming\Yandex\ui" -Force -ErrorAction SilentlyContinue } # Восстановление данных по папкам пользователей $users2 = Get-ChildItem -Path 'C:\Users' foreach ($user2 in $users2){ $folder1 = "$($user2.fullname)\AppData\Local\YandexBackup" $Backupdata1 = "$($user2.fullname)\AppData\Local\YandexBackup\Ya Passman Data" $Backupdata2 = "$($user2.fullname)\AppData\Local\YandexBackup\Bookmarks" $Backupdata3 = "$($user2.fullname)\AppData\Local\YandexBackup\Bookmarks Log" $Backupdata4 = "$($user2.fullname)\AppData\Local\YandexBackup\History" $Backupdata5 = "$($user2.fullname)\AppData\Local\YandexBackup\Sessions\*" $Backupdata6 = "$($user2.fullname)\AppData\Local\YandexBackup\Session Log" $Backupdata7 = "$($user2.fullname)\AppData\Local\YandexBackup\Sessions Storage\*" $Backupdata8 = "$($user2.fullname)\AppData\Local\YandexBackup\Visited Links" $Backupdata9 = "$($user2.fullname)\AppData\Local\YandexBackup\Top Sites" $Backupdata10 = "$($user2.fullname)\AppData\Local\YandexBackup\Tablo" #$destination1 = "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Ya Passman Data" #$destination2 = "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Bookmarks" #$destination3 = "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Bookmarks Log" #$destination4 = "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\History" #$destination5 = "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Sessions\*" If (Test-Path $Backupdata1) {New-Item -ItemType Directory -Name Yandex -Path "$($user2.fullname)\AppData\Local\" -Force -ErrorAction silentlycontinue} If (Test-Path $Backupdata1) {New-Item -ItemType Directory -Name YandexBrowser -Path "$($user2.fullname)\AppData\Local\Yandex\" -Force -ErrorAction silentlycontinue} If (Test-Path $Backupdata1) {New-Item -ItemType Directory -Name User' Data' -Path "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\" -Force -ErrorAction silentlycontinue} If (Test-Path $Backupdata1) {New-Item -ItemType Directory -Name Default -Path "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\" -Force -ErrorAction silentlycontinue} If (Test-Path $Backupdata1) {New-Item -ItemType Directory -Name Sessions -Path "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\" -Force -ErrorAction silentlycontinue} If (Test-Path $Backupdata1) {New-Item -ItemType Directory -Name Session' Storage' -Path "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\" -Force -ErrorAction silentlycontinue} If (Test-Path $Backupdata1) {New-Item -ItemType File -Name First' Run' -Path "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\" -Force -ErrorAction silentlycontinue} If (Test-Path $Backupdata1) {Copy-Item $Backupdata1 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Ya Passman Data" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata2) {Copy-Item $Backupdata2 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Bookmarks" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata3) {Copy-Item $Backupdata3 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Bookmarks Log" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata4) {Copy-Item $Backupdata4 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\History" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata5) {Copy-Item $Backupdata5 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Sessions\" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata6) {Copy-Item $Backupdata6 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Session Log" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata7) {Copy-Item $Backupdata7 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Session Storage\" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata8) {Copy-Item $Backupdata8 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Visited Links" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata9) {Copy-Item $Backupdata9 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Top Sites" -Recurse -ErrorAction silentlycontinue} If (Test-Path $Backupdata10) {Copy-Item $Backupdata10 -Destination "$($user2.fullname)\AppData\Local\Yandex\YandexBrowser\User Data\Default\Tablo" -Recurse -ErrorAction silentlycontinue} #If (Test-Path $folder1) {Remove-Item $folder1 -Recurse -Force -ErrorAction silentlycontinue} } # Тихая установка. Необходимо раскомментировать блок и разместить новую сборку Yandex_Browser.msi в папке со скриптом # $SystemType = (Get-WmiObject Win32_ComputerSystem -computer .).systemtype # if ($SystemType -eq "x64-based PC") # {$msiname = 'Yandex_Browser.msi'} # if ($SystemType -eq "x86-based PC") # {$msiname = 'Yandex_Browser.msi'} # $msipath = (Split-Path $MyInvocation.Mycommand.Path) + "\$msiname" # $proc = Start-Process msiexec.exe -Wait -ArgumentList "/i $msipath /qn /l*vx $ENV:TEMP\Yandex_Browser_install.log # ACCEPT_EULA=YES" -PassThru -NoNewWindow -ErrorAction silentlycontinue # $proc.WaitForExit() # Тестовый запуск браузера. Для запуска необходимо раскомментировать блок # If (Test-Path "$ENV:ProgramFiles\Yandex\"){ # Start-Process browser.exe } # Start-Sleep -Seconds 30 # Stop-Service -Name YandexBrowserService -Force -ErrorAction silentlycontinue # Stop-Process -Name browser* -Force -ErrorAction silentlycontinue