Раздел 11 — Администрирование Windows

Повседневная работа администратора: службы, журналы событий, реестр, задания по расписанию и откат изменений

Прогресс курса Раздел 11 из 12

Что вы освоите в этом разделе

8 академических часов: 2 теории, 6 практики. Перед практикой сделайте снимок ВМ: в разделе меняются службы и реестр. Команды — в терминале администратора.
01

Службы

Служба — программа, которая работает в фоне без входа пользователя и без окна: печать, обновления, антивирус, журнал событий, веб-сервер. Службами управляет диспетчер служб services.exe (раздел 04: его запускает wininit). Графическая оснастка — Win+R → services.msc.

PS> Get-Service | Group-Object Status | Select-Object Count, Name
Count Name
----- ----
  172 Stopped
   98 Running
PS> Get-Service Spooler, wuauserv, WinDefend, EventLog | Select-Object Name, DisplayName, Status, StartType
Name      DisplayName                                       Status StartType
----      -----------                                       ------ ---------
EventLog  Журнал событий Windows                           Running Automatic
Spooler   Диспетчер печати                                 Running Automatic
WinDefend Служба антивирусной программы Microsoft Defender Running Automatic
wuauserv  Центр обновления Windows                         Running    Manual
PS> Get-Service Spooler -RequiredServices
Status   Name               DisplayName
------   ----               -----------
Running  RPCSS              Удаленный вызов процедур (RPC)
Running  http               HTTP-служба

У каждой службы есть тип запуска:

ТипКогда запускается
АвтоматическиПри загрузке Windows
Автоматически (отложенный запуск)Через пару минут после загрузки — чтобы не тормозить вход
ВручнуюКогда её запросит программа или администратор. Центр обновления — такая: он запускается сам, когда нужно
ОтключенаНикогда, даже по запросу

Службы зависят друг от друга: Диспетчер печати не запустится без службы RPC и HTTP. Если служба не стартует, первым делом проверяют её зависимости. Полную настройку показывает sc qc: исполняемый файл, тип запуска, учётная запись, под которой работает служба (LocalSystem — максимальные права):

PS> sc.exe qc Spooler
[SC] QueryServiceConfig: успех

Имя_службы: Spooler
        Тип                  : 110  WIN32_OWN_PROCESS (interactive)
        Тип_запуска          : 2   AUTO_START
        Управление_ошибками  : 1   NORMAL
        Имя_двоичного_файла  : C:\WINDOWS\System32\spoolsv.exe
        Группа_запуска       : SpoolerGroup
        Тег                  : 0
        Выводимое_имя        : Диспетчер печати
        Зависимости          : RPCSS
                             : http
        Начальное_имя_службы : LocalSystem

В PowerShell sc — псевдоним другой команды, поэтому пишут sc.exe. Остановка и запуск:

PS> Stop-Service Spooler; Get-Service Spooler
Status   Name               DisplayName
------   ----               -----------
Stopped  Spooler            Диспетчер печати
PS> Start-Service Spooler; Get-Service Spooler
Status   Name               DisplayName
------   ----               -----------
Running  Spooler            Диспетчер печати

Тип запуска меняют Set-Service Spooler -StartupType Disabled или в свойствах службы. На вкладке «Восстановление» задают, что делать при сбое: перезапустить службу, перезагрузить компьютер или ничего.

02

Служба не запускается: разбор по журналу

Создадим службу, которая заведомо не заработает: вместо программы-службы укажем обычную cmd.exe. Настоящая служба при запуске должна сообщить диспетчеру служб «я работаю», а cmd этого не умеет:

PS> New-Service os-demo -BinaryPathName "C:\Windows\System32\cmd.exe /c exit" -DisplayName "Учебная служба" -StartupType Manual | Out-Null
PS> Start-Service os-demo
Start-Service : Не удается запустить службу "Учебная служба (os-demo)" из-за следующей ошибки: Не удалось запустить службу os-demo на компьютере '.'.
PS> sc.exe start os-demo
[SC] StartService: ошибка: 1053:

Служба не ответила на запрос своевременно.
PS> Get-Service os-demo
Status   Name               DisplayName
------   ----               -----------
Stopped  os-demo            Учебная служба

PowerShell пишет общими словами «не удалось запустить», sc.exe называет код ошибки: 1053 — служба не ответила вовремя. Подробности всегда в журнале событий «Система», источник — Service Control Manager:

PS> Get-WinEvent -FilterHashtable @{LogName="System"; ProviderName="Service Control Manager"; Level=2} -MaxEvents 10 | Where-Object Message -match "Учебная служба" | Select-Object -First 1 | Format-List TimeCreated, Id, LevelDisplayName, Message
TimeCreated      : 31.10.2026 10:50:17
Id               : 7000
LevelDisplayName : Ошибка
Message          : Сбой при запуске службы "Учебная служба" из-за ошибки
                   Служба не ответила на запрос своевременно.

