Обновление Skype через wsus — Централизованная установка приложений в домене AD

Со времен выхода ПО Skype восьмой версии многие столкнулись с проблемой обновления в случае если конечный пользователь не имеет прав на установку приложений в системе. Обновляется он достаточно часто и естественно требует от рядовых пользователей ввод данных Администратора через UAC. Поиск в интернете приводит ко не совсем удобным для админа способам:

  • Повышение прав пользователя до Администратора? Не вариант, это в большинстве случаев приводит к тому, что из решения одной проблемы со Скайп Вы можете нажить себе множество других проблем из-за неграмотности рядового пользователя (а их неграмотных большинство, это статистика)
    !
  • Использование встроенной в Windows команды ‘runas’ не совсем подходит. При ее использовании все равно необходим пароль, а при использовании ключа /savecred Вы делаете огромную дыру в безопасности своей системы!
  • Можно использовать сторонний софт, что то вроде AdmiLink Алексея Курякина, или ExecAs. Как вариант, но не совсем удобно распространять дополнительное ПО если у Вас большое количество рабочих станций в сети!
  • Отключить обновление Скайп. Компания Microsoft известа и тем, что добровольно принудительно заставляет пользоваться свежими версиями ПО и здесь встает вопрос времени, сколько проработает программа неактуальной версии!
  • Компания Microsoft не рекомендует использовать домашнюю версию Скайп в корпоративной среде и мило предлагает перейти на платную версию Скайп для Бизнеса!

Поехали… Имеем установленный Скайп 8 версии, при очередной попытке запуска cтановится понятно, что Скайп закачивает exe-инсталятор в папку, где размещаются данные приложений того пользователя от которого выполнен запуск Скайп: Создаем bat-файл:

echo off  set SKYPE=  :: Поиск 'exe' файла  for /f "tokens=*" %%i in ('where /R %HOMEDRIVE%Users Skype-Setup.exe') do (set SKYPE=%%i)  :: Проверка переменной на "пустоту" (если файл не найден) if "%SKYPE%"=="" goto quit  :: Запуск инсталятора с ключом /silent "%SKYPE%" /silent  :: Удаляем 'exe' файл чтобы избежать циклическую установку одной и той же версии при запуске сценария (сам Скайп его не удаляет после обновления) del "%SKYPE%" /F /Q  :: Завершаем процесс skype.exe от админа, автоматом запускаемый после обновления taskkill /F /IM skype.exe  :quit exit 

Суть проста — сценарий ищет файл Skype-Setup.exe. В случае работы нескольких пользователей в одной системе, мы не знаем в каком профиле лежит инсталятор, поэтому ищем его в папке где хранятся все профили пользователей (справедливо для Windows Vista и выше, для Windows XP путь размещения данных приложений другой). Если Вы знаете конкретного пользователя замените значение переменной SKYPE на «%HOMEDRIVE%UsersAppdataRoamingMicrosoftSkype for DesktopSkype-Setup.exe», я лишь привел обобщенный пример. Записываем результат команды ‘where’ (путь включая имя файла) в переменную SKYPE, запускаем его добавляя ключ /silent для режима «тихой» установки. Запускаем встроенный планировщик заданий от админа и помещаем в расписание выполнение созданного bat-файла следующим образом: В моем случае доменная сеть и несколько сотен рабочих станций, распространение bat и настройку задания в планировщике выполнена с помощью групповых политик в домене. Я настроил триггер на выполнение при запуске компьютера, вполне достаточно. Для удобства можно создать ярлык на рабочем столе пользователя для ручного запуска задания руководствуясь вот этой статьей. Способ актуален для Windows Vista/7, в Windows 10 ПО Skype является универсальным APPX-приложением, для обновления которых прав Администратора не требуется.

Как Вы уже знаете, 1 сентября 2018 года будет прекращена поддержка Skype 7.xx (Skype Classic), в связи с чем всем пользователям мессенджера рекомендуется обновить его до версии 8.xx. Если у Вас несколько компьютеров, разумнее всего обновить Skype вручную, в противном случае имеет смысл автоматизировать развертывание мессенджера на всех необходимых рабочих станциях. Как решить данную задачу в пределах домена Active Directory с учетом того, что официальные MSI-пакеты Skype больше не выпускаются?

Развертывание Skype без MSI-пакетов

Как и в случае Mozilla Thunderbird, Mozilla Firefox и OpenOffice инсталлятор Skype поддерживает режим «тихой» установки, позволяющий организовать установку и обновление мессенджера на множестве компьютеров, работающих под управлением любых операционных систем семейства Microsoft Windows, соответствующих системным требованиям (следует отметить, что вопреки официальной информации, инсталлятор Skype не работает в среде Microsoft Windows XP SP3 со всеми существующими обновлениями, включая Microsoft Internet Explorer 8). Как Вы уже догадались, для автоматизации развертывания мессенджера в пределах домена Active Directory в очередной раз будет достаточно подготовить единственный сценарий «тихой» установки Skype и назначить его сценарием запуска компьютера с помощью любого объекта групповой политики (далее — GPO), действие которого распространяется на соответствующие рабочие станции. С одной стороны, все делается по очень привычному сценарию, с другой — всегда имеются нюансы, которые стоит учитывать.

Общие сведения об инсталляторе Skype

Инсталлятор последней версии мессенджера, представляющий из себя исполняемый файл с именем Skype-НомерВерсии.exe
, всегда доступен для загрузки на соответствующей странице официального сайта. В связи с тем, что мессенджер является 32-разрядным приложением, указанный файл подойдет для установки и обновления Skype на всех компьютерах, не зависимо от разрядности установленных на них операционных систем. Как и во всех подобных ситуациях Вам нужно загрузить и сохранить инсталлятор мессенджера в общей папке, доступной для чтения Всем
на уровне файловой системы NTFS и на уровне общей папки. По умолчанию процедура «тихой» установки Skype обеспечивает инсталляцию мессенджера в папку %ProgramFiles%MicrosoftSkype for Desktop
в среде 32-разрядных операционных систем или %ProgramFiles (x86)%MicrosoftSkype for Desktop
— в среде 64-разрядных, а также последующее добавление соответствующих ярлыков на Рабочий стол
и в меню Пуск
. Для выполнения такого типа установки мессенджера необходимо запустить его инсталлятор с ключами /VERYSILENT и /NORESTART
, первый из которых выключает отображение каких-либо окон, а второй запрещает перезагрузку операционной системы. Если на компьютере установлен Skype версии ≤ 7.41, то процедура «тихой» установки инсталлирует мессенджер версии 8.xx параллельно со старым, при наличии более ранней версии 8.xx — обновит его. В связи с этим перед переходом на Skype 8.xx следует удалить с рабочих станций мессенджер версии ≤ 7.41. Также нужно отметить, что при переходе с классического Skype на версию 8.xx и при последующих обновлениях мессенджера процедура «тихой» установки никак не влияет на настройки пользователей, хранящиеся в папках %APPDATA%Skype
пользовательских профилей.

Сценарий «тихой» установки Skype

Как и в большинстве подобных случаев сценарий «тихой» установки Skype должен проверять, что мессенджер разворачиваемой версии не был установлен ранее, и, если приложение еще не установлено или имеет не совпадающую с разворачиваемой (более старую) версию, запускать процедуру «тихой» установки. В нашем случае для выяснения версии Skype применяется утилита командной строки WMI — wmic (она доступна во всех современных операционных системах семейства Microsoft Windows), выполняющая запрос версии исполняемого файла мессенджера (возьмите на заметку этот способ получения информации о версии файлов, он пригодится Вам для организации «тихой» установки любых приложений, которые не добавляют соответствующие сведения в реестр, например, QIP’а), разрядность операционной системы определяется по значению стандартной переменной окружения PROCESSOR_ARCHITECTURE
, для поиска строки используется команда find
с последующим анализом кода ее завершения ERRORLEVEL
. С учетом всех перечисленных особенностей сценарий «тихой» установки мессенджера InstallSkype.cmd
имеет следующий вид (обязательно учтите, что применение двойных бекслешей в выделенных строках является обязательным
):

 set VERSION=8.27.0.85 if %PROCESSOR_ARCHITECTURE% == x86 (   set FILENAME="C:\Program Files\Microsoft\Skype for Desktop\Skype.exe" ) else (   set FILENAME="C:\Program Files (x86)\Microsoft\Skype for Desktop\Skype.exe" ) wmic datafile where name=%FILENAME% get version | find "%VERSION%" if ERRORLEVEL 1 \local.company.comSHARESPACKAGESSkype-%VERSION%.exe /VERYSILENT /NORESTART 

Как Вы уже поняли, значение переменной окружения VERSION
, заданное в первой строке, должно совпадать с версией инсталлятора мессенджера, используемого в настоящий момент. Например, для установки Skype версии 8.27.0.85
и обновления устаревших мессенджеров до этой версии в соответствующей общей папке должен присутствовать инсталлятор Skype-8.27.0.85.exe
, и переменная окружения VERSION
должна иметь значение 8.27.0.85
. Если Вы пожелаете перейти, например, на мессенджер версии 8.28.76.42
(на момент написания статьи данная версия Skype пребывала в статусе предварительной), придется всего лишь загрузить в соответствующую общую папку инсталлятор Skype-8.28.76.42.exe
и изменить значение переменной окружения VERSION
на 8.28.76.42
. Конечно же, после этого можно спокойно удалить ставший устаревшим инсталлятор Skype-8.27.0.85.exe
, который больше не понадобится.

Массовая «тихая» установка Skype

Последним этапом автоматизации установки и обновления Skype в домене Active Directory является назначение сценария InstallSkype.cmd
сценарием запуска компьютера с помощью любого существующего или созданного исключительно для развертывания мессенджера GPO, действие которого распространяется на все необходимые рабочие станции. Для того чтобы ограничить область действия выбранного GPO компьютерами с операционными системами от Microsoft Windows 7 до Microsoft Windows 8.1 (у нас нет компьютеров с Windows Vista, поэтому я про нее «забыл»), удобнее всего использовать WMI-фильтр с запросом:

 SELECT * FROM Win32_OperatingSystem WHERE (Version LIKE "6.1%" OR Version LIKE "6.2%" OR Version LIKE "6.3%") AND ProductType="1" 

После нацеливания выбранного GPO на нужные рабочие станции следует добавить в его список Конфигурация компьютера Политики Конфигурация Windows Сценарии Автозагрузка
сценарий InstallSkype.cmd
. После окончания распространения групповой политики и перезагрузки соответствующих компьютеров на них будет установлен или обновлен мессенджер Skype, при этом никто, кроме Ваших коллег по IT-отделу, не заметит ничего «подозрительного».

Заключение

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



Как распространить программу при помощи WSUS и Local Update Publisher

Как распространить программу при помощи WSUS и Local Update Publisher

Как распространить программу при помощи WSUS и Local Update Publisher

Всем привет сегодня расскажу как распространить программу при помощи WSUS и Local Update Publisher. Для разворачивания программ в среде Windows обычно используются logon-скрипты, групповые политики или SCCM. Для разворачивания обновлений Microsoft — дополнительно ещё и WSUS. На самом деле WSUS можно использовать и для разворачивания любых приложений, и для сторонних не-microsoft обновлений. Для этого он имеет API, но штатно им пользоваться может только SCUP, который требует для использования лицензию SCCM. Но можно воспользоваться и сторонним средством — Local Update Publisher. О нём и пойдёт речь далее.

Local Update Publisher (LUP) — это распространяемая as is программа, позволяющая системному администратору самому сделать локальную публикацию на своём сервере WSUS. Внешне LUP напоминает консоль управления WSUS и дублирует её функционал по той причине, что консоль WSUS не будет показывать не-microsoft обновления.
Для начала необходимо со страницы загрузки скачать дистрибутив Local Update Publisher.msi
. Его необходимо установить на машине, на которой установлен WSUS SP2+ или хотя бы его консоль управления. После установки, надо запустить LUP от имени пользователя, входящего в группу Администраторы WSUS. При первом подключении появится диалог выбора сервера:

Как распространить программу при помощи WSUS и Local Update Publisher-01

Вводим имя и хостнейм, подключаемся по SSL, если у нас SSL настроен для WSUS’а, иначе без него. В первую очередь необходимо создать самоподписанный сертификат в меню Инструменты -> Информация о сертификате
.

Как распространить программу при помощи WSUS и Local Update Publisher-02

Тут, к сожалению, есть особенность, что данный сертификат нельзя потом заменить. Сертификат будет использоваться для подписывания всех опубликованных обновлений, а потому его необходимо распространить на все компьютеры, включая сам сервер WSUS. Для этого надо его экспортировать через Инструменты -> Информация о сертификате -> Экспорт
.

Как распространить программу при помощи WSUS и Local Update Publisher-03

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

Как распространить программу при помощи WSUS и Local Update Publisher-04

Также, необходимо в групповой политике, указывающей клиентам на WSUS-сервер, выставить в Конфигурация компьютера -> Политики -> Административные шаблоны -> Центр обновлений Windows
параметр Разрешить прием обновлений с подписью из службы обновления Майкрософт в интрасети
в Включено
.

Когда сертификат распространился, приступим непосредственно к созданию пакета обновления. Для примера будем распространять сам LUP. Выбираем в меню Инструменты -> Создать обновление
. В появившемся окне нажимаем на обзор и выбираем Local Update Publisher.msi
.

Как распространить программу при помощи WSUS и Local Update Publisher-05

На следующем шаге выбираем тип обновления — Application, пишем название пакета и описание. Обязательно записываем вендора и название продукта, новые версии продукта будут складываться туда же. Остальное опционально. Тут же можно задать зависимости от других пакетов (нам это не нужно в данном случае) и какие пакеты это обновление заменяет (понадобится при разворачивании новой версии).

Как распространить программу при помощи WSUS и Local Update Publisher-06

На следующем шаге надо задать правила, по которым будет понятно, что пакет уже установился и больше его ставить не надо. Для MSI-пакетов LUP всегда создаёт правило, основанное на версии установленного MSI-пакета. В данном случае этого достаточно.

Как распространить программу при помощи WSUS и Local Update Publisher-07

На этом шаге необходимо задать правила, по которым будет понятно, необходим ли данный неустановленный пакет, можно ли его вообще установить на данной системе. Для MSI-пакетов LUP всегда создаёт правило с отрицанием, основанное на версии установленного MSI-пакета. Т.е. установить можно, если не было уже установлено. Нам этого достаточно.

Как распространить программу при помощи WSUS и Local Update Publisher-08

На следующих шагах позволяется вручную отредактировать различные xml-файлы, но это не требуется и можно жать «далее» до самого конца и получения окошка с сообщением, что пакет удалось создать. В дереве пакетов должен появиться вендор и продукт, заданные в пакете. Если нажать на продукт, то будет видно созданный пакет. Т.к. созданные пакеты не отображаются в обычной консоли управления WSUS, то их нужно одобрить в LUP. Для этого надо жмакнуть правой кнопкой на пакете и выбрать «Одобрить».

Как распространить программу при помощи WSUS и Local Update Publisher-09

В появившемся окне видны группы компьютеров WSUS. Одобрим пакет для опциональной установки для тестовой группы компьютеров.

Как распространить программу при помощи WSUS и Local Update Publisher-10

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

Как распространить программу при помощи WSUS и Local Update Publisher-11

Если клиентский компьютер был только что перемещен в эту группу, то он может долго кешировать принадлежность к группам и не находить обновлений. Форсировать можно при помощи команды wuauclt /resetauthorization /detectnow
на клиенте.

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

Вот и всё. Теперь в вашем распоряжении мощный инструмент, который часто уместнее разворачивания программ традиционными способами вроде групповых политик. Кстати, не только разворачивания, но и удаления 😉

Вот так вот просто распространить программу при помощи WSUS и Local Update Publisher.

Материал сайта pyatilistnik.org

Апр 29, 2015 17:27

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации