virjokk
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Сохранять в кодировке UTF-8, имя любое, расширение - bat, cmd Код: <# : @echo off cd /d "%~dp0" wmic process where "name like '%%chrome.exe%%'" get commandline /value 2>nul | find "%~dp0chrome.exe" && goto :eof powershell.exe -nol -nop -ex bypass -c "&{[ScriptBlock]::Create((gc -lit '%~f0' -enc UTF8) -join [Char]10).Invoke(@(&{$args}%*))}" exit /b #> # Запускатель с функцией обновления и очистки браузера Ungoogled Chromium (сборка от Macchrome). # Без параметров: с заданным интервалом проверяет обновления, если есть - устанавливает/обновляет браузер, выдавая уведомление в трее, # затем запускает Ungoogled. Создает ярлык на рабочем столе (если его еще нет) с запуском без параметров. # После закрытия окна браузера удаляются временные папки и ключи реестра, указанные в соответствующих переменных. # Параметры можно указывать при старте батника в командной строке консоли Windows (напр., chrome.bat -onlyrun), # либо в ярлыке на рабочем столе. Чтобы в Windows 10 запустить консоль в папке батника нужно открыть эту папку в проводнике, # установить курсор в адресную строку, вместо адреса ввести на клавиатуре команду «CMD» и нажать «Enter». # Для правильной работы достаточно поместить батник в любую пустую папку (кроме корневых, системных и с ограниченным доступом) # и запустить.При первом старте в эту папку скачивается последняя версия Ungoogled, создается ярлык на рабстоле и запускается браузер # с набором ключей, обеспечивающим в том числе портативную работу. В дальнейшем про батник можно не вспоминать и запускать браузер # только с ярлыка. Обновления скачиваются во временную подпапку в той же папке, где расположен батник, и после их установки # временная подпапка удаляется. Никуда больше батник в системе не лезет. Учитывается специфика сборки от Macchrome: иногда # он выпускает несколько сборок одной и той же версии Ungoogled, соответственно, будет скачиваться каждая новая сборка. # Сам батник - это гибрид Powershell/CMD, то есть его основная часть является сценарием на PowerShell, а несколько первых строк # на CMD нужны только для старта этого сценария. В современных Windows скрипты PS можно запускать и напрямую, но для этого # нужно предварительно дать разрешение на исполнение неподписанных сценариев, а также либо зарегистрировать файловую ассоциацию на # скрипты PS, либо из командной строки запускать PS с аргументами, что хлопотно и вряд ли будет делаться пользователями. # Идея этого батника и принцип работы позаимствованы у Insorg с его крутейшей "быстрой настройкой Chrome браузеров по методу трёх батников". # Здесь то, что делает несколько батников от Insorg, объединено в один. Кроме того, у Insorg все сделано на "чистом" CMD. # Содержимое батника может быть легко изменено обладателями минимальных познаний в PowerShell, который не является языком # программирования и очень прост в освоении. # Параметры батника: # -onlyrun - не проверять обновления, сразу запуск браузера; # -onlycheck - наоборот, не запускать браузер, только проверить обновления независимо от установленного интервала; # -nolnk - не создавать ярлык на рабочем столе; # -ask - перед обновлением - спрашивать. # Переменные внутри батника: # $CheckInterval - интервал проверки обновлений (количество дней), по умолчанию - 3, если 0, будет проверять при каждом запуске. # $userdatadir - имя папки профиля, по умолчанию - User Data. # $argslist - список ключей запуска хрома. # $udclean, $uddclean, $regclean - файлы, папки и ключи реестра, удаляемые после закрытия браузера. # Ключи браузера, удаляемые папки и ветки реестра обязательно просмотрите и удалите лишнее или добавьте свое. # Временно отключить ключ запуска или удаляемый файл/папку можно просто закомментировав соответствующиую строку символом #. # Каждая запись добавляется отдельной строкой в двойных кавычках. В $udclean указывается содержимое (только имена, без путей) # папки User Data, в $uddclean - User Data\Default, в $regclean - содержимое HKEY_CURRENT_USER\SOFTWARE. # Сам дистр ставится как есть, никакие "лишние" файлы не удаляются. # В создаваемом ярлыке запуск батника происходит через PowerShell, чтобы скрыть окно консоли cmd. # Добавить параметр в ярлык можно, отредактировав в свойствах ярлыка путь: # C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -Command cmd /c 'C:\progr\ungoogled\chrome.cmd' -onlyrun # Путь к батнику обязательно в одинарных кавычках. $CheckInterval = 3 $userdatadir = "User Data" $batfilename = $MyInvocation.Line -match "\'(\w:\\.+)\'" | %{$matches[1]} $batfilepath = Split-path "$batfilename" $baddirs = "\w:\\$|\w:\\Windows.*|\w:\\Users.*|\w:\\ProgramData.*|\w:\\Documents and Settings.*|\w:\\Program Files$|\w:\\Program Files (x86)$" if ($batfilepath -match $baddirs) {write-host "$batfilepath is bad directory for Ungoogled" -foregroundcolor red; return} #$proxy="$batfilepath\opera-proxy.exe" #$proxyarg="-bind-address 127.0.0.1:18081","-country EU" $argslist = @( "--user-data-dir=`"$userdatadir`"" # Определяет имя каталога пользовательских данных (по умолчанию User Data) "--disable-machine-id" # Отключает использование сгенерированного идентификатора, специфичного для компьютера, для блокировки каталога пользовательских данных на этом компьютере. Это используется для включения переносимых каталогов пользовательских данных (делает браузер портабельным) "--disable-encryption-win" # Отключает шифрование файлов cookie, паролей и настроек, которое использует сгенерированный ключ шифрования для конкретного компьютера. Это используется для включения переносимых каталогов пользовательских данных (делает браузер портабельным) "--no-default-browser-check" # Отключает проверку браузера по умолчанию "--disable-gpu-shader-disk-cache" # Отключает кэширование на диске шейдеров GPU "--gpu-disk-cache-size-kb=1" # Определяет размер GPU кэша в килобайатах "--disk-cache-dir=nul" # Определяет каталог дискового кэша (значение nul - не кэшировать) "--disk-cache-size=1" # Определяет размер дискового кэша в килобайатах "--disable-search-engine-collection" # Отключает автоматическое сканирование веб-страниц поисковыми системами "--disable-sharing-hub" # Отключает кнопку центра общего доступа "--hide-sidepanel-button" # Скрывает кнопку боковой панели "--remove-tabsearch-button" # Удаляет кнопку поиска вкладок из панели вкладок "--remove-grab-handle" # Удаляет зарезервированное пустое пространство в полосе вкладок для перемещения окна "--scroll-tabs=always" # Определяет, вызовет ли прокрутка переключение на соседнюю вкладку, если курсор наведен на вкладки, или на пустое пространство рядом с вкладками. Флаг требует одного из значений: always, never, incognito-and-guest. Если этот параметр опущен, по умолчанию используется поведение, зависящее от платформы, которое в настоящее время включено только в настольной Linux "--popups-to-tabs" # Позволяет всплывающим окнам открываться в новых вкладках "--close-window-with-last-tab=never" # Определяет, должно ли окно закрываться после закрытия последней вкладки. Принимает только значение never. "--show-avatar-button=never" # Устанавливает видимость кнопки аватара. Для флага требуется одно из значений: always, incognito-and-guest (показывать только режимы инкогнито или гостевой) или never "--tab-hover-cards=tooltip" # Позволяет удалить всплывающие миниатюры при наведении на вкладку или использовать всплывающую подсказку в качестве замены. Это можно установить с помощью значений none или tooltip "--extension-mime-request-handling=always-prompt-for-install" # Изменяет способ обработки типов расширения MIME (CRX и пользовательские сценарии). Допустимые значения: download-as-regular-file или always-prompt-for-install. Если вообще не использовать, то будет нормальное поведение "--enable-features=#enable-parallel-downloading" # Разрешает одновременную закгрузку нескольких файлов "--force-punycode-hostnames" # Преобразует все интернационализированные доменные имена в punycode (ASCII-представление Unicode) "--proxy-server=$(($proxyarg -Split " ")[1])" # IP адрес и порт локального прокси-сервера. В данном случае - тот, что прописан выше в переменной $proxyarg # "--disable-beforeunload" # Отключает диалоговые окна JavaScript, запускаемые перед выгрузкой JS модуля/скрипта # "--disable-grease-tls" # Отключает GREASE для TLS. В сочетании с --http-accept-header позволяет браузеру больше походить на tor-браузер # "--fingerprinting-canvas-image-data-noise" # Реализует обман при снятии отпечатков пальцев для данных изображения Canvas, полученных через API JS. В данных не более 10 пикселей слегка изменены # "--fingerprinting-canvas-measuretext-noise" # Масштабирует выходные значения Canvas::measureText() со случайно выбранным коэффициентом в диапазоне от -0,0003% до 0,0003%, который пересчитывается при каждой инициализации документа # "--fingerprinting-client-rects-noise" # Реализует обман API JS с помощью отпечатков пальцев getClientRects() и getBoundingClientRect(), масштабирует их выходные значения со случайным коэффициентом в диапазоне от -0,0003% до 0,0003%, которые пересчитываются для каждого экземпляра документа # "--hide-crashed-bubble" # Скрывает всплывающее окно с сообщением «Восстановить страницы? Chromium завершил работу неправильно». Это отображается при запуске после того, как браузер не завершил работу корректно # "--http-accept-header" # Изменяет значение по умолчанию AcceptHTTP-заголовка, отправляемого с HTTP-запросами. В сочетании с --disable-grease-tls позволяет браузеру больше походить на tor-браузер # "--keep-old-history" # Отключает удаление локальной истории браузера через 90 дней # "--max-connections-per-host" # Настроить максимально допустимое количество подключений на хост. Допустимые значения: 6 и 15 # "--omnibox-autocomplete-filtering" # Ограничивает результаты автозаполнения омнибокса комбинацией поисковых предложений (если они включены), закладок и внутренних страниц Chrome. Принимает значения: search, search-bookmarks, search-chrome, и search-bookmarks-chrome # "--bookmark-bar-ntp" # Устанавливает видимость панели закладок на странице новой вкладки. Принимает только значение never. # "--close-confirmation" # Показывать предупреждение при закрытии окна браузера. Принимает значения: last (запрос при закрытии последнего окна с несколькими вкладками) и multiple (запрос только если открыто более одного окна) # "--custom-ntp" # Позволяет установить собственный URL-адрес для страницы новой вкладки. Значение может быть внутренним (например, about:blank или chrome://new-tab-page), внешним (например example.com) или локальным (например, file:///tmp/startpage.html). Это относится и к окнам в режиме инкогнито, если не установлено значение chrome:// внутренней страницы # "--enable-incognito-themes" # Позволяет темам изменять внешний вид окон в режиме инкогнито # "--hide-extensions-menu" # Скрывает контейнер расширений. Сюда входит значок головоломки, а также любые закрепленные расширения # "--hide-fullscreen-exit-ui" # Скрывает значок «X», который появляется, когда курсор мыши перемещается к верхней части окна в полноэкранном режиме. Кроме того, это скрывает всплывающее окно «Нажмите F11, чтобы выйти из полноэкранного режима» # "--hide-tab-close-buttons" # Скрывает кнопки закрытия на вкладках # "--enable-features=MinimalReferrers" # Удаляет все рефереры перекрестного происхождения и разделяет рефереры одного и того же происхождения до источника. Имеет более низкий приоритет, чем NoCrossOriginReferrers # "--enable-features=NoCrossOriginReferrers" # Удаляет все рефереры из перекрестного источника. Имеет более низкий приоритет, чем NoReferrers # "--enable-features=NoReferrers" # Удаляет все рефереры # "--enable-features=SetIpv6ProbeFalse" # Принудительно делает результат проверки IPv6 браузера (т. е. проверки подключения IPv6) неуспешным. Это приводит к тому, что адреса IPv4 имеют приоритет над адресами IPv6. Без этого флага результат проверки считается успешным, что приводит к использованию IPv6 вместо IPv4, когда это возможно # "--enable-features=ClearDataOnExit" # Очищает все данные просмотра при выходе # "--enable-features=DisableLinkDrag" # Предотвращает перетаскивание ссылок и выделенного текста. Позволяет выделить текст из середины ссылки. Также позволяет начать выбор без предварительной очистки существующего. Это поведение похоже на поведение старой Opera # "--enable-features=DisableQRGenerator" # Отключает QR-генератор для обмена ссылками на страницы # "--disable-top-sites" # Отключает самые популярные сайты и наиболее посещаемые записи на странице новой вкладки # "--disable-webgl" # Отключает все версии WebGL # "--enable-low-end-device-mode" # Принудительно использовать режим нижнего уровня устройства, если он установлен # "--force-dark-mode" # Включает темный режим в пользовательском интерфейсе для платформ, которые его поддерживают # "--no-pings" # Не отправлять пинг-запросы проверки гиперссылок # "--webrtc-ip-handling-policy" # Ограничить IP-адреса и интерфейсы, которые использует WebRTC # "--incognito" # Старт браузера в режиме инкогнито # "--start-maximized" # Запускает браузер в развернутом виде независимо от любых предыдущих настроек ) $udclean = @( "BrowserMetrics" "Crowd Deny" "FileTypePolicies" "FirstPartySetsPreloaded" "GrShaderCache" "hyphen-data" "MediaFoundationWidevineCdm" "MEIPreload" "OnDeviceHeadSuggestModel" "OptimizationHints" "OriginTrials" "PKIMetadata" "PrivacySandboxAttestationsPreloaded" "SafetyTips" "segmentation_platform" "ShaderCache" "SSLErrorAssistant" "Subresource Filter" "TpcdMetadata" "TrustTokenKeyCommitments" "WidevineCdm" "ZxcvbnData" "BrowserMetrics-spare.pma" "chrome_shutdown_ms.txt" "Module Info Cache" ) $uddclean = @( "BudgetDatabase" "Cache" "chrome_cart_db" "Code Cache" "commerce_subscription_db" "coupon_db" "databases" "discounts_db" "DawnCache" "Feature Engagement Tracker" "File System" "GPUCache" "IndexedDB" "optimization_guide_hint_cache_store" "optimization_guide_model_metadata_store" "parcel_tracking_db" "Service Worker" "shared_proto_db" "Shared Dictionary" "Site Characteristics Database" "Sync Data" "VideoDecodeStats" "WebStorage" ) $regclean = @( "Chromium" ) $lastcheck = "01011970" $macbuild = "1" $onlyrun = $args -match "^([/-]|--)?onlyrun$" $onlycheck = $args -match "^([/-]|--)?onlycheck$" $nolnk = $args -match "^([/-]|--)?nolnk$" $ask = $args -match "^([/-]|--)?ask$" [Net.ServicePointManager]::SecurityProtocol = 'ssl3,tls,tls11,tls12' Add-Type -AssemblyName System.Web Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing Function IconHandle { $iconBase64=@('iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAADlUlEQVR4nO2U+' '0tTYRzG979EEf1UBBbFtF21C0TShXJagVFkkd0oKCFkU1mmaYhlRqUeN2dNu7iZba3UMt0vao0uK7rQ1Wp2YddzeeI9skp33u247Lc' 'eeOBwfnk+3+f9vq9C8V9pSF97L0NlHC1ZZnzQWlTvHdlV18scutC5RvEvpTLfL1h2+O1rZWFEUG4SIOXlOzkUlL+LHDjfXTZjweraf' 'mXmvrFxZZ50qJQzDQI2HvvCHTpnN/xduNF3QrmFkx081bptPIobBu6kFa4qfeRQGtIL/tNZ+QJ21Y8+n164cfTkdCpPCWEQUNx41yM' 'vvM69RLk1/dpp1hTyOGK7uiElgLbl7sOle9kZByDeWBpgk4dbLBo18x3KmjAWb5duQb1ZQM1FAT4/EI4CMQ54EwCco4DpGlB6ZbJNX' 'QIqbvI4fodF1UAM5T0X9lABdNZbvWomCOKM3TEs3jEZIrdIgP8VEIkB14cBs2PCXSMT/z58A2o9AipcHCp7WVQPRnFyaLJNLu84FUD' 'T6g/HAVSNISxYy/+CIJOT8BefgLzTgNY82YYzwMvPwFhQwClvYnDcZX1fIRm+3G6ZEw+Pe0lJDPNXC1i0nRNrJ1NKhf8JEWEBz0uOC' 'lBNWug+o0qc3mbbMBVA3RzEwnxOhPC9EMTaaeFxO0aA9z8EKoDYwo2mygSA7LaOkgQAJojM6ogIEAwDx52pASqdQIxHCoBOl8QCdh6' 'VAhAXsoidFkCUSwVg75EAaF9HA8g6G8IDP2buCLqbzAkAKxlmNg2AuMrJiUtIFo0Wnt8wsYTXH6exhETa1qchGkC2JQh/gBevmhQEC' 'X/1GXg2BlTdTzJ9/7j0NSTSWd23k7WwviMkQpApSdVkJ4jJN/n37CNwsItNWr/JNRRQ0KS/ZFWpmW9UAGK9JYhabxS+TzxCLET7Pgg' '45QJW1fFixdT6B6MwO87vpgIQ6ax9I8kApKyt5sVjKO6KJZ/e4wsqUinH1jxPzbzjZQM0h8TwVfX0xSM23wujoqchWyFH+jb7NjXzV' 'RaApjEiAhxx0ac/MRhBmbPtoqzwuPTWa1VyIDR1LHLPscnDbzq8inSktV4uTHUcuhoexl567dOefKr0l5i5Okv/sNTt0DSHkNfCSm6' '76ZYvJPvM5SjHZs/SWd0eDfPk12O1oimMyoHfweV94zC5vYGUV+1vlWOxzMpub8/df9XeUtbT4SZvO/V5/S9Fcv0EOC7m4RioxTcAA' 'AAASUVORK5CYII=') -join '' $iconBytes = [Convert]::FromBase64String($iconBase64) [System.Drawing.Icon]::FromHandle( ([System.Drawing.Bitmap]::new( [System.IO.MemoryStream]::new($iconBytes, 0, $iconBytes.Length) ).GetHIcon()) ) } Function ShowBaloon ($message,$title="Ungoogled Chromium",$messagetype="Info") { $balloon = New-Object System.Windows.Forms.NotifyIcon $balloon.Icon = IconHandle $balloon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]$messagetype $balloon.BalloonTipText = $message $balloon.BalloonTipTitle = $title $balloon.Visible = $true $balloon.ShowBalloonTip(10000) } Function SetVar ($name,$value) { (Get-Content -Path "$batfilename") -replace "(?<=^\s*\x24$name\s*=\s*\x22)[^\x22]*","$value" | Set-Content -Path "$($batfilename).tmp" Move-Item -Path "$($batfilename).tmp" -Destination "$batfilename" -Force } Function Check { try {$offsite = Invoke-WebRequest -Uri "https://github.com/macchrome/winchrome/releases/latest"} catch {ShowBaloon -Message "Github.com is unavailable" -MessageType "Error"; return} $Script:latest = $offsite.links.href | ?{ $_ -match ".+ungoogled-chromium-([\d\.]+-\d+)_Win64\.7z" } | Select -Last 1 | %{$Script:distrlink = $matches[0]; $matches[1]} if (-not $latest) {ShowBaloon -Message "Error parsing version" -MessageType "Error"; return} SetVar -name "lastcheck" -value "$(Get-Date -Format 'ddMMyyyy')" $current = (Get-Item -Path "$batfilepath\chrome.exe" -ea 0).VersionInfo.ProductVersion if ([version]$latest.split('-')[0] -le [version]$current) { if ([int]$latest.split('-')[1] -le [int]$macbuild) {return} } if ($ask) { if ( [System.Windows.Forms.MessageBox]::Show("Ungoogled $latest is new version! Update?","Shooze action","YesNo","Question") -like 'Yes' ) { return $true } } else { ShowBaloon -Message "Ungoogled $latest is new version, start update..." return $true } } Function GetFile ($link,$name,$title,$text) { $progressForm = New-Object System.Windows.Forms.Form $progressForm.Size = New-Object System.Drawing.Size(317,150) $progressForm.StartPosition = 'CenterScreen' $progressForm.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedSingle $progressForm.BackColor = '#0B5162' $progressForm.TopMost = $True $progressForm.Text = "$title" $progressForm.Icon = IconHandle $progressBar = New-Object System.Windows.Forms.ProgressBar $progressBar.Location = New-Object System.Drawing.Point(10, 50) $progressBar.Size = New-Object System.Drawing.Size(280, 20) $progressForm.Controls.Add($progressBar) $progressLabel = New-Object System.Windows.Forms.Label $progressLabel.Location = New-Object System.Drawing.Point(10, 20) $progressLabel.Size = New-Object System.Drawing.Size(280, 20) $progressLabel.TextAlign = [System.Drawing.ContentAlignment]::MiddleLeft $progressLabel.Font = new-object System.Drawing.Font('Ariel',9,[System.Drawing.FontStyle]::Bold) $progressLabel.ForeColor = '#D7E7F7' $progressForm.Controls.Add($progressLabel) $uri = New-Object "System.Uri" $link $request = [System.Net.HttpWebRequest]::Create($uri) $request.set_Timeout(15000) $response = $request.GetResponse() $responseContentLength = $response.get_ContentLength() $totalLength = $response.get_ContentLength() / 1MB $responseStream = $response.GetResponseStream() $targetStream = New-Object -TypeName System.IO.FileStream -ArgumentList "$name", Create $buffer = new-object byte[] 10KB $count = $responseStream.Read($buffer,0,$buffer.length) $downloadedBytes = $count $progressForm.Show() while ($count -gt 0) { $targetStream.Write($buffer, 0, $count) $count = $responseStream.Read($buffer,0,$buffer.length) $downloadedBytes = $downloadedBytes + $count $progressBar.Value = (($downloadedBytes / 1MB) / $totalLength) * 100 $progressLabel.Text = "$($text): $('{0:N2} MB' -f ($downloadedBytes / 1MB)) of $('{0:N2} MB' -f ($totalLength))" $progressForm.Refresh() } $targetStream.Flush() $targetStream.Close() $targetStream.Dispose() $responseStream.Dispose() $progressForm.Close() } Function Update { if ((ps chrome -ea 0).Path -eq "$batfilepath\chrome.exe") { ShowBaloon -Message "Ungoogled is running" -MessageType "Error"; return } $Script:tmp = (New-Item -Path $("$batfilepath\"+"temp"+(get-random).tostring()) -ItemType Directory).FullName $distrname = $distrlink.split('/')[-1] try {GetFile -link "$distrlink" -name "$tmp\$distrname" -title "Ungoogled" -text "v$($Latest)"} catch {ShowBaloon -Message "Error download file $distrname" -MessageType "Error"; return} try {GetFile -link "https://www.7-zip.org/a/7zr.exe" -name "$tmp\7zr.exe" -title "7-zip" -text "Latest 7-zip"} catch {ShowBaloon -Message "Error download 7zip" -MessageType "Error"; return} &$tmp\7zr.exe x "$tmp\$distrname" -o"$tmp" -y if ($LASTEXITCODE -ne 0) {ShowBaloon -Message "Error unpack file $distrname" -MessageType "Error"; return} ShowBaloon -Message "Unpack and copy files, and start Ungoogled..." $nodel = "$userdatadir","$($tmp.split('\')[-1])","$($batfilename.split('\')[-1])","$(($proxy -Split '\\')[-1])","$((($proxy -Split "$batfilepath\",0,"SimpleMatch") -Split '\\')[1])" Get-Item -Path "$batfilepath\*" -Exclude $nodel -ea 0 | Remove-Item -Recurse -Force -ea 0 Copy-Item -Path "$tmp\ungoogl*\*" -Destination "$batfilepath" -Recurse -Force SetVar -name "macbuild" -value $latest.split('-')[1] if (-not [IO.Directory]::Exists("$batfilepath\$userdatadir")) { New-Item -Path "$batfilepath\$userdatadir" -ItemType Directory -Force | Out-Null @( '{"distribution":{"alternate_shortcut_text":false,"chrome_shortcut_icon_index":0,"create_all_shortcuts":true,' '"do_not_create_desktop_shortcut":true,"do_not_create_quick_launch_shortcut":true,"do_not_create_taskbar_shortcut":true,' '"do_not_launch_chrome":true,"do_not_register_for_update_launch":true,"import_bookmarks":false,"import_history":false,' '"import_home_page":false,"import_search_engine":false,"make_chrome_default":false,"make_chrome_default_for_user":false,' '"show_welcome_page":false,"skip_first_run_ui":true,"system_level":false,"verbose_logging":false},' '"first_run_tabs":[],"homepage":"chrome://chrome-urls","homepage_is_newtabpage":false,"safebrowsing":{"enabled":false},' '"session":{"restore_on_startup":1},"alternate_error_pages":{"enabled":false},"NewTabPage":{"DisabledModules":["dummy","dummy2"],' '"ModulesVisible":false},"account_id_migration_state":2,"autofill":{"credit_card_enabled":false,"enabled":false,' '"orphan_rows_removed":true,"profile_enabled":false},"bookmark_bar":{"show_apps_shortcut":false,"show_on_all_tabs":false,' '"show_only_on_ntp":true,"show_reading_list":false},"browser":{"show_home_button":true,"check_default_browser":false,' '"clear_data":{"browsing_history_basic":true,"cache_basic":true,"cookies_basic":true,"form_data":true,"hosted_apps_data":true,' '"media_licenses":true,"passwords":true,"preferences_migrated_to_basic":true,"site_settings":true,"time_period":4,' '"time_period_basic":4},"clear_lso_data_enabled":true,"has_seen_welcome_page":true,"last_clear_browsing_data_tab":1,' '"window_placement":{"bottom":720,"left":64,"maximized":true,"right":1200,"top":32}},"credentials_enable_autosignin":false,' '"credentials_enable_service":false,"default_apps_install_state":2,"download":{"directory_upgrade":true,"prompt_for_download":true},' '"enable_do_not_track":true,"extensions":{"alerts":{"initialized":true},"ui":{"developer_mode":true}},' '"media":{"engagement":{"schema_version":4}},"net":{"network_prediction_options":2},"omnibox":{"prevent_url_elisions":true},' '"payments":{"can_make_payment_enabled":false},"profile":{"avatar_index":24,"block_third_party_cookies":true,' '"content_settings":{"clear_on_exit_migrated":true,"pref_version":1},' '"default_content_setting_values":{"background_sync":2,"cookies":1},' '"exit_type":"Normal","exited_cleanly":true,"local_avatar_index":24,' '"managed_user_id":"","name":"","password_manager_enabled":false},"search":{"suggest_enabled":false}}' ) -join '' | Set-Content -Path "$batfilepath\master_preferences" @( '{"background_mode":{"enabled":false},"browser":{"enabled_labs_experiments":["chrome-refresh-2023@3",' '"chrome-webui-refresh-2023@2","customize-chrome-side-panel@2","ignore-gpu-blocklist","smooth-scrolling@2"]},' '"hardware_acceleration_mode_previous":true,"profile":{"last_used":"Default"}}' ) -join '' | Set-Content -Path "$batfilepath\$userdatadir\Local State" } } if (-not $onlyrun) { if ((ping -n 1 ya.ru) -match 'TTL=') { if ($onlycheck -or (New-TimeSpan -Start $([datetime]::parseexact($lastcheck, 'ddMMyyyy', $null))).Days -ge [int]$CheckInterval) { if (Check) {Update; Remove-Item -Path "$tmp" -Recurse -Force -ErrorAction SilentlyContinue} } } else { ShowBaloon -Message "No internet connection" -MessageType "Error" } } if (-not $nolnk) { if (-not [IO.File]::Exists("$env:USERPROFILE\Desktop\Ungoogled Chromium.lnk")) { $lnkpath = Get-Item -Path "$env:USERPROFILE\Desktop\*.lnk" | %{ (New-Object -COM WScript.Shell).CreateShortcut($_) } | ?{$_.TargetPath -like "*powershell.exe*" -and $_.Arguments -like "*$batfilename*"} if ([IO.File]::Exists("$batfilepath\chrome.exe") -and -not $lnkpath) { $shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut("$env:USERPROFILE\Desktop\Ungoogled Chromium.lnk") $shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" $shortcut.IconLocation = "$batfilepath\chrome.exe, 0" $shortcut.WindowStyle = 7 $shortcut.Arguments = "-NoProfile -WindowStyle Hidden -Command cmd /c `'$batfilename`'" $shortcut.WorkingDirectory = "$batfilepath" $shortcut.Save() } } } if (-not $onlycheck) { if ([IO.File]::Exists("$batfilepath\chrome.exe")) { if ($proxy) { if (-not [IO.File]::Exists($proxy)) { try {$dirproxy = Split-path "$proxy"} catch {ShowBaloon -Message "Error path opera-proxy" -MessageType "Error"; $errproxy=$true} if ($dirproxy -and $dirproxy -notmatch $baddirs) { if (-not [IO.Directory]::Exists($dirproxy)) {New-Item -Path "$dirproxy" -ItemType Directory -Force | Out-Null} try {GetFile -link "https://github.com/Snawoot/opera-proxy/releases/download/v1.2.3/opera-proxy.windows-amd64.exe" -name "$proxy" -title "Opera-proxy" -text "v1.2.3"} catch {ShowBaloon -Message "Error download opera-proxy" -MessageType "Error"; $errproxy=$true} } else { ShowBaloon -Message "$dirproxy is bad directory for Opera proxy" -MessageType "Error"; $errproxy=$true } } } if ($proxy -and -not $errproxy) { Start-Process -FilePath $proxy -ArgumentList $proxyarg -WindowStyle Hidden Start-Process -FilePath "$batfilepath\chrome.exe" -ArgumentList $argslist -WorkingDirectory "$batfilepath" while ((ps chrome -ea 0).Path -eq "$batfilepath\chrome.exe") { if (-not(Get-WmiObject Win32_Process -Filter "name = '$($proxy.split('\')[-1])'" | ?{$_.CommandLine -like "*$proxyarg*"})) { Start-Process -FilePath $proxy -ArgumentList $proxyarg -WindowStyle Hidden } Start-Sleep -s 11 } } else { $argslist = $argslist | ?{$_ -notlike "--proxy-server=*"} Start-Process -FilePath "$batfilepath\chrome.exe" -ArgumentList $argslist -WorkingDirectory "$batfilepath" -Wait } Get-Item -Path "$batfilepath\$userdatadir\*","$batfilepath\$userdatadir\Default\*" -Include $($udclean+$uddclean) | Remove-Item -Recurse -Force -ea 0 Remove-Item -Path "HKCU:Software\*" -Include $regclean -Recurse -Force -ea 0 Stop-Process -Id $([int]((Get-WmiObject Win32_Process -Filter "name = '$(($proxy -Split '\\')[-1])'" | ?{$_.CommandLine -like "*$proxyarg*"}).ProcessID)) -ea 0 } else { ShowBaloon -Message "Missed chrome.exe, run this again for download" -MessageType "Error" SetVar -name "lastcheck" -value "01011970" } } |
| Всего записей: 289 | Зарегистр. 19-05-2006 | Отправлено: 15:48 24-03-2024 | Исправлено: virjokk, 09:11 06-04-2024 |
|