Запуск программы по сети

Загрузка компьютеров по локальной сети с использованием программы AOMEI PXE Boot

Запуск программы по сети

Как переустановить Windows или попытаться её реанимировать с аварийного LiveDisk’а, если она не загружается, при этом мы не можем запустить компьютер с установочного или реанимационного загрузочного носителя? У компьютера может не быть DVD-привода, он может не поддерживать загрузку с USB-устройств, USB-порты могут быть отключены или повреждены. А, возможно, у нас банально нет сейчас в наличии болванки, флешки, прочего носителя, дабы сделать его загрузочным, тогда как проблему нужно решать срочно. Её можно решить без оптического диска, флешки или USB-диска при условии, что у нас в помещении есть другой компьютер, с которым первый проблемный объединены в одну проводную локальную сеть. Проблемный ПК или ноутбук можно запустить с установочного или реанимационного образа по сети, и один из программных инструментов, который может нам помочь реализовать эту задачу – программа AOMEI PXE Boot. Рассмотрим её.

О программе

AOMEI PXE Boot – узкопрофильная программа, предназначенная для загрузки компьютеров по сети с использованием образов самозагружаемого ПО. Содержит собственный DHCP-сервер, обеспечивающий работу компьютеров в сети по модели «клиент-сервер».

Программа реализует возможность запуска компьютеров, у которых нет иных механизмов запуска, кроме как с внутреннего жёсткого диска.

И являет собой решение для системных администраторов по комплексному обслуживанию нескольких компьютеров: с использованием AOMEI PXE Boot можно одновременно запустить на скольких-угодно компьютерах, к примеру, массовое развёртывание образа Windows.

Программа бесплатна в рамках использования возможности одновременной загрузки по сети до 3 компьютеров включительно. Скачать AOMEI PXE Boot можно на сайте компании-разработчика: https://www.ubackup.com/pxetool.html

Принцип работы программы предельно прост: на одном компьютере запускается образ самозагружаемого ПО, этот компьютер будет играть роль сервера; на клиентских компьютерах – целевых компьютерах – выставляется в BIOS их запуск по сети.

В качестве самозагружаемого ПО может выступать любой ISO- или WIM- образ – процесс установки операционной системы, среда WinPE или Linux с антивирусами, менеджерами дисков, программами для резервного копирования и восстановления, комплексные аварийные LiveDisk’и.

Чтобы клиентские компьютеры можно было запустить по сети с использованием программы AOMEI PXE Boot, они, повторимся, должны быть объединены с компьютером-сервером в единую локальную сеть, в сеть проводную, сеть Ethernet. Беспроводная сеть Wi-Fi программой не поддерживается.

И, конечно же, клиентские компьютеры должны предусматривать PXE-загрузку, т.е. загрузку по сети. Если на компьютере-сервере используется сторонний антивирусный продукт с фаерволом в составе, последний может блокировать работу программы.

В таком случае фаервол можно временно отключить.

И также у AOMEI PXE Boot есть свои особенности работы в условиях запуска по сети клиентских компьютеров с BIOS UEFI. Такие могут быть запущены только с WIM-образов, но не с образов ISO. Создатели программы рекомендуют на таких компьютерах использовать режим загрузки Legacy, т.е. режим обычной BIOS.

Но они не говорят, как быть, если компьютер предусматривает только режим BIOS UEFI, а такое может быть на современных ноутбуках. И также они не говорят, как быть, если нужно по сети переустановить Windows на GPT-диске. Система же не установится на диск с этим стилем разметки в условиях Legacy-загрузки.

Но мы самостоятельно нашли решения для таких случаев и рассмотрим их чуть позднее. Сейчас же поговорим об основных аспектах работы AOMEI PXE Boot.

Запуск загрузочного образа на компьютере-сервере

Устанавливаем программу AOMEI PXE Boot на компьютер-сервер, запускаем.

Программа очень простая, предусматривает только две опции: первая – это загрузка по сети загрузочных образов продуктов самой компании AOMEI, вторая – загрузка образов любого иного самозагружаемого ПО.

В нашем случае мы не будем использовать образы продуктов AOMEI, мы запустим образ диска восстановления Windows MSDaRT. Поэтому мы кликаем вторую опцию и жмём кнопку обзора «Browse».

В окне обзора указываем путь к ISO-образу MSDaRT. Важно: образ самозагружаемого ПО в названии не должен содержать пробелов, их можно заменить нижним подчёркиванием. И имя должно быть латиницей. После указания пути ISO-образа кликаем «Start Service», это действие по запуску сервера.

Кликаем «Ок» в окошке, предупреждающем нас, что для старта работы сервера программа должна быть запущена от имени администратора.

И ожидаем немного, пока в окне AOMEI PXE Boot не появится сообщение о том, что сервер запущен и ожидает соединения.

Запуск клиентских компьютеров по сети

Что мы делаем на клиентских компьютерах? Мы входим в BIOS и настраиваем загрузку по сети. Рассмотрим, как это делается на примере интерфейса UEFI DualBIOS материнской платы Gigabyte. Мы идём в раздел настроек BIOS.

И если мы на сервере запустили загрузочный ISO-образ, то первым делом смотрим настройку фильтра опции загрузки, чтобы у нас стоял режим совместимости UEFI и Legacy. Значение этой настройки должно быть «UEFI и прежняя версия».

Но не в каждой версии BIOS UEFI можно выставить режим совместимости, на ноутбуках часто такой возможности. В таком случае просто временно активируем режим Legacy.

Дальше мы ищем настройку включения загрузки по сети (PXE-загрузки). В DualBIOS она называется «ПЗУ для загрузки по сети», включаем эту настройку.

Теперь сохраняем внесённые настройки, перезагружаемся, запускаем Boot-меню BIOS и в нём выбираем PXE-загрузку с использованием сетевой карты.

На экране клиентского компьютера увидим уведомление о загрузке по сети с использованием запущенного на сервере ISO-образа.

На этапе загрузки придётся немного подождать, загрузка больших ISO-образов может занять какое-то время, может даже несколько минут.

Разработчики программы рекомендуют при её использовании в рамках администрирования по сети множества компьютеров загружать одновременно небольшие группы компьютеров, дабы процесс загрузки был более производительным.

Ну и после загрузки образа мы уже можем приступать к работе с его программным обеспечением.

Остановка сервера

По завершении работы с клиентскими компьютерами сервер можно выключить. Делается это кнопкой «Stop» в окне AOMEI PXE Boot.

Особенности запуска по сети компьютеров в режиме BIOS UEFI

Ну а теперь, как и было анонсировано выше, рассмотрим вопрос загрузки по сети с помощью AOMEI PXE Boot клиентских компьютеров с BIOS UEFI. Компьютеры в этом режиме могут быть загружены по сети только при условии запуска на компьютере-сервере WIM-образа самозагружаемого ПО. И вот тут есть закавыка.

Если это, к примеру, процесс установки Windows, то в его ISO-дистрибутиве мы обнаружим два WIM-образа (при условии, что второй образ не поставляется в формате ESD). Что это за образы? Один – образ загрузочной среды WinPE в файле boot.wim, другой – файл-образ install.

wim, это контейнер хранения системных файлов Windows.

С запущенных на сервере в отдельности этих WIM-образов толку не будет, эти образы должны запускаться вместе. По этому же принципу устроены многие LiveDisk’и: их среды WinPE в WIM-образах являют собой только среду загрузки, всё остальное их содержимое, в частности, поставляемый софт, находится отдельно от среды WinPE.

Что делать в такой ситуации? Как минимум есть два варианта. Вариант 1: с помощью программ типа Dism++, редактирующих образы Windows, можно извлечь из ISO WIM-образ операционной системы и отредактировать его, сделав загрузочным.

Вариант 2: использовать LiveDisk’и на базе WinPE для запуска самой этой среды, и в ней подтянуть расшаренные по сети ресурсы для решения своих вопросов.

