Запитання

Запитання й обмеження

Інструмент, який мовчки щось не охоплює, гірший за той, що каже, чого не вміє. Обмеження теж на цій сторінці, у двох групах: від чого він відмовляється за задумом і що робить 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.<code>.json, що лежить поруч із виконуваним файлом, і вибирає його за мовою Windows, без перемикача, тож переклад - це внесок, який можна додати без перебудови програми. Назви служб у списку - такі, якими їх називає ваша 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? Трекер задач відкритий, а різниця між ними - найкорисніше, що можна туди вставити.