"Zapret must be extracted from archive first": что делать
Строка означает, что bat-файл не нашёл рядом папку bin: сборку запустили из архива или распаковали не целиком. Распакуйте архив по пути без кириллицы, например в C:\zapret.
Чёрное окно мелькнуло и закрылось, а в нём успели прозвучать две строки: Zapret must be extracted from archive first or bin folder not found for some reason и Press any key to continue . . .. Это значит, что bat-файл не нашёл рядом с собой папку bin, где лежат рабочие файлы обхода. Почти всегда причина одна: вы запустили сборку прямо из архива или распаковали не всё. Распакуйте архив целиком и запустите заново, а не открывайте файл из окна архиватора.
Откуда берётся эта строка
Перед стартом bat-файл проверяет, есть ли рядом с ним папка bin: в ней лежит winws.exe, сам движок обхода. Скрипт ищет его по принципу «там же, где я лежу». Нет папки? Печатается эта строка, и окно закрывается. Проверка идёт до запроса прав администратора, поэтому окна UAC вы не увидите: сборка падает раньше.
Zapret must be extracted from archive first or bin folder not found for some reason
Press any key to continue . . .Самый частый случай — двойной клик по bat-файлу в окне архиватора. Архиватор вытаскивает один файл во временную папку, bin там нет. Это как открыть письмо из коробки, не распаковав коробку. Реже бывает, что распаковали только bat-файлы, а папки bin, lists и остальные не тронули, или при распаковке вышла папка в папке, и bat-файлы скопировали наружу. Ещё вариант — антивирус удалил папку bin целиком.
Проверьте глазами: откройте папку, где лежит service.bat. Рядом должна стоять папка bin. Если папка на месте, а не хватает только файла WinDivert64.sys внутри неё, это другая строка и другая причина: о ней подробно на странице про пропавший WinDivert64.sys.
Распаковать архив правильно
- 1
Откройте свойства скачанного архива
Внизу окна свойств поставьте галочку «Разблокировать» и нажмите «Применить». Если у вас 7-Zip или PeaZip, этот шаг можно пропустить.
- 2
Распакуйте архив целиком
Правой кнопкой по архиву → «Извлечь всё…». Двойной клик по zip открывает архив как папку, но это не распаковка: файлы остаются внутри архива.
- 3
Проверьте путь
В пути к папке не должно быть русских букв, пробелов и спецсимволов. Документация говорит прямо: «Распакуйте содержимое архива по пути, который не содержит кириллицу/спец. символы».
- 4
Положите папку в корень диска
Подойдёт
C:\zapretилиD:\zapret, корень не обязательно значит диск C. Главное, чтобы путь был коротким и чистым. - 5
Запустите
service.batилиgeneral.batуже из распакованной папкиЕсли рядом есть
bin, строка проmust be extractedне появится.
Полная установка с нуля, включая DNS и первый запуск, разобрана на странице установки сборки. Где взять архив и как убедиться, что он настоящий, подробно на странице о GitHub-репозитории.
Жёлтая строка: в пути есть русские буквы
Если запустить Run Diagnostics, при кириллице в пути вы увидите жёлтую строку [?] The path where Zapret is installed contains Cyrillic characters, а под ней совет сборки: If bypass doesn't work, try to move Zapret to another directory, for example in C:\zapret. Первой строкой диагностика печатает путь зелёным: Zapret is installed in: 'C:\Users\Иван\Downloads\zapret\'. По нему сразу видно, где именно прячутся русские буквы.
Диагностика ищет русские буквы в пути к папке сборки. Типичный источник — имя пользователя Windows: если пользователь назван Иван, папка «Загрузки» или «Рабочий стол» автоматически содержит кириллицу в адресе, и распакованная туда сборка попадает под эту строку. Консольные скрипты и русские буквы в пути дружат плохо: часть команд перестаёт находить файлы, и обход ломается без всяких сообщений об ошибке.
Переименовывать пользователя не нужно. Вынесите папку сборки из C:\Users\… в корень диска, например в C:\zapret, и кириллица исчезнет из пути сама.
Красная строка: папка внутри OneDrive
Красная строка [X] Zapret is installed in a OneDrive folder означает, что папка сборки лежит внутри OneDrive. На Windows 10 и 11 с включённым OneDrive папки «Рабочий стол», «Документы» и «Изображения» физически находятся внутри C:\Users\<имя>\OneDrive\. Поэтому если вы распаковали сборку на рабочий стол, вы почти наверняка попали в OneDrive, даже не замечая этого.
Сборка считает это ошибкой, и не зря: синхронизация OneDrive подменяет файлы и держит их занятыми, а от этого страдают драйвер и списки обхода. Отключать OneDrive не нужно, достаточно вынести папку сборки из его зоны, в тот же C:\zapret.
Как выглядит правильная папка
Остальные строки Run Diagnostics разобраны отдельно, на странице о диагностике.
Переезд, когда служба уже установлена
Если вы уже ставили службу Windows, нельзя просто перенести папку: служба хранит старый путь и после переезда не поднимется. Порядок такой: Remove Services, перенести папку в новое место, затем Install Service заново. Подробнее о перестановке службы написано на странице о службе.
Окно может закрываться и по другим причинам, например нет прав администратора или испорчен PATH. Эти случаи разобраны на странице «окно закрывается сразу».
Частые вопросы
Распаковал в C:\Program Files\zapret, диагностика зелёная, а обход не работает
Диагностика проверяет только кириллицу и OneDrive, пробелы в пути она не замечает, а документация просит путь без пробелов. Перенесите папку в C:\zapret.
Можно оставить папку на рабочем столе?
Если рабочий стол не внутри OneDrive и имя пользователя латиницей, сборка не возразит. Но C:\zapret короче, и во всех инструкциях фигурирует именно она.
Перенёс папку, теперь служба не запускается
Служба помнит старый путь. Нажмите Remove Services, затем в новом месте Install Service — и служба поднимется.
У меня в пути и кириллица, и OneDrive, но всё работает. Переносить?
Можно не переносить, пока работает. Но при первом же сбое перенос будет первым, что попросят сделать, так что проще сделать это сейчас.
Дальше по теме