Пример такого LiveDisk’а – WinPE 10-8 Sergei Strelec, конкретно для нашей ситуации он примечателен тем, что предусматривает работу в среде WinPE с авторизованной учётной записью администратора. И нам не придётся возиться с настройкой в среде WinPE доступа к сетевым ресурсам. Как всё это работает?

Качаем на сайте LiveDisk’а Sergeistrelec.Ru его ISO-образ. Подключаем ISO для отображения в проводнике на компьютере-сервере. Заходим на смонтированном диске в папку «SSTR».

В этой папке нам нужен файл запуска 64-битной среды WinPE10, это файл strelec10x64.wim. Указываем путь к этому файлу при запуске сервера в окне программы AOMEI PXE Boot. Запускаем сервер.

Клиентский компьютер загружается с WinPE10.

Мы попадаем в среду WinPE, где нас уже встречают уведомления об отсутствии файлов по некоторых путях, ведь мы запустили не целостный образ LiveDisk’а, а его урезанную часть. Но мы кликаем кнопку авторизации с помощью учётной записи администратора.

Авторизуемся.

И без лишних танцев с бубном в проводнике WinPE получаем доступ к расшаренным ресурсам локальной сети, в частности, к файлам компьютера-сервера, где у нас есть, чем помочь клиентскому компьютеру.

Например, мы хотим помочь методом переустановки Windows. На компьютере-сервере расшариваем папку с установочным ISO Windows. На клиентском компьютере открываем этот ISO в проводнике WinPE.

Запускаем на смонтированном диске файл setup.exe.

И устанавливаем Windows так, как если бы запустили процесс установки привычно с установочного носителя.

А если мы хотим помочь клиентскому компьютеру путём реанимации его существующей операционной системы, мы на компьютере-сервере расшариваем ISO-образ того же WinPE 10-8 Sergei Strelec. Подключаем его для отображения в проводнике WinPE клиентского компьютера.

На смонтированном диске заходим в папку «SSTR», далее – в подпапку «MInst». И в последней запускаем менеджер программ MInst.

В окне MInst выбираем пункт запуска программ для 64-битной Win10.

И всё: в меню MInst можем выбрать любую из программ, поставляемых в целостном образе LiveDisk’а.

Windows, Компьютеры, Работа с сетью, Руководства

Источник: https://altarena.ru/zagruzka-kompyuterov-po-lokalnoj-seti-s-ispolzovaniem-programmy-aomei-pxe-boot/

Запуск PsExec и примеры использования на удаленном компьютере

Запуск программы по сети

Psexec будет очень полезна для решения задач связанных с удаленным администрированием. Она позволяет удаленно выполнять команды командной строки Windows  и незаметно устанавливать программы на любой компьютер в сети со своего компьютера. Эта утилита входит в состав набора инструментов командной строки PsTools.

Установка и запуск PsExec

Скачать утилиту PsExec можно с официального сайта Microsoft совместно с набором инструментов PsTools: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec 

Утилита PsExec не требует установки. Достаточно загрузить ее в папку на любой диск и выполнять запуск из этой директории. В моем случае программа будет находиться в директории c:\pstools.

Для того, чтобы psexec  беспрепятственно запустился на удаленном компьютере с Windows  версии 7 и позднее, на этих самых удаленных компьютерах, должны быть включены общие административные ресурсы \C$ \D$ \IPC$ \Admin$.

Для включения административных ресурсов нужно добавить в реестр удаленного компьютера запись:

reg add “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System” /v “LocalAccountTokenFilterPolicy” /t REG_DWORD /d 1 /f

На Windows 10 административные ресурсы включены по-умолчанию.

Узнать включены ли административные ресурсы можно с помощью команды net share.

Запуск PsExec выполняется через командную строку Windows, так как утилита является консольной.

Для работы с утилитой запускаем командную строку CMD и переходим в папку с программой psexec.

cd c:\pstools

Примеры использования PsExec

Общий синтаксис запуска программы PsExec выглядит так:

psexec \\компьютер [-u пользователь [-p пароль]] программа [аргументы]

Рассмотрим несколько примеров для понимания работы утилиты PsExec.

1. Узнаем  конфигурацию сетевого интерфейса компьютера в сети.

Запускаем программу psexec с указанием ip-адреса удаленного компьютера и командой, которую нужно выполнить.

psexec \\192.168.2.100 ipconfig

В этом примере запуск выполняется для компьютера, находящегося в домене и  cmd работает от имени пользователя, состоящего в группе “Администраторы домена”. Поэтому в параметрах запуска psexec не указаны логин и пароль администратора удаленного компьютера.

Для выполнения PsExec на компьютере от имени локального администратора удаленного компьютера необходимо запустить утилиту с параметрами: -u (имя пользователя) -p (пароль пользователя).

psexec \\192.168.2.100 -u admin -p PasSW0rD ipconfig

2. Запускаем исполняемый файл со своего компьютера на удаленный.

psexec \\192.168.2.100 -c c:\patch.bat

Параметр -c используется, чтобы скопировать файл из локальной операционной системы в удаленную и запустить его там на исполнение.

Если запустить psexec без параметра -с, то указанная директория с запускаемым файлом будет запрашиваться на удаленной системе.

С параметром -с может применяться -f и -v, которые используются для того чтобы перезаписать копируемый файл, если он уже существует. Это может понадобиться, если были внесены изменения в файл и его нужно повторно запустить в удаленной системе.

3. Запуск PsExec на нескольких компьютерах.

Запуск psexec на двух или трех удаленных компьютерах можно выполнить путем перечисления их имен или ip-адресов.

psexec \\Server1, Server2 -c c:\patch.bat

Когда целевых компьютеров десятки, то перечислять их каждый раз через запятую неудобно. В этом случае можно воспользоватся параметром @ и указать текстовый файл, в котором будет задан список ip адресов компьютеров.

psexec @ip-list.txt cmd -c c:\patch.bat

4. Подключение к командной строке Windows удаленного компьютера.

psexec \\172.16.0.121 cmd

После запуска cmd поменялось окно приветствия – это означает, что в терминал загрузилась среда исполнения команд удаленного компьютера.

Сейчас мы можем полноценно работать с командной строкой удаленного компьютера. Для примера, наберем команду ipconfig, которая нам покажет конфигурацию сетевого интерфейса. Для выхода из удаленной консоли и возврата в свою среду используем команду exit.

Список всех параметров запуска Psexec

@файл
Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.

-a
Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»

-c
Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.

-d
Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.

-e
Указанный профиль учетной записи не загружается.

-f
Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.

-i
Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.

-l
При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.

-n
Позволяет задать задержку подключения к удаленным компьютерам (в секундах).

-p
Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.

-s
Удаленный процесс запускается из системной учетной записи.

-u
Позволяет указать необязательное имя пользователя для входа в удаленную систему.

-v
Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.

-w
Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).

-x
Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).

Источник: https://soft-setup.ru/zapusk-psexec-i-primery-ispolzovaniya-na-udalennom-kompyutere/

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 “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, что само по себе достойно отдельной статьи ― стоит такую сделать или уже лишнее?

Кстати, поделитесь вашими способами скрытого и не очень запуска программ на удаленных компьютерах. Ну, за исключением эксплойтов.

Источник: https://habr.com/ru/company/pc-administrator/blog/342428/

PXE — грузим всё! Осваиваем мультизагрузку по локальной сети

Запуск программы по сети

Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится.

Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием.

Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.

Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими.

Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера… Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8…

В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).

Главное меню загрузки PXE, текстовый режимДругие статьи в выпуске:

  • выпуска
  • Подписка на «Хакер»

У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера.

Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу.

Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.

LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно.

PXE — инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP.

PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».

Главное меню загрузки PXE, графический режим

Началось все с необходимости иметь под рукой инструмент для удаленной установки Ubuntu/Debian Server по сети, с возможностью загрузки Live CD маленькой системы, вроде SliTaz или Kolibri OS.
Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.

  1. Тонкие клиенты на базе Thinstation Linux.
  2. Раздел Linux.
    1. Установка Ubuntu 14.04 x86.
    2. Установка Ubuntu 14.04 x64.
    3. Установка Ubuntu 12.04 x86.
    4. Установка Ubuntu 12.04 x64.
    5. Загрузка SliTaz Live CD.
  3. Раздел Windows.
    1. Установка Windows 2012.
    2. Установка Windows 7.
  4. Acronis.
    1. Windows PE с пакетом полезного ПО.
    2. Acronis True Image.
    3. Acronis Disk Director.
  5. Касперский Rescue v 10.
  6. ERD Commander от 5 до 8 через ISO-образ.
  7. Memtest.

В качестве дистрибутива для сервера выбор пал на Ubuntu Server 14.04.2 LTS. Можно остановиться на любой другой ОС, разница будет только в синтаксисе. Итак, приступим.

Нам потребуется TFTP, DHCP (необязательно установленный на этом же сервере, в роли DHCP-сервера может выступить роутер), сервис для организации сетевой файловой системы NFS.

Рассматривать будем только те настройки, которые нас интересуют в рамках темы. Первым делом установим все необходимое, предварительно сделав все обновления:

$ sudo apt-get update && sudo apt-get upgrade -y $ sudo apt-get install tftp-hpa nfs-common openbsd-inetd isc-dhcp-server -y

Параметр -y означает, что на все вопросы отвечаем согласием. Настройка TFTP сводится к правке пары строк в соответствующем месте:

# nano /etc/default/tftpd-hpa # /etc/default/tftpd-hpa TFTP_USERNAME=”tftp” TFTP_DIRECTORY=”/var/lib/tftpboot” TFTP_ADDRESS=”0.0.0.0:69″ TFTP_OPTIONS=”–secure”

Обрати внимание, параметр TFTP_DIRECTORY=”/var/lib/tftpboot” указывает место расположения корневого каталога TFTP-сервера. После сохранения перезапускаем удобным для себя способом:

$ sudo service tftpd-hpa restart $ sudo /etc/init.d/tftp-hpa restart

Далее настроим DHCP-сервер. Приведу простую конфигурацию файла /etc/dhcp/dhcpd.conf:

subnet 192.168.0.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.0.150 192.168.0.200; option broadcast-address 192.168.0.255; option domain-name-servers 192.168.0.2, 192.168.0.5; option routers 192.168.0.1; next-server 192.168.0.10; allow booting; allow bootp; class “pxeclients” { match if substring (option vendor-class-identifier, 0, 9) = “PXEClient”; filename “pxelinux.0”; next-server 192.168.0.10; } }

Данная конфигурация говорит о том, что DHCP-сервер работает в локальной сети 192.168.0.0/24. Клиенту присваиваются адреса из диапазона 192.168.0.150–192.168.0.200, им будут присвоены параметры шлюза — 192.168.0.

1, DNS-сервера — 192.168.0.2 и 192.168.0.5. Класс pxeclients, а именно параметр filename — это имя файла загрузчика, расположенного в корневой папке TFTP-сервера, в нашем случае /var/lib/tftpboot/pxelinux.

0, на сервере с адресом 192.168.0.10.

В качестве загрузчика будем использовать Syslinux. Последнюю версию можно взять здесь. Распаковываем и кладем в /var/lib/tftpboot следующие файлы: ldlinux.c32, libcom32.c32, pxelinux.0 и lpxelinux.0 и каталог boot, в который складываем chain.c32, ldlinux.c32, libcom32.

c32, libcom32.elf, libutil.c32, linux.c32, memdisk, menu.c32, vesamenu.c32 (menu.c32 — только текстовое меню, vesamenu.c32 позволяет украсить меню, например добавив фон). Файл меню загрузки по умолчанию должен находиться в /var/lib/tftpboot/pxelinux.