Порядок разбора любого сбоя: время сбоя → журнал «Система» или «Приложение» за это время → события уровня «Ошибка» → код и текст → поиск по коду. Код 1053 обычно значит, что программа службы зависла при запуске, повреждена или ей не хватает зависимостей. Учебную службу удаляют командой sc.exe delete os-demo.

03

Журналы событий

Просмотр событий — Win+R → eventvwr.msc. Основные журналы Windows:

PS> Get-WinEvent -ListLog Application, System, Security | Select-Object LogName, RecordCount, @{n="МБ"; e={[math]::Round($_.MaximumSizeInBytes/1MB)}}
LogName     RecordCount МБ
-------     ----------- --
Application         969 20
System             1662 20
Security          26673 20
PS> Get-WinEvent -FilterHashtable @{LogName="System"; Level=2} -MaxEvents 200 | Group-Object ProviderName | Sort-Object Count -Descending | Select-Object -First 5 Count, Name
Count Name
----- ----
   16 Service Control Manager
   14 Microsoft-Windows-BitLocker-Driver
   12 Microsoft-Windows-FilterManager
    3 Microsoft-Windows-WindowsUpdateClient
    3 Microsoft-Windows-DistributedCOM

Журнал безопасности самый большой: каждый вход и проверка прав — запись. Размер журналов ограничен (здесь 20 МБ), старые записи затираются новыми — если журнал нужен для расследования, его размер увеличивают или пересылают события на сервер. Вторая команда отвечает на вопрос «что тут чаще всего ломается»: последние 200 ошибок журнала «Система», сгруппированные по источнику.

Уровни событий: «Критический», «Ошибка», «Предупреждение», «Сведения». В Get-WinEvent уровень — числом: 1, 2, 3, 4. Полезные коды: 41 (Kernel-Power) — неожиданная перезагрузка, например пропало питание; 6005 и 6006 — запуск и остановка службы журнала, то есть загрузка и завершение Windows; 4625 в журнале «Безопасность» — неудачный вход, их поток — признак подбора пароля.

04

Реестр

Реестр — база настроек Windows и программ: дерево разделов (ключей) со значениями внутри. Основные корневые разделы:

РазделЧто хранит
HKEY_LOCAL_MACHINE (HKLM)Настройки компьютера: оборудование, службы, программы для всех
HKEY_CURRENT_USER (HKCU)Настройки вошедшего пользователя: рабочий стол, программы
HKEY_USERSНастройки всех загруженных профилей
HKEY_CLASSES_ROOTКакая программа открывает какой тип файла

Службы, кстати, тоже описаны в реестре: HKLM\SYSTEM\CurrentControlSet\Services\Spooler. Сведения о версии Windows:

PS> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object ProductName, DisplayVersion, CurrentBuild, EditionID
ProductName    DisplayVersion CurrentBuild EditionID
-----------    -------------- ------------ ---------
Windows 10 Pro 26H2           26300        Professional

Знаменитая ловушка: в ProductName у Windows 11 написано «Windows 10 Pro» — Microsoft не стала менять значение ради совместимости старых программ. Версию надёжнее определять по номеру сборки: 22000 и выше — Windows 11.

Редактор — Win+R → regedit, в командной строке — reg, в PowerShell реестр выглядит как диски HKLM: и HKCU:. Создадим ключ с настройкой, прочитаем, сохраним в файл и удалим:

PS> New-Item HKCU:\Software\os-demo | Out-Null; New-ItemProperty HKCU:\Software\os-demo -Name Server -Value "srv-01" | Out-Null
PS> Get-ItemProperty HKCU:\Software\os-demo | Select-Object Server
Server
------
srv-01
PS> reg query HKCU\Software\os-demo
HKEY_CURRENT_USER\Software\os-demo
    Server    REG_SZ    srv-01
PS> reg export HKCU\Software\os-demo os-demo.reg /y; Get-Content os-demo.reg
Операция успешно завершена.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\os-demo]
"Server"="srv-01"
PS> Remove-Item HKCU:\Software\os-demo

reg export — резервная копия ключа в файл .reg; вернуть её — reg import os-demo.reg или двойной щелчок по файлу.

Реестр не спрашивает «вы уверены?» и не имеет корзины. Неверное значение в HKLM\SYSTEM может сделать Windows незагружаемой. Перед правкой — снимок ВМ или хотя бы reg export ключа.
05

Планировщик заданий

Планировщик заданий (Win+R → taskschd.msc) запускает программы по расписанию или по событию: при входе, при загрузке, при появлении записи в журнале. Сама Windows держит в нём сотни заданий: обновления, оптимизацию дисков, проверку защитника.

