Вопросы и ограничения
Инструмент, который молча чего-то не охватывает, хуже того, который говорит, чего он не умеет. Ограничения тоже есть на этой странице, в двух группах: от чего он отказывается по замыслу и что делает Windows, а этот инструмент сообщает как есть.
Чем это отличается от sc.exe, Get-Service или services.msc?
sc query и Get-Service говорят, что работает. services.msc позволяет это менять, по одной строке, без возможности задать вопрос и без записи после. Этот инструмент задаёт вопрос (start:auto !status:running), показывает план до действия и хранит снимок, который можно сравнить неделю спустя. Где он расходится с sc.exe в отношении службы, это ошибка: часть набора тестов запускает оба и сравнивает их запись за записью. Более подробное сравнение - здесь.
Нужен ли интернет?
Никогда. Ни телеметрии, ни проверки обновлений, ни отчётов о сбоях, ни учётной записи, ни клиента чего бы то ни было. Единственный случай, когда он вообще может коснуться сети, - когда вы передаёте --follow-network: тогда он может заглянуть в путь запуска на общем ресурсе другой машины и позволить Windows получить сертификат, которого на этой машине ещё нет - по умолчанию выключено, и справка объясняет почему. Кнопки GitHub и Donate в окне и страница в меню Help при нажатии передают вашему браузеру один фиксированный адрес, а соединяется ваш браузер.
Нужны ли права администратора?
Чтобы смотреть - нет. Чтобы менять - да. Без них диспетчер показывает меньше записей и больше отказывает, и обе половины говорят об этом вверху, а не делают вид, что список - это вся машина. Окно предлагает Restart as admin. Само права оно никогда не повышает.
Он бесплатный? Можно ли пользоваться им на работе?
Да на оба вопроса. GPL-3.0, без условий. Снимок, который вы делаете, - ваш файл.
Не сломает ли он мой сервер?
Сам по себе нет. Ничего не меняется без плана, который вы видели, драйверы отклоняются, а план, который обрушил бы то, что нужно машине, говорит об этом. От чего он защитить не может - это от выполнения плана, который вы не прочитали. Список служб, нужных машине, - это стартовый список из семи: две половины RPC и средство запуска DCOM, диспетчер учётных записей, изоляция ключей, диспетчер сеансов и Plug and Play - и Удалённого рабочего стола в нём нет, поэтому в удалённом сеансе читайте план.
Это продукт Microsoft?
Нет. Better Windows Services - независимый проект с открытым кодом, не связанный с Microsoft, не одобренный и не спонсируемый Microsoft. Windows - товарный знак группы компаний Microsoft.
Есть ли программа на моём языке?
Нет: программа говорит по-английски, поэтому этот сайт переведён. Окно читает файл языка, languages\gui.<код>.json, лежащий рядом с исполняемым файлом, и выбирает его по языку Windows, без переключателя, так что перевод - это вклад, который можно добавить без пересборки программы. Имена служб в списке - такие, какими их называет ваша Windows, на языке, на котором она настроена.
Почему окно тёмное, когда моя Windows светлая?
Оно тёмное и остаётся тёмным, как бы ни была настроена Windows, включая тему с высокой контрастностью. Это проверено, а не предположено: оно хранит свои цвета и остаётся читаемым и не следует этой настройке.
По замыслу
- Только локальная машина. Удалённого управления в этой версии нет. Чтобы сравнить две машины, сделайте снимок на каждой и сравните два файла.
- Только Windows, только 64-разрядная, Windows 10 1809 или Windows Server 2019 и новее.
- Операции над драйверами отклоняются, а не пробуются, потому что остановка драйвера ядра часто необратима без перезагрузки.
- Инструмент сам не повышает свои привилегии. Когда диспетчер отказывает, он сообщает об этом и завершается с кодом завершения
3. Окно предлагает перезапуститься от имени администратора и больше ничего с этим не делает. - Отзыв сертификатов не проверяется. Для этого понадобилась бы сеть, а этот инструмент никогда её не использует. Поэтому Trusted значит, что цепочка была действительна на этой машине, а не что никто с тех пор не отозвал сертификат.
- Перед запуском окно распаковывает часть интерфейсного фреймворка Windows. Как один файл, оно несёт несколько собственных библиотек, которые Windows умеет загружать только с диска. Без прав администратора оно пишет их при первом запуске каждой версии в папку
.netво временной папке учётной записи и загружает оттуда. С правами администратора оно вместо этого используетProgramData\BetterWindowsServicesна диске с Windows - папку, которую создаёт так, чтобы изменять её могли только администраторы, и проверяет при каждом запуске. Если папку не удаётся создать или её могут изменять другие, окно не запускается и говорит, какая это папка и что делать. Переход туда означает, что окно с повышенными правами запускает само себя второй раз, на что уходит доля секунды, и каждая версия оставляет там свои библиотеки (около 8 МБ), пока кто-нибудь не удалит папку. Командная строка таких библиотек не несёт и ничего не распаковывает. - Сеанс с повышенными правами называет унаследованные настройки .NET, а не отказывается от них. Профилировщик, переключатель трассировки или дампа или диагностический порт, заданные в среде, нельзя отключить изнутри программы .NET, поэтому при правах администратора обе половины перечисляют те, что найдут. Хуки запуска отключаются полностью.
То, что делает Windows, а этот инструмент сообщает как есть
- У службы, размещённой внутри
svchost, путь запуска называет хост, поэтому и файл на месте, и кто подписал говорят меньше, чем для службы со своим процессом. - Файл и со своей подписью, и с записью в каталоге Windows может называть двух разных подписантов. Показанный издатель - тот, что внутри файла, тот, что остаётся тем же, когда на файл смотрят на другой машине, - и он может отличаться от того, что сообщает PowerShell.
- Без прав администратора диспетчер перечисляет меньше записей и отказывает в большем числе из перечисленных. Обе половины говорят об этом вверху, а снимок это записывает, потому что сравнение снимка с повышенными правами со снимком без прав иначе сообщило бы как удалённые записи, которых никто не удалял.
Нашли проблему или службу, которую этот инструмент сообщает не так, как sc.exe? Трекер задач открыт, а разница между ними - самое полезное, что можно туда вставить.