- Windows shutdown те authority system что это
- Что можно делать с PowerShell от имени SYSTEM
- Методы запуска PowerShell от имени системной учетной записи
- Запуск PowerShell от учетной записи NT AUTHORITY\SYSTEM из PSexec
- Запуск PowerShell от учетной записи NT AUTHORITY\SYSTEM из планировщика заданий
- Команда Shutdown: выключение и перезагрузка Windows из командной строки
- Выключение Windows командой Shutdown
- Перезагрузка Windows
- Завершение сеанса пользователя
- Перевод компьютера в режим гибернации
- Перезагрузка компьютера с сообщением пользователям
- Отложенное выключение / перезагрузка компьютера
- Отмена выключения / перезагрузки компьютера
- Перезагрузить компьютер немедленно
- Запуск команды shutdown на удаленных компьютерах
- Графический интерфейс команды shutdown
- Ярлык для перезагрузки компьютера
Windows shutdown те authority system что это
Добрый день! Уважаемые читатели и гости одного из популярнейших блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами подробно рассмотрели командлет Restart-Computer и научились с его помощью производить локальную или удаленную перезагрузку компьютера или сервера, это полезный навык. В сегодняшней публикации я бы хотел вас научить запускать оболочку PowerShell с максимальными правами от имени системной учетной записи «СИСТЕМА (NT AUTHORITY\SYSTEM)» или ее еще иногда называют Local System. Это то же полезный скил, который вас может сильно выручить в разных обстоятельствах. Давайте от слов к практике.
Что можно делать с PowerShell от имени SYSTEM
Я не буду расписывать, что из себя представляет локальная, системная учетная запись, напомню лишь, что из под нее работает подавляющее количество сервисов Windows и она имеет максимальные права на все в вашей ОС (Папки, файлы, кусты реестра, тома). Имея запущенное окно PowerShell от системной учетной записи вы можете абсолютно все в этой системе, например можете отключать службы, которые были ограничены, или подключаться к чужой RDP сессии, поправить защищенные ветки реестра, например, как в случае с ошибкой 10016.
Методы запуска PowerShell от имени системной учетной записи
Я могу выделить ряд методов, которыЕ помогут нам решить нашу задачу, сразу хочу отметить, что вы спокойно можете при наличии прав запускать оболочку и удаленно от имени SYSTEM.
- Классический метод использование утилиты PSexec
- Через планировщик событий
- Через скрипт choco
Запуск PowerShell от учетной записи NT AUTHORITY\SYSTEM из PSexec
PSexec — это одна из утилит легендарного набора SysInternals Марка Руссиновича. Я ее уже использовал при открытии CMD от имени системы, тут принцип будет такой же. Первое, что вы должны сделать, это скачать PSexec либо у меня, либо по ссылке ниже:
Далее вам необходимо ваш архив извлечь, дабы получить папку с утилитами. У вас есть два варианта запуска PSexec, из командной строки или же из свой PowerShell. Давайте опробуем командную строку, которую вы должны ОБЯЗАТЕЛЬНО открыть от имени администратора, далее вы должны перейти в cmd в расположение с утилитой PSexec. Делается это командой:
После чего вы пишите команду, которая запустит окно PowerShell от имени системы:
В результате у вас откроется дополнительное окно PowerShell в режиме администратора и от имени «nt authority\система«. Проверить, это можно командой whoami.
То же самое можно сделать и из самой PowerShell(), тут вам нужно будет так же открыть PowerShell от имени администратора и ввести команды:
Чтобы удаленно получить окно PowerShell через PSexec, вам необходимо выполнить:
Где svt2019s01, это имя моего сервера с Windows Server 2019. Как видим идет попытка подключения, где на удаленном компьютере запускается служба PSexec, вам будут необходимы права локального администратора там. Если подключение не проходит, то у вас блокируется брандмауэром, убедитесь, что порт WinRM (TCP 5985) у вас разрешен.
После успешного подключения можно ввести команду hostname, чтобы посмотреть, правильно ли вы подключились, ну и посмотреть командой whoami, из под кого запущен PowerShell, как видно из скриншота, это учетная запись nt authority\система.
Так же вы можете из оболочки запустить команду:
Она так же все запустит, единственное поменяйте в ней путь до утилиты PSexec на свой.
Запуск PowerShell от учетной записи NT AUTHORITY\SYSTEM из планировщика заданий
Данный метод более изощренный нежели использование внешней утилиты PSexec, но я уверен, что его так же полезно знать. В окне выполнить введите команду taskschd.msc.
Открываем библиотеку планировщика заданий и щелкаем по нему правым кликом, из контекстного меню выберите пункт «Создать простую задачу«
Задаем ее имя у меня оно будет «Запуск PowerShell NT».
В настройках тригера выставим запуск задачи «Однократно«.
Задаем время запуска.
Оставляем пункт «Запустить программу» и нажимаем далее.
Тут нам необходимо заполнить два пункта:
- Поле программы или сценария
- Аргумент
В поле программы вам нужно вписать строку в зависимости от разрядности вашей архитектуры:
- x86 : %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
- x64 : %SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe
В качестве аргумента, вам необходимо указать путь до нашего скрипта, расположенного по пути C:\Scripts\Get-CurrentUser.ps1
ExecutionPolicy, это команда позволяющая выполнять не подписанные скрипты.
заканчиваем создание простого задания, обязательно выставите галку «Открыть окно «Свойств» для этой задачи после нажатия кнопки «Готово«.
заканчиваем создание простого задания, обязательно выставите галку «открыть окно «Свойств» для этой задачи после нажатия кнопки «Готово». Далее у вас откроется окно свойств данной задачи, вы можете заметить, что она по умолчанию выполняется от того пользователя, кто ее создал, в моем примере, это ROOT\Администратор, это нужно поменять. Нажмите кнопку изменить.
Если у вас русская Windows, то в окне поиска введите «СИСТЕМА», если английская версия, то введите SYSTEM.
В результате вы увидите, что задача запускается от системной учетной записи (nt authority\система).
Команда Shutdown: выключение и перезагрузка Windows из командной строки
Утилита командной строки shutdown является встроенной командой Windows, которая позволяет перезагрузить, выключить компьютер, перевести его в спящий режим или завершить сеанс пользователя. В этой инструкции мы покажем основные примеры использования команды shutdown в Windows (все рассмотренные команды запускаются в окне Выполнить — Win+R ->, в командной строке cmd.exe или в консоли PowerShell).
Команда shutdown имеет следующий синтаксис:
shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\компьютер][/t xxx][/d [p|u]xx:yy [/c «комментарий»]]
Как вы видите, у команды довольно много опций, а также есть возможность выполнять операции выключения/перезагрузки на удаленном компьютере.
Выключение Windows командой Shutdown
Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s.
Перезагрузка Windows
Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.
Завершение сеанса пользователя
Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:
Эта команда аналогично выполнению команды logoff.
Перевод компьютера в режим гибернации
Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:
Перезагрузка компьютера с сообщением пользователям
Вы можете предупредить всех пользователей Windows о предстоящем выключении / перезагрузки компьютера или сервера, отправив сообщение во все активные сессии (как правило эта возможность используется на терминальных RDS серверах, за которыми одновременно работают несколько пользователей, каждый в своей собственной RDP сессии).
shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”
Отложенное выключение / перезагрузка компьютера
Можно выключить или перезагрузить компьютер с определенной задержкой (по таймеру). С помощью опции /t можно указать интервал времени (в секундах), через который ПК/сервер будет перезагружен или выключен. Тем самым вы можете предоставить пользователям дополнительное время для того, чтобы успеть сохранить открытые файлы и корректно закрыть приложения. Эту опцию удобно использовать совместно с отправкой сообщения. В этом примере мы указываем, что Windows будет выключена через 10 минут (600 секунд) и информируем пользователей сообщением.
shutdown /s /t 600 /c «Сервер будет выключен через 10 минут. Сохраните свои документы!»
Пользователю будет выдано предупреждение о запланированном выключении: Ваш сеанс будет завершен.
Если задержка очень длительная, например, 100 минут (6000 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана: «Ваш сеанс будет завершен. Работа Windows будет завершена через 100 мин».
Отмена выключения / перезагрузки компьютера
После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратора может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:
После отмены выключения появится всплывающее сообщение в нижнем правом углу экрана: «Выход из системы отменен. Запланировано завершение работы отменено».
Перезагрузить компьютер немедленно
Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:
Очень важный ключ /f. Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).
Следующая команда выполнит перезагрузку компьютера с автоматическим запуском всех зарегистрированных приложений после перезагрузки (имеются в виду приложения, зарегистрированные в системе с использованием функции API RegisterApplicationRestart).
Запуск команды shutdown на удаленных компьютерах
Вы можете перезагрузить удаленный компьютер по сети, для этого у вас должен быть к нему сетевой доступ, а учетная запись, из-под которой запускается команда shutdown должна входить в группу локальных администраторов на удаленном компьютере (сервере):
shutdown /r /t 120 /m \\192.168.1.100
Если все указанные условия выполняются, но при выполнении команды shutdown появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно разрешить удаленный доступ к административным ресурсам (C$, ADMIN$), изменив значение параметра LocalAccountTokenFilterPolicy на 1.
reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System» /v «LocalAccountTokenFilterPolicy» /t REG_DWORD /d 1 /f
Если вам необходимо удаленно перезагрузить множество компьютеров, их список можно сохранить в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью такого PowerShell скрипта:
$sh_msg = «Ваш компьютер будет автоматически перезагружен через 10 минут. Сохраните свои файлы и закройте запущенные программы»
$sh_delay = 600 # секунд
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
<
& ‘C:\Windows\System32\SHUTDOWN.exe’ «-m \\$comp -r -c $sh_msg -t $sh_delay»
>
Графический интерфейс команды shutdown
Для тех, кому не комфортно работать в командной строке, есть графический интерфейс для команды shutdown, чтобы его вызвать, наберите:
Как вы видите, в диалоге удаленного завершения работы вы можете добавить несколько компьютеров, которые нужно перезагрузить/выключить, указать текст уведомления и задать причину выключения для сохранения в журнале Windows.
Ярлык для перезагрузки компьютера
Для удобства пользователей вы можете создать на рабочем столе ярлыки для выключения или перезагрузки компьютера с нужными настройками. Такой ярлык может быть полезен для выполнения перезагрузки из RDP сессии, когда отсутствуют кнопки перезагрузки/завершения работы компьютера в меню Пуск.
Если вы хотите, чтобы ваш компьютер или сервер всегда выключался / перезагружался в определенное время, вы можете добавить команду shutdown с определенными параметрами в планировщик заданий Windows taskschd.msc.
Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.