cfg/default и иметь вид

menu title Boot menu PXE DEFAULT boot/menu.c32 PATH boot/ TIMEOUT 50 label boothdd MENU LABEL Boot from first hard drive COM32 chain.c32 APPEND hd0

На этом этапе загрузчик должен работать и иметь единственный пункт меню «Загрузка с первого жесткого диска». Далее необходимо создать подменю. Чтобы не путаться и не городить огромные файлы, рекомендую вынести подпункты в отдельные файлы меню, например так:

label linux menu passwd qwerty menu label Install/Boot Linux kernel boot/menu.c32 append pxelinux.cfg/linux

Все, что относится к разделу меню Install/Boot Linux, вынесем в отдельный файл /var/lib/tftpboot/linux. Аналогично выносятся другие пункты меню. Остальные параметры загрузки рассмотрим при добавлении каждого пункта/продукта.

Menu title Linux Boot label menu menu label Return to Main menu kernel boot/menu.c32 append pxelinux.cfg/default label ubuntu32 menu label Ubuntu 14.04 i386 Netinstall kernel images/linux/ubuntu14/i386/linux initrd images/linux/ubuntu14/i386/initrd.gz label ubuntu64 menu label Ubuntu 14.04 amd64 Netinstall kernel images/linux/ubuntu14/amd64/linux initrd images/linux/ubuntu14/amd64/initrd.gz label slitaz menu label Slitaz v4.0 LiveCD kernel boot/memdisk iso initrd images/slitaz-4.0.iso append iso raw

Первым пунктом ставим возврат в предыдущий раздел меню. Далее будет установка Ubuntu 14.04 i386 и amd64. Скачиваем образ Ubuntu 14.04 mini.iso, распаковываем, находим прямо в корне два файла: linux и initrd.gz. Напомню, что корневой каталог сервера для загрузки — это каталог TFTP-сервера /var/lib/tftpboot.

Исходя из этого, располагаем файлы внутри tftpboot. В случае с установкой Ubuntu, например, в images/linux/ubuntu14/i386 для x86 и в /images/ubuntu14/amd64 для x64 архитектур соответственно. Заметь, пути указаны относительно каталога FTFP-сервера. Здесь можно задавать параметры для установки, для автоматизации процесса установки.

Например, задать параметр установки в качестве окружения рабочего стола при установке Debian KDE: append desktop=kde. Следующим шагом запустим маленький SliTaz. Грузить ISO-образы будем через memdisk. Из листинга сверху видно раздел slitaz, memdisk у нас расположен в каталоге boot, сам образ — в каталоге images.

Параметры аналогичны тем, что используются в мультизагрузочных дисках.

Загрузка Thinstation Linux Следующим шагом научим запускать тонкие клиенты. Образ Thinstation Linux можно скачать готовый в виде сборки, можно взять конструктор для сборки и собрать самостоятельно. Можно качнуть с GitHub. Будь готов, что в последнем случае для подготовки образа потребуется около 3 Гбайт свободного места и времени в районе часа.

Подготовка образа из Git хорошо описана в статье на сайте quaded.com. Я взял сборку с сайта nixts.org. В образе, который мы используем, много «ненужных» файлов, потому что там сразу и загрузчик, и дефолтные конфиги. Берем ядро и образ файловой системы (initrd и vmlinuz), которые складываем, например, в /var/lib/tftpboot/images/thinstation/.

Файлы конфигураций (thinstation.conf.network, thinstation.hosts, thinstation.conf-user) располагаем в корневом каталоге TFTP-сервера! Thinstation позволяет при загрузке учитывать MAC-адреса, IP-адреса, определять имя и группировать клиентов, в зависимости от параметров регулировать загрузку, например уводить на разные RDP- или VNC-серверы, сессии.

Это позволяет, например, наклепать кучу виртуалок с десктопными операционными системами и посадить каждого клиента на отдельную виртуалку. Для каждого клиента можно также отдельно задавать настройки доступа к локальным устройствам: принтерам, флешкам, дискам, приводам и так далее.

В общем, каждый ограничен только своей фантазией, благо вариантов использования с описанием настроек в сети навалом.

Продукты Acronis загружаются аналогично инсталляторам Linux-систем. Скачал в Сети первый попавшийся образ Acronis, исключительно в научных целях. Распаковал. Нас интересуют только два каталога: ADD12 и ATI2015. Внутри каждого каталога видим по два файла с одинаковым именем и разным расширением. Это сделано для загрузки на 32-битных и x64-системах. Если открыть файл menu.

lst того же образа, можно посмотреть, что чему соответствует. Для удобства складываем True Image и Disk Director аналогичным образом. Создаем папку acronis в рабочем каталоге (/var/lib/tftpboot). В него копируем ADD12 и ATI2015 со всем содержимым. Для удобства продукты Acronis выносим в отдельный раздел меню, так же как и раздел Linux. В pxelinux.

cfg/default добавляем:

label linux menu passwd qwerty menu label Install/Boot Linux kernel boot/menu.c32 append pxelinux.cfg/acronis

Файл acronis приводим к такому виду:

label acronis1 menu label Acronis Disk Director 2015 kernel /acronis/ADD12/1.krn vga=791 quiet initrd /acronis/ADD12/1.fs label acronis2 menu label Acronis Disk Director x64 kernel /acronis/ADD12/2.krn vga=791 quiet initrd /acronis/ADD12/2.fs label acronis3 menu label Acronis True Image 2015 kernel /acronis/ATI2015/1.krn vga=791 quiet initrd /acronis/ATI2015/1.fs label acronis4 menu label Acronis True Image 2015 x64 kernel /acronis/ATI2015/2.krn vga=791 quiet initrd /acronis/ATI2015/2.fs

Windows-образы грузить несколько сложнее. В реализации загрузки практически любого WinPE-образа с любым содержимым внутри нам поможет загрузчик WIMBoot. WIMBoot — это системный загрузчик WIM-образов по сети. Довольно хорошо о самом продукте рассказывается на сайте, там же есть ссылка на скачивание.

На сайте Microsoft есть инструкция по созданию WIM-образов. Образ, с которым я работал, был щедро вручен мне нашим системным администратором с продуктами Акронис. Назывался он Acronis_WinPE_Sergei_Strelec_25.11.2013.iso. Распаковав его, увидел в папке source заветный образ acronis.wim.

Для WIM-образов для большего порядка использую отдельный каталог wim. Чтобы не путаться, внутри сделал еще один каталог winpe. В него копируем acronis.wim. Еще нам потребуются два файла из каталога BOOT этого же образа: BCD, BOOT.SDI и файл BOOTMGR из корня образа. На этом образ можно закрыть, удалить, больше он не пригодится.

Переходим к подготовке загрузчиков (WIMBoot и syslinux). Распаковываем куда-нибудь архив wimboot-latest.zip. Копируем загрузчик WIMBoot на сервер TFTP, для удобства в каталог boot. Поскольку образ содержит Windows PE и различное программное обеспечение, в том числе и Acronis, то отнести можно в любой раздел меню.

Я расположил его в главном меню. Итак, в файл pxelinux.cfg/default вносим изменения:

label winpe menu label WinPE & Acronis menu passwd qwerty com32 linux.c32 boot/wimboot APPEND initrdfile=wim/winpe/BOOTMGR,/wim/winpe/BCD,/wim/winpe/BOOT.SDI,/wim/winpe/acronis.wim

На этом всё. В следующей статье мы научимся подготавливать и добавлять Windows-образы, сетевой установке в ручном и автоматическом режимах. Добавим Kaspersky Rescue v10, ERD Commander, именуемый MSDaRT. Разберемся, как запускать диагностические утилиты на примере memtest, а также покажем, как украсить меню загрузки.

Источник: https://xakep.ru/2015/10/16/pxe-local-net/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

    ×
    Рекомендуем посмотреть