Задание = действие (что запустить) + триггер (когда) + учётная запись (от чьего имени). Сделаем ежедневный архив папки docs в 18:00 от имени системы (SID S-1-5-18 — учётная запись СИСТЕМА, ей не нужен пароль и вход пользователя). Сразу запустим вручную, чтобы проверить:

PS> $a = New-ScheduledTaskAction -Execute powershell -Argument '-NoProfile -Command "Compress-Archive -Path C:\Users\student\os\docs -DestinationPath C:\Users\student\os\backup-$(Get-Date -Format yyyy-MM-dd).zip -Force"'
PS> $t = New-ScheduledTaskTrigger -Daily -At 18:00
PS> $p = New-ScheduledTaskPrincipal -UserId "S-1-5-18" -RunLevel Highest
PS> Register-ScheduledTask os-backup -Action $a -Trigger $t -Principal $p -Description "Архив папки docs" | Out-Null
PS> Start-ScheduledTask os-backup; Start-Sleep 8; Get-ScheduledTaskInfo os-backup | Select-Object LastRunTime, LastTaskResult, NextRunTime
LastRunTime         LastTaskResult NextRunTime
-----------         -------------- -----------
31.10.2026 10:50:22              0 31.10.2026 18:00:00
PS> Get-ChildItem backup-*.zip | Select-Object Name, Length
Name                  Length
----                  ------
backup-2026-10-31.zip    146
PS> schtasks /query /tn os-backup /fo list
Папка: \
Имя узла:                 PC-01
Имя задачи:               \os-backup
Время следующего запуска: 31.10.2026 18:00:00
Состояние:                Готово
Режим входа в систему:    Интерактивный/фоновый

LastTaskResult 0 — успешно; любое другое число — код ошибки, его ищут в журнале «Microsoft → Windows → TaskScheduler». Архив создан, следующий запуск — сегодня в 18:00. Удаление — Unregister-ScheduledTask os-backup; в cmd то же делают schtasks /create, /query, /delete.

06

Обновления и точки восстановления

Обновления закрывают уязвимости, и большинство атак используют давно исправленные ошибки на необновлённых компьютерах. Настройки — Параметры → Центр обновления Windows, журнал — там же, «Журнал обновлений». Установленные обновления в PowerShell:

PS> Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 4 HotFixID, Description, InstalledOn
HotFixID  Description     InstalledOn
--------  -----------     -----------
KB5127647 Security Update 29.10.2026 0:00:00
KB5127648 Security Update 29.10.2026 0:00:00
KB5127694 Update          29.10.2026 0:00:00
KB5121794 Update          29.10.2026 0:00:00

KB-номер — идентификатор обновления: по нему ищут описание и, если обновление что-то сломало, удаляют его (wusa /uninstall /kb:номер). В организациях обновления сначала ставят на тестовые машины, а потом на остальные.

Точка восстановления — снимок системных файлов, реестра и драйверов (но не документов пользователя). Если после установки драйвера или программы Windows работает плохо, к точке можно откатиться: Win+R → rstrui. Работают точки, только если для диска включена защита системы — в ВМ курса она была выключена:

PS> Get-ComputerRestorePoint
PS> Enable-ComputerRestore -Drive "C:\"
PS> Checkpoint-Computer -Description "Перед практической работой" -RestorePointType MODIFY_SETTINGS
PS> Get-ComputerRestorePoint | Select-Object SequenceNumber, Description, @{n="Создана"; e={$_.ConvertToDateTime($_.CreationTime)}}
SequenceNumber Description                Создана
-------------- -----------                -------
             2 Перед практической работой 31.10.2026 10:50:34

Включили защиту диска C:, создали точку, проверили. Windows сама создаёт точки перед установкой обновлений и драйверов, но не чаще раза в сутки. Настройка в графике — Win+R → sysdm.cpl → Защита системы. Для документов нужна отдельная резервная копия: «История файлов», копирование на другой диск или сервер. Точка восстановления, снимок ВМ и резервная копия — три разные вещи, и только последняя спасает от поломки диска.

07

То же в Linux

Службами в Debian управляет systemd. Запущенные службы:

$ systemctl list-units --type=service --state=running --no-pager --no-legend | head -8
  avahi-daemon.service       loaded active running Avahi mDNS/DNS-SD Stack
  containerd.service         loaded active running containerd container runtime
  cron.service               loaded active running Regular background program processing daemon
  dbus.service               loaded active running D-Bus System Message Bus
  docker.service             loaded active running Docker Application Container Engine
  getty@tty1.service         loaded active running Getty on tty1
  polkit.service             loaded active running Authorization Manager
  postgresql@17-main.service loaded active running PostgreSQL Cluster 17-main
$ systemctl list-units --type=service --state=running --no-pager --no-legend | wc -l
15

Состояние одной службы — systemctl status: включена ли при загрузке (enabled), работает ли (active (running)), с какого времени, PID главного процесса, память:

$ systemctl status cron --no-pager -n 0
● cron.service - Regular background program processing daemon
     Loaded: loaded (/usr/lib/systemd/system/cron.service; enabled; preset: enabled)
     Active: active (running) since Wed 2026-08-26 09:37:01 MSK; 2 months 5 days ago
 Invocation: 44cd676a63fa4cb0a352137cf12dbd66
       Docs: man:cron(8)
   Main PID: 579 (cron)
      Tasks: 1 (limit: 4638)
     Memory: 1.1M (peak: 3.6M, swap: 120K, swap peak: 252K)
        CPU: 1min 2.088s
     CGroup: /system.slice/cron.service
             └─579 /usr/sbin/cron -f
$ systemctl is-enabled cron; systemctl is-active cron
enabled
active

Описание службы — юнит-файл: что запускать (ExecStart), после чего (After), перезапускать ли при сбое (Restart=on-failure):

$ systemctl cat cron --no-pager
# /usr/lib/systemd/system/cron.service
[Unit]
Description=Regular background program processing daemon
Documentation=man:cron(8)
After=remote-fs.target nss-user-lookup.target

[Service]
EnvironmentFile=-/etc/default/cron
ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
IgnoreSIGPIPE=false
KillMode=process
Restart=on-failure
SyslogFacility=cron

[Install]
WantedBy=multi-user.target

Расписание в Linux — таймеры systemd и cron. Таймеры:

$ systemctl list-timers --no-pager | head -5
NEXT                             LEFT LAST                              PASSED UNIT                         ACTIVATES
Sat 2026-10-31 11:09:00 MSK     18min Sat 2026-10-31 10:39:00 MSK    11min ago phpsessionclean.timer        phpsessionclean.service
Sun 2026-11-01 00:00:00 MSK       13h Sat 2026-10-31 00:00:26 MSK      10h ago dpkg-db-backup.timer         dpkg-db-backup.service
Sun 2026-11-01 00:59:15 MSK       14h Sat 2026-10-31 00:33:26 MSK      10h ago logrotate.timer              logrotate.service
Sun 2026-11-01 03:10:43 MSK       16h Sun 2026-10-25 03:10:36 MSK   6 days ago e2scrub_all.timer            e2scrub_all.service

logrotate — ежедневная ротация журналов (сжать старые, удалить очень старые), dpkg-db-backup — резервная копия базы пакетов. Строка cron — пять полей времени (минута, час, день месяца, месяц, день недели) и команда:

$ grep -v "^#" /etc/crontab | grep -v "^$"
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
17 *	* * *	root	cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; }
47 6	* * 7	root	test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; }
52 6	1 * *	root	test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }

17 * * * * — в 17 минут каждого часа, 47 6 * * 7 — в 6:47 по воскресеньям. Своё задание пользователь добавляет командой crontab -e, например архив в 18:00 каждый день: 0 18 * * * tar czf ~/backup.tgz ~/docs.

ЗадачаWindowsLinux
Список службGet-Service, services.mscsystemctl list-units --type=service
Запуск, остановкаStart-Service, Stop-Servicesudo systemctl start, stop, restart
АвтозапускSet-Service -StartupType Automaticsudo systemctl enable
ЖурналGet-WinEvent, eventvwr.mscjournalctl -u служба, /var/log
НастройкиРеестрТекстовые файлы в /etc
РасписаниеПланировщик заданий, schtaskscrontab -e, таймеры systemd
ОбновленияЦентр обновления Windowssudo apt update && sudo apt upgrade

Журнал службы в Linux читают sudo journalctl -u cron -n 20 — последние 20 записей; без sudo обычный пользователь видит только свои записи.

Ключевые выводы раздела

Запомните главное

  • Служба — фоновая программа с типом запуска и зависимостями; управляют services.msc, Get-Service, sc.exe
  • Причину сбоя ищут в журнале «Система» или «Приложение» по времени и уровню «Ошибка»; код 1053 — служба не ответила
  • Реестр не прощает ошибок: перед правкой — reg export или снимок ВМ
  • Задание = действие + триггер + учётная запись; результат проверяют по LastTaskResult
  • Точка восстановления — не резервная копия; в Linux службы — systemctl, расписание — cron и таймеры
Практические задания — на учебном портале. Задания, критерии оценивания, сдача работ и оценки преподавателя — в курсе на portal.nevabit.ru. Учётную запись выдаёт преподаватель.
Раздел 10: Пользователи, права и защита ОС Все разделы Раздел 12: Итоговая работа