Перезагрузка сервера из командной строки: Перезагрузка сервера через командную строку и планировщик задач |
Перезагрузка сервера через командную строку и планировщик задач |
Иногда сервера необходимо перезагружать, например, для установки обновлений. В рабочее время, зачастую, сделать это не возможно по причине того, что пользователи работают с сервером и прерывать их работу не вариант. Конечно, можно или задержаться на работе или прийти раньше для выполнения перезагрузки… Но гораздо проще и удобнее запланировать перезагрузку через диспетчер задач.
Для начала рассмотрим, как перезагрузить (или выключить) систему через командную строку. В этом нам поможет утилита shutdown.exe. Не будем рассматривать все возможные параметры использования, их можно посмотреть запустив программу из консоли с параметром /? или просто без параметра, рассмотрим набор параметров, который использую я.
shutdown.exe /r /f /t 90 /d p:2:16 /c "Перезапуск для установки обновлений"
в данном случае:
/r — перезагрузка сервера
/f — принудительное закрытие всех приложений.
/t 90 — время ожидания до начала перезагрузки 90 сек.
/d p:2:16 — указание причины перезагрузки, которая отобразиться в системном журнале. В данном случае, мы указали:
p — запланированная перезагрузка, 2:16 — «Операционная система: Установка пакета обновления (Запланировано)»
/c «Перезапуск для установки обновлений» — комментарий в свободной форме длинной не более 512 символов.
Итак, после выполнения данной строки на экране появится окно с указанным нами комментарием.
Пока идет указанное нами время ожидания, есть возможность прервать запуск перезагрузки в случае необходимости выполнив shutdown.exe /a в командной строке.
После окончания времени ожидания станция будет перезагружена. При этом в системный журнал попадет запись о перезагрузке, ее причинах и нашим комментарием.
Таким образом, если за серверами следят несколько Администраторов, у них не будет вопросов почему сервер перезагружался.
Для того чтобы запланировать перезагрузку, разумно использовать планировщик задач. Не буду здесь описывать как создавать в нем задачи, отмечу только, что параметры командной строки следует вынести в соответствующую строчку, как на скриншоте
Обратите внимание, что путь я преобразовал через системную переменную:
%SYSTEMROOT%\System32\shutdown.exe
Таким образом, не важно на какой диск установлена система, программа запустится.
Созданную задачу можно устанавливать на определенные дату/время с повторением или без по вашему желанию. Система будет перезагружена в назначенное время и в системном журнале останется соответствующая запись.
Разумеется, вы можете экспортировать созданную задачу в xml-файл и использовать как шаблон при создании подобной задачи на другом сервере вашей сети.
Следует также отметить, что таким же образом можно перезагрузить (или выключить) удаленный компьютер, если использовать параметр /m \\ИМЯ_КОМПЬЮТЕРА.
Утилита Shutdown имеет и оконный интерфейс, для этого утилиту следует запустить с ключом /i
Данный диалог позволяет выполнить перезагрузку на компьютерах сети (AD) без использования командной строки.
Статьи в тему:
Shutdown (technet)
Перезагрузка или завершение работы удаленного компьютера и документирование причины
(Visited 1 660 times, 3 visits today)
Перезагрузить сервер удаленно из командной строки. Как перезагрузить компьютер через удаленный рабочий стол.
Обычно перезагрузка осуществляется в графическом интерфейсе Виндовс или нажатием на физическую кнопку. Мы рассмотрим третий способ — перезагрузка с использованием «Командной строки» («Сmd»)
. Это удобный инструмент, обеспечивающий быстроту и автоматизацию различных задач. Поэтому важно уметь им пользоваться.
Для выполнения данной процедуры вам необходимы права Администратора.
Первым делом вам необходимо запустить «Командную строку»
. О том, как это сделать, вы можете прочитать на нашем сайте.
За перезапуск и выключение ПК отвечает команда «Shutdown»
. Ниже мы рассмотрим несколько вариантов перезапуска компьютера с использованием разных ключей.
Для простой перезагрузки введите в cmd
:
На экране появится предупреждающее сообщение, а система будет перезапущена через 30 секунд.
Если вы хотите перезапустить компьютер не сразу, а через некоторое время, в «Сmd»
введите:
shutdown -r -t 900
где 900 — время в секундах до перезагрузки компьютера.
В системном трее (в правом нижнем углу) появится сообщение о запланированном завершении работы.
Вы можете добавить свой комментарий, чтобы не забыть цель перезапуска.
Для этого добавьте ключ «-с»
и в кавычках напишите комментарий. В «Сmd»
это будет выглядеть вот так:
А в системном трее у вас появится такое сообщение:
Вы так же можете перезагрузить удаленный компьютер. Для этого нужно добавить его имя или IP-адрес через пробел после ключа «-m»
:
shutdown -r -t 900 -m \\Asmus
Или же так:
shutdown -r -t 900 -m \\192.168.1.101
Иногда, имея права Администратора, вы можете увидеть ошибку «Отказано в доступе (5)»
.
Отмена перезагрузки
Если вдруг вы решили отменить перезапуск системы, в «Командной строке»
нужно ввести
Это отменит перезагрузку и в трее появится вот такое сообщение:
Вот так легко вы можете перезагрузить компьютер из «Командной строки». Надеемся, эти знания вам пригодятся в будущем.
Графический интерфейс Windows за многие годы свет на нет познание командной строки. А пользоваться ей нет-нет да приходится. В этой статье я кратко распишу как пользоваться консоль
Как перезагрузить Linux с помощью командной строки
Иногда при отладке проблемы или обновлении ядра может потребоваться перезагрузить систему Linux. Если у вас есть автономный сервер, вам нужно знать, как перезагрузить систему из командной строки.
В современных дистрибутивах Linux утилита systemctl заменяет большинство команд управления питанием, используемых в старых дистрибутивах Linux, на sysvinit. Старые команды reboot и shutdown являются псевдонимами systemctl и доступны в системе по причинам совместимости.
В этой статье мы покажем вам , как использовать команды systemctl и shutdown для перезагрузки машины Linux. Команды должны запускаться от имени пользователя root или пользователя с привилегиями sudo.
Как перезагрузить Linux с помощью команды systemctl
Чтобы перезагрузить систему Linux, запустите утилиту systemctl с командой reboot:
Система будет перезапущена немедленно.
Когда инициируется перезагрузка, все зарегистрированные пользователи и процессы уведомляются о том, что система выходит из строя, и дальнейшие входы в систему запрещены.
Чтобы запретить команде reboot отправлять сообщение, выполните команду с параметром –no-wall:
sudo systemctl --no-wall reboot
Если вы хотите установить собственное сообщение, объясняющее причину перезагрузки, используйте параметр –message=:
sudo systemctl --message="Обновление оборудования" reboot
Сообщение будет показано в журналах:
System is rebooting (Обновление оборудования)
Как перезагрузить Linux с помощью команды shutdown
Чтобы перезагрузить систему Linux, используйте команду shutdown с опцией -r:
По умолчанию система будет перезагружена через 1 минуту, но вы можете указать точное время, когда вы хотите, чтобы система была перезагружена.
Аргумент времени может иметь два разных формата. Это может быть абсолютное время в формате hh:mm и относительное время в формате, +m где m – это количество минут с этого момента.
В следующем примере будет запланирована перезагрузка системы на 10 часов утра:
В следующем примере будет запланирована перезагрузка системы через 5 минут:
Чтобы немедленно выключить вашу систему, используйте +0 ее псевдоним now:
Чтобы отправить собственное сообщение вместе со стандартным уведомлением о завершении работы, введите свое сообщение после аргумента времени.
Следующая команда отключит систему через 10 минут и уведомит пользователей, что будет выполнено обновление оборудования:
sudo shutdown -r +10 "Обновление оборудования"
Важно отметить, что при указании пользовательского настенного сообщения вы также должны указать аргумент времени.
Если вы запланировали перезагрузку и хотите отменить ее, запустите команду shutdown с параметром -c:
Вы также можете отправить сообщение, описывающее, почему перезагрузка была отменена:
sudo shutdown -c "Отмена перезагрузки"
Заключение
В этой статье мы показали, как перезагрузить компьютер с Linux из командной строки.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Перезагрузка и выключение Linux из командной строки
Иногда требуется удаленно перезагрузить или выключить операционную систему под управлением Linux из командной строки. Сделать это можно различными способами, их то мы и рассмотрим.
Замечание. Все ниже перечисленные команды надо выполнять из под пользователя root.
Для смены пользователя или получения прав root используйте команды «su -» или «sudo».
Перезагрузка Linux системы.
1. Команда shutdown, с ключом -r.
Команда shutdown является основной командой для управлением остановки или перезагрузки системы linux.
[root@linux ~]# shutdown -r now
При использование команды shutdown можно задать перезагрузку в конкретное время с выводом информирующих сообщений.
[root@linux ~]# shutdown -r 10:30 "REBOOT SYSTEM"
2. Команда reboot.
Команда reboot выпоняет все необходимые операции для остановки системы, эта команда может быть вызвана командой shutdown -r, но может использоваться отдельно. Данная команда записывает в журнал логов время остановки системы, уничтожает незавершенные процессы, выполняет системный вызов sync, ждет завершения записи на диск, а только после этого прекращает работу ядра и перезагружает систему Linux.
[root@linux ~]# reboot
3. Команда telinit 7.
С помощю этой команды можно задать демону init перейти на определенный уровень выполнения, а именно цифра 7 говорит о том что нужно прейти на 7-ой уровеь (перезагрузка). Команда telinit не поддерживает задание паузы и вывода предупреждающих сообщений. Обычно используется при проверке изменений внесеных в файл inittab.
[root@linux ~]# telinit 7
Выключение Linux системы.
1. Команда shutdown, с ключом -h.
[root@linux ~]# shutdown -h now
2. Команда halt.
Команда идентична команде reboot по своим действиям, разница в том, что команда halt выключает систему.
[root@linux ~]# halt
3. Используем команду poweroff.
Команда poweroff идентична команде halt, кроме того, что после остановки системы посылается специальный запрос системе управления питанием на отключение питания, что позволяет дистанционно отключать системы.
[root@linux ~]# poweroff
4. Команда telinit 0
Идентична команде telinit 7 только переходит на уровень 0, что означает остановку системы.
[root@linux ~]# telinit 0
Вот и все, рассмотрение основных способов выключение и перезагрузки Linux систем из командной строки завершено.
Как перезагрузить компьютер через командную строку
Командная строка это отличный инструмент для автоматизации различных операций с компьютером. С ее помощью можно запускать программы, получать информацию о системе и управлять компьютером. Также с помощью командной строки можно выключать и перезагружать компьютер. В данном материале мы расскажем о том, как перезагрузить компьютер через командную строку.
Выключение и перезагрузка компьютера через командную строку выполняется при помощи команды shutdown. Данная команда может принимать такие параметры:
- /s – Выключение компьютера.
- /r – Перезагрузка компьютера.
- /a – Отмена перезагрузки или выключения компьютера. Этот параметр позволяет отметить выключение или перезагрузку с помощью командной строки. Команду «Shutdown /a» можно выполнить во время действия задержки выключения (или перезагрузки).
- /h – Переход компьютера в режим гибернации.
- /t xxx – Установка задержки перед выключением или перезагрузкой компьютера. Задержка указывается в секундах. Например: «Shutdown /s /t 60». В случае выполнения такой команды выключение компьютера произойдет через 60 секунд после выполнения команды. В течении этих 60 секунд пользователь может отметить выключение с помощью команды «Shutdown /a».
- /c «комментарий» – Установка комментария с объяснением причин выключения ли перезагрузки компьютера.
- /f – Принудительное закрытие всех запущенных приложений без предупреждения пользователя. Данный параметр может использоваться, если для параметра /t указана задержка больше 0 секунд;
Итак, для того чтобы перезагрузить компьютер через командную строку нужно ввести команду:
При выполнении такой команды перезагрузка компьютера произойдет немедленно. Если вам необходимо перезагрузить компьютер через определенное время, то вместо нулей нужно указать нужную задержку в секундах. Например:
При выполнении такой команды перезагрузка компьютера произойдет уже не мгновенно, а с задержкой в 60 секунд. При этом после выполнения команды на перезагрузку с задержкой пользователь увидит окно с предупреждением.
В случае, если указана длительная задержка, то вместо окна с предупреждением пользователь увидит всплывающее сообщение рядом с системными часами.
Во время действия задержки вы можете отметить перезагрузку компьютера. Для этого нужно ввести в командную строку следующую команду:
Если вам нужно не перезагрузить, а выключить компьютер, то для этого нужно использовать параметр /s вместо /r. В остальном процесс выключения компьютера ничем не отличается от перезагрузки.
Кроме этого команду Shutdown можно использовать для создания ярлыков. Для этого счелкните правой кнопкой мышки по рабочему столу и выберите пункт «Создать ярлык».
Дальше перед вами откроется окно для создания ярлыков. Введите команду на перезагрузку и нажмите на кнопку «Далее».
В следующем окне введите название ярлыка и нажмите на кнопку «Готово».
В результате вы получите ярлык для перезагрузки компьютера. Данный ярлык можно оставить на рабочем столе или закрепить на панели задач или поместить на стартовый экран (если вы используете Windows 8).
Посмотрите также:
Powershell подключиться к другому компьютеру: перезагрузка сервера
Начинаем серию переводов, посвященную управлению службами Windows с помощью PowerShell 2.0 и 3.0.
В данном посте будут рассмотрены следующие вопросы управления службами Windows:
- Получаем статус службы на локальном компьютере
- Получаем статус службы на удаленном компьютере
- Осуществляем фильтрацию служб (например, остановленные службы)
- Зависимые службы
Обозначим начальные условия: Вы работаете под Windows 7 и выше и у Вас имеются права администратора. Все команды рекомендуются выполнять в лабораторной или виртуальной среде, перед тем, как применять в “полевых условиях”.
ПОЛУЧАЕМ СТАТУС СЛУЖБЫ
Давайте начнем с того, что просто получим статус всех служб, запущенных на локальном компьютере. Используем для этого командлет Get-Service.
PowerShell, как правило, не чувствителен к регистру. Вывод приведен на скриншоте ниже.
Каждая строка представляет собой объект службы (service object).Каждый сервисный объект, как правило, имеет свои свойства. Вы можете открыть их, просто передав эти объекты в другую команду, Get-Member.
Результаты приведены на скриншоте ниже.
Параметр Typename сверху говорит о том, что за объект перед нами; в данном случае это System.ServiceProcess.ServiceController. На скриншоте также обведены свойства объекта. Это атрибуты, которые описывают этот тип объекта. Хотя большинство из них не используются при отображении по умолчанию, вы можете использовать их, если вы их знаете.
Например, нам интересно посмотреть информацию только о Windows Update. Через Get-Service получим информацию только о некоторых ее свойствах.
Как я узнал, что могу напечатать имя службы? Посмотрел с помощью Get-Service.
PS C:\> help get-service
Вы можете получить полную справочную информацию, напечатав:
Информацию о службе можно получить по ее имени или даже начальным буквам имени.
Или если вам удобнее работать с отображаемыми именами, используйте параметр –Displayname.
Я должен использовать имя параметра, чтобы PowerShell воспринимал значения в качестве отображаемого имени, а не фактического имени службы. Команда будет выглядеть так:
Параметр –Name можно не печатать.
ПОЛУЧАЕМ СТАТУС СЛУЖБЫ НА УДАЛЕННЫХ КОМПЬЮТЕРАХ
До этого нас интересовало получение информации о статусе служб на локальном компьютере. Однако управление службами осуществляется на удаленных компьютерах. Если посмотреть справку по Get-Service, то можно увидеть наличие у этого командлета параметра –Computername. В данном случае подключение к удаленным компьютерам осуществляется без включения функции удаленного управления PowerShell. Если вы можете управлять службами, используя инструменты командной строки (sc.exe или консоль управления Service Manager), вы можете использовать PowerShell. Давайте взглянем на пример:
Любая команда, которую я демонстрировал, можно использовать для передачи удаленному компьютеру. Даже нескольким компьютерам, если у вас есть соответствующие права на удаленном компьютере. Если вы используете PowerShell v3, то можно легко выбрать одну службу на множестве компьютеров.
Для наглядности представления отформатируем вывод.
Тот же самый результат, но в PowerShell v2.
ОСУЩЕСТВЛЯЕМ ФИЛЬТРАЦИЮ (ИСПОЛЬЗУЯ WHERE-OBJECT)
Фильтрация служб осуществляется с помощью командлета Where-Object (where – сокращение для командлета). Все, что нам нужно от PowerShell в этом случае, так это получить только те службы, у которых статус равен “stopped”.
PowerShell получает информацию обо всех службах и передает их (с помощью “|”) в следующую команду, которая осуществляет просмотр каждого объекта. Если свойство статуса объекта равно “stopped”, она остается в конвейере (pipeline), в противном случае она из него исключается. В конце выражение PowerShell отображает те объекты, которые остались в конвейере.
Результаты приведены ниже.
Теперь давайте попробуем найти одну службу на нескольких машинах.
Как удалённо перезагрузить Server 2012 R2?
Вывод отформатируем в таблицу.
Мы даже можем комбинировать запрос отдельных служб с их фильтрацией.
Эта команда находит все службы на компьютере CHI-DC03, которые начинаются с ‘WIN’, но отображает только те, которые запущены.
Также можно сгруппировать объекты по свойству статуса (status property).
Переменная $dc03 является объектом GroupInfo.
Свойство Group представляет собой коллекцию связанных служб.
Написанное выше проще понять, если взглянуть на скриншот.
Что касается меня, то я бы предпочел использовать хеш-таблицу.
Теперь каждое имя представляет собой свойство в хеш-таблице. Если у вас имеется опыт работы с PoweShell, вы, возможно, подумываете сделать сделующее:
Однако ничего не произойдет. Потому что свойство Status является просто перечислением (enumeration) для [System.ServiceProcess.ServiceControllerStatus] .NET клас и такие свойства, как Running и Stopped представляют собой целые числа. PowerShell осуществляет конвертацию, чтобы представить в более наглядной форме.
В чем суть параметра –AsString, на мой взгляд, достаточно очевидно. Теперь работать с хеш-таблицей стало проще.
Следующей задачей на повестке дня является проверка зависимостей сервера (server dependencies).
Требуемые службы
PowerShell позволяет просто получить статус всех служб, которые требуется для данной службы, даже на удаленном компьютере.
Параметр –RequiredServices передаст объект в конвейер для каждой требуемой службы.
Вы можете даже пойти дальше и проверить требуемые службы для работы данной службы.
Параметр –Computername командлета Get-Service возьмет вывод, но только для тех объектов, у которых есть объект свойство Computername – именно поэтому я использую хеш-таблицу с Select-Object. Как мы видим проблем со службой DNS на компьютере CHI-DC03 нет.
ЗАВИСИМЫЕ СЛУЖБЫ
Мы можем сделать то же самое с зависимыми службами. Если таковых не имеется, в конвейер ничего передано не будет.
Требуемые и зависимые службы также являются частью каждого объекта службы.
А пока Вы можете получить все зависимости для всех служб, следующая команда
Это не даст вам особо полезную информацию, поэтому я рекомендую осуществлять запрос по конкретным службам. Команда работает гораздо лучше PowerShell v3.
Результаты видны на скриншоте ниже.
Чтобы получить подобные результаты в PowerShell v2, вам придется передать имена компьютеров (computernames) в Get-Service.
В следующей статье будет рассмотрен запуск, остановка и перезапуск служб.
Конец перевода.
P.S. Хотим также поделиться нашей бесплатной программой для управления службами Windows – NetWrix Service Monitor. Программа отслеживает все автоматически запускаемые службы на группе серверов и в случае внезапного сбоя одной или нескольких из них отправляет уведомления по электронной почте. Функция перезапуска гарантирует, что все подконтрольные службы будут работать без простоев. Программа проста в настройке: устанавливаем, вводим имена компьютеров и указываем нужный адрес электронной почты.
ссылка на оригинал статьи http://habrahabr.ru/company/netwrix/blog/166289/
1000++ способ запуска команд на удаленном компьютере / Блог компании Сервер Молл / Хабр
В наше время даже для собак придумали удаленное управление.
Возвращаясь к циклу «Конспект Админа», мне хотелось бы рассказать о вариантах запуска исполняемых программ на удаленных компьютерах. Эта статья будет интересна тем, у кого еще нет систем централизованного управления, но уже есть понимание утомительности ручного обхода рабочих станций и серверов. Либо тем, кому решения «под ключ» не интересны ввиду неспортивности.
В качестве того, зачем нужен такой запуск программ, можно привести недавнюю истерию с Петей\Не-Петей, когда все бросились проверять\отключать SMBv1 и загружать обновления. Да и провести инвентаризацию или установить срочный патч таким методом тоже можно.
Когда-то давно я устроился работать в организацию в период эпидемии Kido\Conficker. Наиболее простым способом выяснить, все ли хорошо в ИС компании, была славная утилита от Касперского под названием Kido Killer, которая проверяла наличие вируса и устраняла его. Запускать программу на доброй сотне машин руками было невесело, поэтому пришлось знакомиться с автоматизацией.
Если в операционных системах *nix для удаленного запуска, как правило, используется SSH, то у Windows способов запуска программ и скриптов воистину как песка в пустыне. Я разберу основные варианты, как общеизвестные, так и экзотические. Таких очевидных вещей как telnet-сервер касаться не буду, тем более Microsoft уже убрала его из современных ОС.
Psexec
Пожалуй, это первое, что приходит на ум, когда идет речь об удаленном запуске программ. Утилита от Марка Руссиновича используется еще со времен Windows NT и до сих пор применяется. Помимо основной функции, можно использовать ее и как Runas, и для запуска программ в пользовательской сессии терминального сервера. Psexec также позволяет задавать ядра процессора, на которых будет запускаться программа, и ее приоритет в системе.
В качестве примера посмотрим, установлено ли обновление, закрывающее нашумевшую уязвимость SMB на списке компьютеров:
psexec @computers.txt /u USER /p PASS cmd.exe /v /c ""systeminfo | find "KB4012212" || echo !computername! >> \\server\share\log.txt"""
В файле computers.txt находится список компьютеров. Для запуска по всему домену можно использовать \\*. В файле \\server\share\log.txt будут появляться имена рабочих станций или серверов без обновления. Если в домене существуют компьютеры с *nix на борту или нет доступа к административному сетевому ресурсу Admin$ ― команда на этой машине не выполнится, но обработка продолжится. Чтобы скрипт не зависал при каждой попытке подключения, можно задать тайм-аут с помощью ключа -n.
Если компьютер выключен ― мы об этом не узнаем. Поэтому лучше предварительно проверять доступность машин или собирать в файле информацию об успешном или неудачном выполнении.
К минусам Psexec можно отнести то, что она из-за своего удобства и популярности часто используется вирусописателями. Поэтому антивирусные системы могут обнаруживать утилиту как опасность вида remote admin.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего Psexec. При необходимости логин и пароль можно задать явно или же использовать аккаунт SYSTEM.
WMIC
Для управления системами Windows с помощью разных графических утилит часто используется WMI (Windows Management Instrumentation) ― реализация объектно-ориентированного стандарта управления WBEM. В качестве утилиты с графическим интерфейсом для работы с WMI можно использовать wbemtest.exe.
Для работы с WMI из консоли создана wmic.exe. Например, для проверки установленных обновлений вместо жутковатой конструкции из предыдущего примера можно использовать простую команду:
wmic /node:"servername" qfe get hotfixid | find "KB4012212"
Использовать список компьютеров также можно командой /node:»@computers.txt».
Еще при помощи WMI можно запускать программы – синтаксис предельно прост:
wmic /node:"servername" process call create "cmd /c somecommands"
К сожалению, в отличие от Psexec, получить вывод в консоли не получится ― придется выводить результаты команды в файл.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего wmic. При необходимости логин и пароль можно задать явно.
Групповые политики и скрипты
Если предыдущие варианты не требовали доменной среды, то в этом случае потребуется домен. Поддерживаются скрипты при входе и выходе пользователя из системы, а также при ее включении и выключении. Поскольку каждый администратор Windows сталкивался с ними, я не буду подробно расписывать как ими пользоваться ― лишь напомню, где их искать.
Скрипты, выполняющиеся при старте и завершении системы.
Скрипты, выполняющиеся при входе и выходе пользователя из системы.
Скрипты, настраиваемые в пользовательском разделе, выполняются от имени пользователя, а в разделе компьютера ― под аккаунтом SYSTEM.
Назначенные задания
Довольно интересный способ, заслуживающий право на жизнь. Назначенные задания можно создавать из командной строки при помощи утилиты schtasks.exe, выполнять их, затем удалять. Подробнее с синтаксисом можно ознакомиться в документации, я же разберу пример использования назначенных заданий в доменной среде. Предположим, нам нужно выполнить команду как можно быстрее вне зависимости от того, выключен компьютер или нет. Для этого используются так называемые предпочтения групповых политик (Group Policy Preference).
Искать установку назначенных заданий следует в конфигурации компьютера или пользователя ― «Настройка ― Параметры панели управления ― Назначенные задания».
Создание нового назначенного задания.
Для выполнения команды или скрипта ASAP понадобится создать «Немедленную задачу (Windows 7 и выше)». Если вдруг в инфраструктуре остались машины под управлением Windows XP, то подойдет «Очередное задание (Windows XP)».
Стоит сделать несколько политик с соответствующими WMI-фильтрами или создать два разных назначенных задания в одной политике с нацеливанием ― например, при помощи того же WMI-фильтра. Это поможет избежать конфликтов в разнородной среде со старыми и новыми Windows.
Пример WMI-фильтра для применения политики только на компьютерах с Windows XP:
SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "5.1%" AND ProductType = "1"
В остальном процедура создания назначенного задания тривиальна. Единственное, не забывайте отметить пункт «Применить один раз и не применять повторно», если задача не требует повторного запуска.
Запускаем немедленную задачу только один раз.
При использовании таких назначенных заданий программа запустится, как только компьютер получит обновление групповой политики. Это удобно: не нужно проверять доступность компьютеров в случае Psexec и wmic и заставлять пользователей перезагружать машины, как в случае скриптов групповых политик. При необходимости можно скопировать файл скрипта локально в разделе «Настройка ― Конфигурация Windows ― Файлы».
Назначенные задания позволяют явно задать имя пользователя для запуска программы, в том числе и для SYSTEM.
Через реестр
Модификация реестра на пользовательских машинах ― странный вариант, лишь на случай крайней необходимости. Можно использовать ветки Run или RunOnce. Подробнее о них ― в документации. Сама модификация реестра может проводиться через групповые политики или из командной строки ― например, такой командой:
reg add \\COMPUTER\HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce /v script /t Reg_SZ /d "script.cmd"
В зависимости от ветки реестра, процесс будет выполняться или под пользователем, выполнившим вход в систему, или под аккаунтом SYSTEM.
Есть и другие способы, такие как правка ярлыков в папке «Автозагрузка» или добавление в ярлык к популярной программе && script.cmd, но эти методы уже из серии «можно, но не нужно».
Теперь перейдем к новым инструментам.
PowerShell, оправдывая свое название, может подключаться к удаленным компьютерам при помощи WMI, RPC и WS-Management (WSMan). Использование последнего метода требует предварительной настройки.
Командлеты, не требующие предварительной настройки, как правило, имеют параметр ComputerName, но не имеют параметра Session. Посмотреть список таких командлетов можно командой:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Для настройки WSMan в общем случае достаточно выполнить команду Enable-PSRemoting-Force. Она запустит службу удаленного управления WinRM и пропишет исключения в фаерволе ― в принципе, это можно сделать для всего домена при помощи групповых политик. Подробнее настройка описана в документации.
После того как все компьютеры будут готовы принимать запросы, мы сможем подключаться при помощи соответствующих командлетов PowerShell. Для проверки возможности подключения используется командлет Test-WSMan.
Проверка возможности подключения.
Для того чтобы выполнить определенную команду или скрипт, используется командлет Invoke-Command со следующим синтаксисом:
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME
Где COMPUTER ― имя компьютера, COMMAND ―– имя команды, а USERNAME ― имя пользователя, если оно нужно.
Смотрим содержимое диска С удаленного компьютера.
Если же нам нужно получить полноценную консоль ― не автоматизации ради, а ради управления конкретным компьютером, ― то можно использовать командлет Enter-PSSession.
Работаем в консоли удаленного компьютера.
Напомню, что с помощью JEA можно ограничить доступные подобной сессии командлеты или дать доступ нужным без прав администратора.
Конечно, кроме встроенных средств и небольших утилит, существует множество программ для управления структурой. Помимо взрослых решений, для управления конфигурациями вроде Chef, Ansible и MS SCCM можно использовать и средства мониторинга вроде Zabbix, и даже консоль управления антивирусом Касперского.
В период гетерогенных структур хорошо бы иметь возможность унифицированного управления Windows и Linux. Это можно сделать и с помощью PowerShell, что само по себе достойно отдельной статьи ― стоит такую сделать или уже лишнее?
Кстати, поделитесь вашими способами скрытого и не очень запуска программ на удаленных компьютерах. Ну, за исключением эксплойтов.
Как я могу определить среду при перезапуске приложения Rails из командной строки?
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
- Авторизоваться
.
Запуск / остановка / включение / отключение служб терминалов из командной строки
Мы можем запустить службы терминалов, выполнив приведенную ниже команду.
net start TermService
Если служба уже запущена, вы получите сообщение « Запрошенная служба уже запущена. ‘
Иногда вы можете получить сообщение об ошибке, что служба не может быть запущена.
C: \> net start termservice Служба служб терминалов запускается. Не удалось запустить службу служб терминалов.Сервис не сообщил об ошибке. Дополнительную помощь можно получить, набрав NET HELPMSG 3534.
Это происходит, когда службы терминалов отключены путем взлома реестра. Вы можете исправить это, выполнив приведенную ниже команду изменения реестра.
reg add "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server" / v TSEnabled / t REG_DWORD / d 1 / f
Вам необходимо перезагрузить компьютер, чтобы изменения вступили в силу. После перезагрузки службы терминала запускаются автоматически, или вы можете запустить службу с помощью команды net start, как указано выше.
Как остановить службы терминалов?
Службы терминалов нельзя остановить, как другие службы. При попытке сделать то же самое вы получите ошибку ниже.
C: \> net stop termservice Запрошенная пауза или остановка недействительна для этой службы.
Как перезапустить Терминальные службы?
Поскольку службы терминалов не могут быть остановлены, нет простого способа сделать это. Microsoft утверждает, что это сделано намеренно.Но в некоторых случаях перезапуск служб терминалов может быть возможен путем остановки процесса svchost, который запускает службы терминалов. Для этого мы можем использовать команды tasklist и taskkill.
Сначала получите идентификатор процесса службы терминалов
tasklist / svc | findstr / C: TermService
Проверьте, являются ли службы терминалов единственной службой, работающей в этом svchost. Если svchost используется совместно с другими службами, вы можете прекратить читать дальше. На вашем компьютере перезапуск терминальных служб невозможен.
В моей системе я получил следующий результат.
C: \> список задач / svc | findstr / C: TermService svchost.exe 1708 DcomLaunch, TermService C: \> Как видите, DcomLaunch и TermService используют один и тот же процесс svchost. В этом случае я не могу убить процесс, так как он также останавливает другую службу. (Обратите внимание, что DcomLaunch является важной службой в системе, и ее отключение может даже привести к выключению системы) В случае, если svchost не используется какой-либо другой службой, вы можете продолжить и убить процесс TermService с помощью следующей команды.
taskkill / F / PID process_id
Как отключить службы терминалов?
Мы можем запустить приведенную ниже команду, чтобы отключить службы терминала.
sc config TermService start = disabled
Как включить службы терминалов?
sc config TermService start = auto
(или)
sc config TermService start = require
.
4 Запуск Oracle HTTP Server
Следующие инструкции описывают, как настроить удаленную среду, которая позволит вам запустить Oracle HTTP Server, установленный на одном компьютере, из установки на другом. В этом разделе содержится следующая информация:
4.4.1.1 Требования к хосту для удаленной среды
Для удаленного управления Oracle HTTP Server на разных машинах должны быть установлены отдельные хосты:
Совместная установка (в этом примере эта установка будет называться host1).
Автономная установка (host2). Путь к автономному MW_HOME на хосте 2 должен быть таким же, как и путь к совместно размещенному MW_HOME на хосте 1; например:
/ царапина / пользователь / работа
4.4.1.2 Задача 1: Настройка расширенного домена на host1
Следующие шаги описывают, как настроить расширенный домен и связать его с базой данных на совместной версии Oracle HTTP Server (host1):
С помощью утилиты настройки репозитория (RCU) настройте и установите базу данных для расширенного домена.Дополнительные сведения см. В разделе Oracle Fusion Middleware Создание схем с помощью утилиты создания репозитория.
Запустите Мастер настройки и создайте расширенный домен. Используйте значения, указанные в таблице 4-1.
Таблица 4-1 Настройка расширенного домена
Для … Выберите или введите … Создать домен
Создайте новый домен и укажите его путь (например, MW_HOME / user_projects / domains / ohs1_domain).
шаблоны
HTTP-сервер Oracle (размещенный)
Расположение приложений
По умолчанию.
Учетная запись администратора
Имя пользователя и пароль (например, weblogic и welcome1).
Тип конфигурации базы данных
Данные RCU. Затем нажмите «Получить конфигурацию RCU» и затем «Далее».
Дополнительная конфигурация
Следующие позиции:
Сервер администрирования
Диспетчер узлов
Компоненты системы
Развертывание и услуги
Сервер администрирования
Адрес прослушивания (все локальные адреса или допустимое имя или адрес для host1) и порт.
Диспетчер узлов
на домен и укажите учетные данные NodeManager (например,
weblogic
иwelcome1
).Компоненты системы
Добавьте и установите поля, используя OHS в качестве типа компонента (например, используйте значение системного компонента ohs1).
Сервер OHS
Прослушивать адреса и порты или использовать значения по умолчанию.
Станки
Доп. Это добавит компьютер в домен (например, ohs1_Machine), а диспетчер узлов получит значения прослушивания и порта. Вы должны указать адрес прослушивания для хоста 2, который доступен с хоста 1, например допустимое имя или адрес для хоста 2 (не используйте localhost или Все локальные адреса).
Назначить системные компоненты
Компонент OHS (например,
ohs1
), затем используйте стрелку вправо, чтобы назначить компонент машине (например,ohs1_machine
).Обзор конфигурации
Create (шаги OPSS могут занять несколько минут).
4.4.1.3 Задача 2: Упаковать домен на host1
На host1 используйте команду pack
, чтобы упаковать домен. Команда pack
создает файл архива шаблона (.jar), содержащий моментальный снимок всего домена или подмножества домена.
/ ohs / common / bin / pack.sh -domain = путь к домену -template = путь к шаблону -template_name = name -managed = true
Например:
/ohs/common/bin/pack.sh -domain = / user_projects / domains / ohs1_domain -template = / tmp / ohs1_tmplt.jar -template_name = ohs1 -managed = true
4.4.1.4 Задача 3: Распаковать домен на host2
Команда unpack создает полный домен или подмножество домена, используемого для каталога домена управляемого сервера на удаленном компьютере. Выполните следующие шаги, чтобы распаковать домен, который вы упаковали на host1 в «Задаче 2: Упаковать домен на host1» на host2.
Скопируйте файл шаблона, созданный в «Задаче 2: Упакуйте домен на host1», с host1 на host2.
Используйте команду
unpack
для распаковки домена:/ohs/common/bin/unpack.sh -domain = путь к домену -template = путь к шаблону Например:
/ohs/common/bin/unpack.sh -domain = / user_projects / domains / ohs1_domain -template = / tmp / ohs1_tmplt.jar
4.4.1.5 Задача 4: Удаленный запуск Oracle HTTP Server
После того, как вы распаковали домен, созданный на host1, на host2, вы можете использовать тот же набор команд WLST и инструментов Fusion Middleware Control, который вы использовали бы в совместно размещенной среде для запуска, остановки, перезапуска и настройки компонента.
Для удаленного запуска Oracle HTTP Server выполните следующие действия:
Запустите Сервер администрирования WebLogic на host1:
/ user_projects / domains / ohs1_domain / bin / startWebLogic.ш и Запустить диспетчер узлов на хосте 2:
/user_projects/domains/ohs1_domain/bin/startNodeManager.sh &
Теперь вы можете запустить экземпляр Oracle HTTP Server на хосте 2 из совместной реализации на хосте 1. Вы можете использовать любую из команд WLST или любой из инструментов Fusion Middleware Control. Например, чтобы подключить host2 к Node Manager и запустить сервер ohs1, с host1 введите:
/ ohs / common / bin / wlst.ш nmConnect ('weblogic', ' ', ' ', ' ', '<имя-домена>', ' ', 'ssl') nmStart (serverName = 'ohs1', serverType = 'OHS')
См. Раздел 4.3, «Выполнение основных задач Oracle HTTP Server» для получения информации о запуске, остановке, перезапуске и настройке компонентов Oracle HTTP Server.
.
Запуск Oracle HTTP Server
Вы можете удаленно управлять Oracle HTTP Server, работающим в автономной среде, из совместно размещенной реализации Oracle HTTP Server, запущенной на отдельном компьютере. Эта функция позволяет использовать инструмент сценариев WebLogic (WLST) или Fusion Middleware Control, установленный как часть инфраструктуры Oracle Fusion Middleware с удаленного компьютера, для запуска, перезапуска, остановки и настройки компонента. В этом разделе описывается, как настроить Oracle HTTP Server для удаленной работы.
4.4.1 Настройка удаленной среды
В следующих инструкциях описывается, как настроить удаленную среду, которая позволит вам запустить Oracle HTTP Server, установленный на одном компьютере, из установки на другом. В этом разделе содержится следующая информация:
4.4.1.1 Требования к хосту
Для удаленного управления Oracle HTTP Server на разных машинах должны быть установлены отдельные хосты:
Совместная установка (в этом примере эта установка будет называться host1).
Автономная установка (host2). Путь к автономному MW_HOME на хосте 2 должен быть таким же, как и путь к совместно размещенному MW_HOME на хосте 1; например:
/ царапина / пользователь / работа
4.4.1.2 Задача 1: Настройка расширенного домена на host1
Следующие шаги описывают, как настроить расширенный домен и связать его с базой данных на совместной версии Oracle HTTP Server (host1).
С помощью утилиты настройки репозитория (RCU) настройте и установите базу данных для расширенного домена.Дополнительные сведения см. В разделе Oracle Fusion Middleware Создание схем с помощью утилиты создания репозитория.
Запустите Мастер настройки и создайте расширенный домен. Используйте значения, указанные в таблице 4-1.
Таблица 4-1 Настройка расширенного домена
Для … Выберите или введите … Создать домен
Создайте новый домен и укажите его путь (например, MW_HOME / user_projects / domains / ohs1_domain)
шаблоны
HTTP-сервер Oracle (размещенный)
Расположение приложений
По умолчанию
Учетная запись администратора
Имя пользователя и пароль (например, weblogic и welcome1)
Тип конфигурации базы данных
Данные RCU.Затем нажмите «Получить конфигурацию RCU» и затем «Далее».
Дополнительная конфигурация
Следующие позиции:
Сервер администрирования
Диспетчер узлов
Компоненты системы
Развертывание и услуги
Сервер администрирования
Адрес прослушивания (все локальные адреса или допустимое имя или адрес для host1) и порт
Диспетчер узлов
на домен и укажите учетные данные NodeManager (например,
weblogic
иwelcome1
).Компоненты системы
Добавьте и установите поля, используя OHS в качестве типа компонента (например, используйте значение системного компонента ohs1).
Сервер OHS
Прослушивать адреса и порты или использовать значения по умолчанию.
Станки
Доп. Это добавит компьютер в домен (например, ohs1_Machine), а диспетчер узлов получит значения прослушивания и порта.Вы должны указать адрес прослушивания для хоста 2, который доступен с хоста 1, например допустимое имя или адрес для хоста 2 (не используйте localhost или Все локальные адреса).
Назначить системные компоненты
Компонент OHS (например,
ohs1
), затем используйте стрелку вправо, чтобы назначить компонент машине (например,ohs1_machine
).Обзор конфигурации
Создать (обратите внимание, что шаги OPSS могут занять несколько минут).
4.4.1.3 Задача 2: Упаковать домен на host1
На host1 используйте следующую команду для упаковки домена:
/ohs/common/bin/pack.sh -domain = путь к домену -template = путь к шаблону -template_name = name -managed = true
Например:
/ohs/common/bin/pack.sh -domain = / user_projects / domains / ohs1_domain -template = / tmp / ohs1_tmplt.jar -template_name = ohs1 -managed = true
4.4.1.4 Задача 3: Распаковать домен на host2
Используйте следующие шаги, чтобы распаковать домен, который вы упаковали на host1, выше, на host2:
Скопируйте файл шаблона, созданный в 0, «Задача 2: Упаковать домен на host1» с host1 на host2.
Используйте следующую команду для распаковки домена:
/ohs/common/bin/unpack.sh -domain = путь к домену -template = путь к шаблону Например:
/ ohs / common / bin / unpack.sh -domain = / user_projects / domains / ohs1_domain -template = / tmp / ohs1_tmplt.jar
4.4.2 Удаленный запуск Oracle HTTP Server
После того, как вы распаковали домен, созданный на host1, на host2, вы можете использовать тот же набор команд WLST и инструментов Fusion Middleware Control, который вы использовали бы в совместно размещенной среде для запуска, остановки, перезапуска и настройки компонента.
Для удаленного запуска Oracle HTTP Server выполните следующие действия:
Запустите Сервер администрирования WebLogic на host1:
/ user_projects / domains / ohs1_domain / bin / startWebLogic.ш и Запустить диспетчер узлов на хосте 2:
/user_projects/domains/ohs1_domain/bin/startNodeManager.sh &
Теперь вы можете запустить экземпляр Oracle HTTP Server на хосте 2 из совместной реализации на хосте 1. Вы можете использовать любую из команд WLST или любой из инструментов Fusion Middleware Control. Например, чтобы подключить host2 к Node Manager и запустить сервер ohs1, с host1 введите:
/ ohs / common / bin / wlst.ш nmConnect ('weblogic', ' ', ' ', ' ', '<имя-домена>', ' ', 'ssl') nmStart (serverName = 'ohs1', serverType = 'OHS')
См. Раздел 4.3, «Выполнение основных задач OHS» для получения информации о запуске, остановке, перезапуске и настройке компонентов Oracle HTTP Server.
.