Как удаленно установить программу на компьютер в домене
Работая системным администратором, часто сталкиваешься с необходимостью удаленной установки каких-либо программ. Что-то массовое может быть установлено через групповые политики, что-то единичное приходится устанавливать с помощью непосредственного управления целевым компьютером.
Однако, с тех пор, как в нашей ультраконсервативной конторе стали появлятся компьютеры с более новой, чем XP, версией Windows, возникла проблема: удаленный помощник Windows Server 2003 (который итак никого, в общем-то, не устраивал) не мог подключиться к более поздним версиям ОС. Конечно, у нас оставался старый добрый «Удаленный рабочий стол», но иногда ведь нужно увидеть именно то, что видит на своем рабочем столе пользователь. При этом политика безопасности конторы требовала использовать минимум стороннего софта.
После долгих поисков, было установлено, что подключиться к сеансу Windows 7 из сеанса Windows Server 2003 без какой-либо сторонней утилиты не получится. Конкурс на самую бесплатную утилиту удаленного управления выиграла UltraVNC. Именно на ее примере ниже будет рассмотрен способ удаленной тихой установки программ без использования сторонних утилит.
Постановка задачи
Для все той же минимизации присутствия левого софта на компьютерах предприятия, решено было не толкать установку UltraVNC через политики. При этом не было никакого желания на каждый компьютер, где требуется подключиться в сеанс пользователя, подключаться через «удаленный рабочий стол» для установки UltraVNC.
Так и возникла задача — организовать удаленную установку программы X на компьютер Y по требованию. В результате работы сначала явился на свет файл install.bat, способный совершить тихую установку-настройку требуемой программы, а затем был придуман и способ запустить такую установку на удаленном компьютере совершенно без использования сторонних утилит (remote-install.bat).
Тихая установка UltraVNC
Скрипт позволяет быстро и без лишнего шума установить UltraVNC при запуске с администраторскими правами на целевой машине.
Удаленный запуск тихой установки
Немаловажное
- соответственно названные дистрибутивы для 32 и 64-битных систем — UltraVNC1191(x86).exe и UltraVNC1191(x64).exe
- заранее заготовленный файл с настройками будущего UltraVNC сервера — ultravnc.ini (можно взять из уже установленной и настроенной копии программы на любом компьютере)
- файл с опциями установки — uvncinstall.inf. У меня он такой:
Данные bat-скрипты позволили беспрепятственно устанавливать UltraVNC не только на компьютеры с Windows 7, но и на проблемные (с точки зрения «удаленного помощника») компьютеры с Windows XP, а впоследствии и на компьютеры с Windows 8. При желании и наличии напильника, с помощью этих скриптов также можно установить и другие программы — лишь бы была «тихая» установка.
Ключевой особенностью этого способа установки стало именно использование schtasks для создания, запуска и удаления заданий после их завершения. Остальное содержимое скриптов — проверки, перестраховки и всяческие ленивости для минимизации ручного и умственного труда при необходимости установки UltraVNC на очередной компьютер.
Предлагаю программу для администраторов — Rinstall (скачать можно здесь). Она решает следующие задачи:
- Удалённое администрирование
- Удалённое выполнение команд
- Удалённая установка приложений
- Host — IP-адрес/имя удалённого компьютера. Программа постоянно пытается подключиться к нему и сигнализирует о результате:
- красный — компьютер не найден (возможно на нём включен брандмауэр);
- жёлтый — компьютер найден, но учётные данные не верны / не хватает прав / на удалённом ПК включен «простой общий доступ к файлам»;
- зелёный — компьютер найден, учётные данные верны, права есть.
Здесь же можно указать список компьютеров. Для этого дважды щелкните в пустом поле — появится имя списка по умолчанию — list. Отредактировать список можно дважды щёлкнув по нему мышкой. Списков может быть несколько, но все они должны начинаться с символа "@".
Настройки программы читаются при её запуске из файла rinstall.ini, который может находиться в каталогах "%PROGRAMFILES%\Rinstall\" и "%USERPROFILE%\Rinstall\" (последний приоритетнее).
1. Удалённое администрирование
- [Info] — получить информацию о системе.
- [Soft] — получить список установленного ПО.
- [CM] — запустить консоль управления компьютером.
- [CMD] — запустить удалённый шелл.
- [CMRC] — подключиться через клиента Configuration Manager.
- [RDP] — подключиться через удалённый рабочий стол.
- [RA] — подключиться через удалённый помощник.
- [VNC] — подключиться через TightVNC (Ctr+Alt+Shift+T — панель инструментов).
- [Radmin] — подключиться через Radmin.
- [Resource] — открыть удалённый ресурс.
- [Space] — посмотреть, чем занято место на дисках удалённого компьютера.
2. Удалённое выполнение команд
- [Command] — команда (запускаемый файл: *.exe,*.bat, *.cmd, *.vbs, *.hta, и т.д.), выполняемая на удалённом компьютере. По умолчанию указана команда запуска диспетчера устройств.
- [Args] — Аргументы (параметры/ключи) команды, если они нужны.
- [x] Copy — копировать команду на удалённый компьютер (при этом нужно указать её полный путь на локальном компьютере).
- [x] Hide — выполнить команду скрытно.
- [x] Wait — ждать завершения команды.
- [Far] — запустить Far.
- [CMD] — запустить шелл.
- [Autoruns] — запустить менеджер автозагрузки.
- [Geek Uninstaller] — запустить менеджер деинсталляции.
- [GPUpdate] — обновить групповые политики (с ключом /FORCE).
- [Reset] — завершить все psexec-процессы.
- [Renew] — обновить IP-адрес.
- [Reboot] — перезагрузить компьютер.
- [RunAsLnk] — создать ярлык для приложения, запускающегося от имени пользователя с правами администратора (используется бесплатная версия RunAsSpc).
Команды выполняются на удалённом компьютере с правами SYSTEM.
В качестве команд удобно запускать портативные приложения (не забываем ставить галочку Copy). Тут, правда, имеются непонятные проблемы с запуском SFX-архивов на удалённых компьютерах с 64-разрядной ОС…
3. Удалённая установка приложений
Папки с приложениями (Rel Path) размещаются внутри базового сетевого ресурса (Net Path). Доступ к нему осуществляется по учётным данным (Net User, Net Pass). Во время установки приложения на удалённом компьютере подключается сетевой диск (Net Disk).
Это вторая часть гайда по удаленной установке программ в домене. Первый из них уже был описан в статье « Установка программ в домене удаленно «. Там речь шла о размещении всех необходимых дистрибутивов в одной папке, с дальнейшим делегированием прав — для доступа к ней с любого компьютера. В этой же статье, хотелось бы рассмотреть немного иной подход.
Установка программ по сети с помощью групповых политик.
Не весь софт можно поставить таким методом, поэтому в данной статье собраны ссылки на софт, который удалось заставить устанавливаться или обновляться через Групповые политики ( GPO ) Active Directory .
Групповая политика — это набор правил или настроек, в соответствии с которыми производится настройка рабочей среды Windows . Групповые политики создаются в домене и реплицируются в рамках домена. Для того, чтобы это сделать, нужно выполнить ряд превентивных действий:
- скопировать к себе на компьютер файл Microsoft Installer ( MSI ) программного обеспечения Wininstaller . Поместить этот файл в каталог C:\Distr на своем компьютере и расшарить его как \\имя_нашего_компьютера\Distr$ ; (как это сделать, было описано здесь )
- далее нужно создать групповую политику WinInstaller , которая бы устанавливала программное обеспечение Wininstaller на все компьютеры нашего домена.
Действуем следующим образом:
- После того, как мы создали общий каталог и скопировали в него нужные файлы, нужно открыть Group Policy Management Console, щелкнуть правой кнопкой мыши по узлу нашего домена и в контекстном меню выберать Create and Link a GPO here . Присвоить групповой политике название Wininstaller .
- Далее щелкаем правой кнопкой мыши по объекту созданной групповой политики и в контекстном меню выбираем Edit. В окне Group Policy Object Editor нужно раскрыть узел Computer Configuration -> Software Settings -> Software installation, щелкнуть правой кнопкой мыши по узлу Software Installation и в контекстном меню выбрать New -> Package.
- В окне Open вводим путь к пакету MSI: \\имя_нашего_компьютера\Distr$\SWIADMLE.MSI и нажимаем Open.
- В окне Deploy Software устанавливаем переключатель в положение Advanced и нажимаем OK .
- В окне WinInstall Properties смотрим все вкладки и нажимаем OK . Закрываем окна Group Policy Object Editor и Group Policy Management Console с сохранением внесенных изменений и перезагружаем компьютер. В процессе запуска следует обратить внимание на строку Installing Managed Software WinInstall , которая появится после строки Applying Computer Settings .
- После окончания перезагрузки можно заметить, что в меню Programs появилась новая группа программ.
Теперь предварительные приготовления закончены и можно начинать добычу пакетов MSI :
(обновления версий в подкаталогах) наложение обновлений Reader: > mkdir C:\Temp\AdobeReader > cd C:\Temp\AdobeReader > msiexec /a AdbeRdr1000_ru_RU.msi TARGETDIR=c:\Temp\AdobeReader\Updated > msiexec /a c:\Temp\Adobe\Updated\AdbeRdr1000_ru_RU.msi /p C:\Temp\AdobeReader\AdbeRdrUpd1001_Tier4.msp
Системному администратору часто приходится устанавливать очень много различных программ и приложений на компьютеры сотрудников фирмы. Иногда число этих сотрудников слишком велико, или офис очень большой — для того, чтобы админ бегал по нему весь день и устанавливал эти программы. Это отнимает огромную кучу времени, которое можно потратить на более полезные вещи.
Как же помочь юзеру, не бегая к нему через весь офис, ради установки какого-нибудь google chrom -а?
Вариантов всегда несколько. В этой статье хотелось бы рассмотреть один из них.
Дистрибутивы в одной папке и DameWare для установки.
Настраиваем общую папку на сервере/личном компьютере. Создаем папку ( я назвал ее Distr ), заходим в ее свойства, вкладка: «Доступ» — кнопка «Общий доступ».
Выбираем из выпадающего списка пункт «Все» и устанавливаем ему права — «Чтение».
Далее наша папка расшарена и доступна для всех пользователей. Заливаем в нее все дистрибутивы, которые нам нужны.
Для проверки работоспособности папки — можем перейти по ее адресу и глянуть — все ли в порядке. Заходим на свой компьютер по smb:
1. вы должны знать имя своего компьютера. ( У меня это будет Feanor184 ).
2. Открываем любую папку на компьютере( например, «Мой компьютер»).
3. В верхней строке адреса — где написано ( ► Мой компьютер ► ) выделяем все, стираем и вводим: //feanor184/ и нажимаем Enter.
Открываем и видим все наши расшаренные папки.
Вся прелесть и смысл этой волокиты в том, что теперь мы можем попадать в эту папку с любого компьютера нашей офисной сети( при условии, что все компьютера в офисе находятся в одной сетке).
Ставим клиент DameWare.
Теперь нам нужно установить клиент DameWare . В его установке нет ничего сложного и необычного, ставится как обычная программа с официального сайта разработчика. Ставим самую последнюю версию — чтобы комфортно было работать с Windows 8.1 — если вдруг возникнет такая необходимость.
Процесс установки и детальной настройки я, возможно, опишу в ближайших статьях.
Перейдем непосредственно к цели нашей волокиты. Мы имеем DameWare и расшаренную папку. Теперь мы можем подключиться к любому компьютеру в нашей сети и установить нужный нам софт из расшаренной папки со своими правами.
Запускам клиент DameWare и видим следующее окно:
В поле Host — вбиваем имя компьютера пользователя( или его Ip адресс), к которому мы хотим подключиться и установить программу.
User Id — наш логин в Домене.
Password — наш пароль в домене.
Domain — наш домен(актуально, если вдруг он не один).
( ВАЖНО! Чтобы мы могли подключиться к удаленному компьютеру подобным образом, у пользователя должен быть отключен Брандмауэр )
После этого мы попадаем к пользователю на компьютер, можем зайти в свою папку( //feanor184/distr/ ) и устанавливать любые программы.
Во второй части статьи будутт рассмотрены способы установки программ пользователям удаленно с помощью групповых доменных политик.
Загрузить PsTools(3,5 МБ)
Введение
Такие программы, как Telnet и программы удаленного управления, такие как PC Anywhere компании Symantec, позволяют выполнять программы на удаленных системах, но они могут быть нелегко настроены и требовать установки клиентского программного обеспечения на удаленных системах, к которым вы хотите получить доступ. PsExec — это облегченная замена Telnet, которая позволяет выполнять процессы в других системах, полностью интерактивно выполняемые с консольными приложениями, не требуя вручную устанавливать клиентское программное обеспечение. Наиболее эффективные варианты использования PsExec включают в себя запуск интерактивной командной строки для удаленных систем и средств удаленного включения, таких как IpConfig, которые в противном случае не могут показывать сведения об удаленных системах.
Примечание. Некоторые антивирусные сканеры сообщают о том, что один или несколько средств заражены вирусом "remote admin". Ни один из PsTools не содержит вирусов, но они использовались вирусами, поэтому они запускают уведомления о вирусах.
Установка
Просто скопируйте PsExec на путь к исполняемому файлу. При вводе PsExec отображается его синтаксис использования.
Использование программы PsExec
ознакомьтесь с разделом 2004 июля Windows ит Pro Magazine для получения статьи о пометке , посвященной расширенному использованию PsExec.
Использование:
Параметр | Описание |
---|---|
-a | Отдельные процессоры, на которых приложение может работать с запятыми, где 1 — это наименьший номер ЦП. Например, чтобы запустить приложение на ЦП 2 и ЦП 4, введите: "-a 2, 4" |
-c | Скопируйте указанный исполняемый файл в удаленную систему для выполнения. Если этот параметр не задан, приложение должно находиться в системном пути в удаленной системе. |
-d | Не дожидаться завершения процесса (не интерактивного). |
-e | Не загружает профиль указанной учетной записи. |
-f | Копирование указанной программы, даже если файл уже существует в удаленной системе. |
-i | Запустите программу, чтобы она взаимодействовала с рабочим столом указанного сеанса в удаленной системе. Если сеанс не указан, процесс выполняется в сеансе консоли. Этот флаг необходим при попытке запуска консольных приложений в интерактивном режиме (с перенаправленным СТАНДАРТным вводом-выводом). |
-h | Если целевая система находится в системе Vista или более поздней версии, процесс выполняется с маркером повышенной безопасности учетной записи, если он доступен. |
-l | Запустите процесс от имени ограниченного пользователя (поменяет группу администраторов и разрешает только привилегии, назначенные группе Пользователи). в Windows Vista процесс выполняется с низкой целостностью. |
-n | Указывает время ожидания в секундах при подключении к удаленным компьютерам. |
-p | Указывает необязательный пароль для имени пользователя. Если этот параметр не указан, будет предложено ввести скрытый пароль. |
-r | Указывает имя удаленной службы для создания или взаимодействия с. |
-s | Запустите удаленный процесс в системной учетной записи. |
-u | Указывает необязательное имя пользователя для входа на удаленный компьютер. |
-v | Скопируйте указанный файл только в том случае, если он имеет более высокий номер версии или более новый, чем тот, который находится в удаленной системе. |
-w | Задайте рабочий каталог процесса (относительно удаленного компьютера). |
-x | Отображение пользовательского интерфейса на безопасном рабочем столе Winlogon (только в локальной системе). |
— приоритет | Указывает-Low,-BelowNormal,-AboveNormal,-High или-реального времени для запуска процесса с другим приоритетом. Используйте-Background для запуска с нехваткой памяти и приоритетом ввода-вывода в Vista. |
компьютерами | Direct PsExec для запуска приложения на удаленном компьютере или указанных компьютерах. Если опустить имя компьютера, программа PsExec запустит приложение в локальной системе и при указании подстановочного знака (\ \ *) программа PsExec выполнит команду на всех компьютерах в текущем домене. |
@file | PsExec выполнит команду на каждом из компьютеров, перечисленных в файле. |
cmd | Имя выполняемого приложения. |
даваемых | Аргументы для передачи (Обратите внимание, что пути к файлам должны быть абсолютными путями в целевой системе). |
-AcceptEula | Этот флаг подавляет отображение диалогового окна лицензии. |
Приложения, имена которых содержат пробелы, можно заключать в кавычки, например
Если не указать имя пользователя, процесс будет выполняться в контексте вашей учетной записи в удаленной системе, но не будет иметь доступа к сетевым ресурсам (так как это олицетворение). Укажите допустимое имя пользователя в Domain\User синтаксисе, если удаленный процесс требует доступа к сетевым ресурсам или для запуска в другой учетной записи. Обратите внимание, что пароль и команда шифруются при передаче в удаленную систему.
Коды ошибок, возвращаемые PsExec, относятся к выполняемым приложениям, а не PsExec.
Примеры
В этой статье я написал Описание того, как работает PsExec и предоставляет советы по его использованию:
Следующая команда запускает интерактивную командную строку на \\marklap :
Эта команда выполняет команду IpConfig в удаленной системе с /all параметром и отображает итоговый результат на локальном компьютере:
Эта команда копирует программу test.exe в удаленную систему и выполняет ее в интерактивном режиме:
Укажите полный путь к программе, которая уже установлена в удаленной системе, если она не находится в системном пути:
Запустите программу regedit в интерактивном режиме в системной учетной записи, чтобы просмотреть содержимое ключей SAM и безопасности:
Чтобы запустить Internet Explorer с правами ограниченного доступа пользователя, используйте следующую команду:
Загрузить PsTools(3,5 МБ)
PSTools
PsExec является частью растущего комплекта средств командной строки Sysinternals, помогающих в администрировании локальных и удаленных систем с именем PsTools.
Читайте также: