Функція відкладеного запуску нові можливості для служб windows - статті про microsoft windows


Будь-якому адміністратору хоч раз доводилося додавати в автозавантаження сервера завдання, що вимагають виконання в строго визначеної послідовності. У мене найчастіше виникають проблеми зі службами, для нормальної роботи яких необхідне підключення до бази даних на цьому ж сервері. Раніше це вирішувалося за допомогою витончених сценаріїв або шляхом запуску додатків поза службової середовища Windows (страшно згадати), але в нових продуктах Windows передбачена спеціальна опція, що дозволяє управляти автоматичним завантаженням.







Опція відкладеного запуску дозволяє оптимізувати процес завантаження системи і полегшує настройку додатків для послідовної автозавантаження. Процес настройки відкладеного запуску для служб нічим не відрізняється від традиційного (рис. A).

Налаштувати відкладений запуск можна не тільки за допомогою графічного інтерфейсу, але і в реєстрі. змінивши значення параметра Dword в розділі «DelayedAutoStart». При цьому всі стандартні служби, що працюють в автоматичному режимі, запущений не будуть: службам, для яких вибраний відкладений запуск, просто буде присвоєно знижений пріоритет.

Процес настройки відкладеного запуску для служб Windows описується в блозі TechNet.

У попередніх версіях Windows при завантаженні системи процес диспетчера сеансів (Session Manager, SMSS.EXE) запускав клієнт-серверну підсистему (Client-Server Runtime Subsystem, CSRSS.EXE) і процес входу в систему (WINLOGON.EXE). Останній запускав процес сервера перевірки справжності локальної системи безпеки (Local Security Authority Subsystem Service, LSASS.EXE) і диспетчер управління службами (Service Control Manager, SERVICES.EXE). При консольному вході користувач підключався до сеансу 0 (Session 0), який використовувався і системними процесами. Недолік такого підходу полягав в тому, що при наявності у некоректно складеної служби Windows, запущеної в сеансі 0, призначеного для користувача інтерфейсу в інтерактивній консолі, шкідливе програмне забезпечення могло атакувати дане вікно з використанням повідомлень і отримати адміністративні права.







Одночасно з сеансом 0 инициализируется сеанс консолі (Console session). Перший примірник SMSS.EXE створює нову копію самого себе для настройки сеансу консолі, як і в випадку з сеансом 0. Новий екземпляр SMSS.EXE запускає CSRSS.EXE і WINLOGON.EXE для сеансу консолі, готуючи систему до входу користувача. Після цього WINLOGON.EXE запускає хост-інтерфейс входу користувача (Logon User Interface Host, LOGONUI.EXE), який, в свою чергу, виводить вікно «Параметри безпеки» (Windows Security) з пропозицією натиснути [Ctrl] + [Alt] + [ Delete] для входу.

Як же діє нова функція? Диспетчер управління службами запускає служби, для яких вибраний відкладений запуск, після завантаження ланцюжка процесів, зазначених для автозапуску. Ланцюжку служб, що запускаються в відкладеному режимі, присвоюється пріоритет THREAD_PRIORITY_LOWEST, і відповідно, всі операції введення / виводу, що ініціюються даними службами, мають найнижчий пріоритет. Після ініціалізації служби диспетчер управління службами знову привласнює їй нормальний пріоритет.

Поєднання відкладеного запуску, зниженого пріоритету для ЦП, оперативної пам'яті і фонових операцій введення / виводу, значно знижує навантаження на систему, не перешкоджаючи нормальному входу користувача. Багато служби Windows, включаючи фонове інтелектуальну службу передачі (Background Intelligent Transfer Service, BITS), клієнт служби Windows Update (Windows Update Client) і службу Windows Media Center, тепер запускаються в відкладеному режимі, щоб прискорити процес входу в систему при завантаженні. Щоб налаштувати службу для автоматичного запуску в відкладеному режимі, слід створити параметр REG_DWORD з ім'ям «DelayedAutoStart» в підрозділі конфігурації для даної служби в розділі «HKLM \ SYSTEM \ CurrentControlSet \ Services».