Допустим в Вашей организации большое число компьютеров 50, 100, 200, 300 и.т.д и необходимо поставить одну программу или сервис пак(SP1) для всех компьютеров в Вашей сети. Бегать от компьютера к компьютеру и устанавливать — это крайне проблематично и не удобно. По RDP устанавливать долго и это причиняет неудобства пользователям, из-за чего они нервничают и срывают всю злость на Вас. Поэтому предлагаю несколько способов для решения данной проблемы.
- Можно с помощью групповых политик. Только msi пакеты.
- Можно с помощью платных программ, таких как Total Software Deployment (платная — на 500 компов 12600р, на бесконечное количество машин 40000 — Для организации крупной и средней вообще не деньги), Установил программу просканировал сеть, указал что ставить и куда ставить, нажал одну кнопку и пошел чай пить или домой, за тебя все сделает программа.
- Есть еще бесплатное решение с помощью утилиты psexec. удобно, быстро, а главное бесплатно.
Рассмотрим утилиту psexec. Утилита бесплатная, весит 400 Кб. В данной статье, все функции я рассматривать не буду, так как можно написать целый сборник. А просто на не большом примере расскажу, как ей пользоваться.
Запустить данную утилиту можно двумя способами:
- В командной строке выбрать каталог где лежит утилита, например (cd C:\sp) и дальше выбрать необходимые аргументы
- Скопировать утилиту в system32 и просто уже набирать необходимые аргументы
Начнем с малого, напишем аргументы для работы с утилитой
использование: psexec [\\компьютер[,компьютер2[,…] | @файл][-u пользователь [-p пароль]][-n s][-l][-s|-e][-x][-i [сеанс]][-c [-f|-v]][-w каталог][-d][-<приоритет>][-a n,n,… ] программа [аргументы]
компьютер
Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.
@файл
Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
-a
Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»
-c
Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
-d
Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-e
Указанный профиль учетной записи не загружается.
-f
Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
-i
Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
-l
При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.
-n
Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
-p
Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-s
Удаленный процесс запускается из системной учетной записи.
-u
Позволяет указать необязательное имя пользователя для входа в удаленную систему.
-v
Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
-w
Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
-x
Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).
-приоритет (приоритет)
Позволяет задавать для процесса различные приоритеты: -low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).
программа
Имя запускаемой программы.
аргументы
Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).
Чтобы задать имя приложения, которое содержит пробелы, используйте кавычки, например psexec \\marklap «c:\длинное имя\app.exe». Введенные данные передаются в удаленную систему при нажатии клавиши «Ввод», для завершения удаленного процесса нужно нажать сочетание клавиш Ctrl-C.
Если имя пользователя не задано, то удаленный процесс запускается из той же учетной записи, что и программа PsExec. Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если имя пользователя задано, то удаленный процесс запускается из указанной учетной записи и получает доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Учтите, что пароль передается в удаленную систему в виде открытого текста.
При обращении к локальной системе эту версию программы PsExec можно использовать вместо программы Runas, поскольку для программы PsExec не требуются права администратора.
Важно! Для работы с удаленными пользователями, командную строчку следует запускать с правами администратора!
Наконец Пример. В качестве примера будем использовать установку sp1 windows7.
Пример 1
Предварительно копируем sp1 на удаленную машину, с помощью xcopy и другим утилит командной строки (можете прочитать подробно нажав xcopy /?)
xcopy C:\64 \\pc-opc-3104\C$ /e /y /i /r /h /c
Далее
psexec \\pc-opc-3104 cmd - запускаем удаленную командную строку
и запускаем установку sp1
windows6.1-KB976932-X64.exe /quiet /nodialog /norestart
Пример 2
Более проще, но не надежно
psexec \\pc-opc-3104 -i -c -f C:\sp\windows6.1-KB976932-X64.exe /quiet /nodialog /forcerestart -accepteula
В этом примере утилита сама все сделает за Вас!). Сама скопирует, сама запустит установку.
Пример 2.2
Похож как и пример2, но установка пройдет на указанных компьютерах (записываем в обчный файл txt)
Пример:sp.txt
pc-opc-2525
pc-adm-1212
и.т.д (Пишите сколько хотите)
Важно! В файле txt на названии компьютеров не нужно ставить \\
и сама команда
psexec.exe @C:\sp.txt -i -c -f C:\sp\windows6.1-KB976932-X64.exe /quiet /nodialog /forcerestart -accepteula
Утилита psexec.exe это отличная, бесплатная утилита для системного администрирования удаленных компьютеров, с помощью которой можно синхронизировать время, удалять и добавлять папки, устанавливать программы и много другое.