Донецкий техникум промышленной автоматики

Автоматизація розгортання Office 2007

Раніше в статті « Налагодження та розгортання Office 2007 »(Опублікованій в Windows IT Pro / RE № 5 за 2007 м) був описаний спосіб розгортання Microsoft Office 2007 з мережевого пункту установки, причому для управління роботою програми Office Setup використовувалися файли настройки установки (.msp) і файли налаштування конфігурації (config.xml). Тепер, коли підготовка установки пакета завершена, саме час перейти до розгортання Office 2007 на персональних комп'ютерах. Коротко перерахуємо деякі звичні методи розгортання, які, на жаль, мало підходять для установки Office 2007, а потім розглянемо обхідні шляхи, які все ж дозволять розгорнути Office 2007 без особливих витрат. Ці прийоми можна використовувати і для розгортання інших програм і конфігурацій - у нас вийде щось на зразок саморобного Systems Center Configuration Manager.

Кращі методи розгортання

Перше, що спадає на думку, коли мова заходить про способи розгортання програмного забезпечення в домені Windows, це застосування групової політики установки програмного забезпечення Group Policy Software Installation (GPSI) для розгортання файлів .msi. І хоча три колишні версії Office можна було розгорнути за допомогою GPSI, виконати нормальне розгортання Office 2007 цим способом не вдасться. Втім, Microsoft пропонує документацію, що описує розгортання Office 2007 за допомогою GPSI (див. Статтю «Use Group Policy Software Installation to deploy the 2007 Office system» на technet2.microsoft.com/Office/enus/library/efd0ee45-9605-42d3-9798-3b698fff3e081033.mspx ).

Незважаючи на це, спираючись на власний досвід багаторазового тестування розгортання Office 2007 з використанням GPSI, я можу стверджувати, що це просто нераціонально, хоча і здійснимо технічно. GPSI використовує файли трансформації .mst для установника .msi, в той час як Microsoft для установки Office використовує програму установки Setup (setup.exe) з файлами .msp для настройки установки. Таким чином, виходить, що GPSI не підтримує безпосередньо необхідну функціональність для налаштування установки пакета Office 2007 на клієнтські комп'ютери. При використанні GPSI потрібно описати всі налаштування в файлі config.xml, але навіть в цьому випадку можна вказати лише частина налаштувань, таких як ключ програмного продукту (product key), мова і встановлювані додатки. Причому спроба налаштування набору встановлюваних додатків за допомогою елемента OptionState файлу config.xml file буде процедурою щонайменше малоприємною. У згаданій вище статті Microsoft розказано, як використовувати OptionState, але, на мій погляд, це заняття для любителів труднощів. Звичайно, можна спробувати розгорнути Office 2007 за допомогою GPSI, але для більшості компаній виявляється, що цей спосіб пропонує лише урізану функціональність, а тому непотрібний.

Другий метод розгортання - використовувати GPSI для розгортання Office 2007 за допомогою файлу .zap. Файл .zap являє собою простий сценарій, що дозволяє викликати будь-яку команду - в даному випадку команду setup.exe для Office з усіма необхідними параметрами. За допомогою GPSI можна розгорнути програмний пакет, використовуючи файл .zap; для цього треба просто вибрати файл .zap замість файлу .msi, коли створюється пакет. Однак файли .zap можна тільки публікувати для користувачів, а не встановлювати, тому Office може з'явитися в списку Add / Remove Programs в розділі Programs and Features в Windows Vista і навіть може асоціюватися з розширеннями документів для установки на запит. Однак публікація Office 2007 означає, що пакет не буде розгорнуто до тих пір, поки користувач не зажадає або не запитав його, причому користувач повинен володіти адміністративними правами для запуску Office Setup, так що для більшості організацій використання файлів .zap для розгортання також неприйнятно.

Третій метод - самий кращий з точки зору Microsoft - за допомогою Microsoft Systems Management Server (SMS) або Microsoft System Center Configuration Manager 2007, наступного покоління SMS. Хоча SMS і System Center Configuration Manager 2007 забезпечують повну функціональність для розгортання Office 2007 і подальшого управління життєвим циклом пакета, а також інших програм і налаштувань, розгортання цих систем управління - захід досить дороге.

вимоги Office

Як відомо, Office 2007 - це досить об'ємний пакет, після установки в стандартній конфігурації він займає більше 1 Гбайт дискового простору. Приблизно стільки місця зажадають встановлені додатки і точка локальної установки (MSOCache). При цьому установка Office 2007 займає досить тривалий час, тому при виборі методу розгортання важливо враховувати інтереси користувачів. Ви ж не хочете, щоб топ-менеджер компанії, включивши свій комп'ютер перед важливою презентацією, був змушений чекати, поки установка Office 2007 завершиться.

Є і ще одне обмеження: установка Office вимагає наявності адміністративних повноважень, так що необхідно вибрати методи розгортання, що дозволяють запустити setup.exe з достатніми правами. На жаль, Microsoft не пропонує зручний і повноцінний спосіб розгортання Office 2007 за допомогою GPSI або сценаріїв реєстрації для користувачів, що володіють мінімальними правами в системі. Надішліть електронною поштою свою думку з цього питання представнику Microsoft - компанія вже зараз розробляє наступну версію Office 14.

У більшості організацій Office встановлюється на комп'ютер, а не закріплюється за окремим користувачем. Нікому не потрібно, щоб додаток Microsoft Visio «слід» за користувачем від комп'ютера до комп'ютера. Набагато зручніше встановлювати додатки Office на обрані комп'ютери, тоді вони будуть доступні будь-якому користувачеві, який реєструється в мережі на даному комп'ютері. Цей підхід також спрощує перевірку ліцензування, оскільки Office ліцензується на кожен комп'ютер.

З урахуванням описаних вимог розглянемо наявні можливості розгортання Office 2007. Пропоновані нижче рішення призначені для використання з клієнтськими комп'ютерами на базі Vista і Windows XP в домені Windows Server 2003.

сценарій

Можна встановити Office 2007, запустивши setup.exe з додатковими параметрами, як описано в уже згадуваній статті «Налагодження та розгортання Office 2007». При запуску setup.exe для розгортання Office 2007 на віддалених комп'ютерах необхідно додатково перевіряти, що установка закінчилася успішно. Тому розробимо сценарій, який не тільки запустить setup.exe для установки Office 2007, але і зареєструє факт успішного завершення установки або поверне код помилки. Цей сценарій також гарантує, що на цільовій системі setup.exe дійсно виконується тільки один раз. У лістингу показана частина цього сценарію, Office2007_Deploy.vbs.

Ось основні елементи даного сценарію.

  • Блок настройки сценарію. Сценарій Office2007_ Deploy.vbs написаний на VBScript, тому його зручно налаштовувати, навіть якщо ви не дуже розбираєтеся в програмуванні. Всі потрібні параметри знаходяться в блоці налаштувань, який містить докладні коментарі про призначення кожного елемента настройки середовища. Я розповім про призначення кожного набору параметрів трохи пізніше.

  • Блок A. Цей сценарій викликає підпрограму ExecuteCommand, яка запускає команду Office Setup, яка визначена змінної sCommand в блоці настройки (наприклад, «windomain.comsoftwareofficesdpsetup.exe»). Програма ExecuteCommand чекає закінчення виконання команди, а потім привласнює повертається значення (exit code) і вміст потоків StdOut і StdErr змінним для реєстрації інформації в журналі. Далі повернене значення інтерпретується для визначення успішності виконання команди, після чого викликається процедура Log_WriteCommandResults, щоб зробити новий запис в реєстраційний журнал.

  • Блок B. В даному блоці сценарій переносить комп'ютер в одну з двох груп, APP_Office 2007 Deploy або ALERT_Office 2007 Deploy, в залежності від того, успішно чи ні завершився виклик setup.exe, і видаляє комп'ютер з групи установки (т. Е. CMM_Office 2007 Deploy). Призначення цих груп я поясню нижче.

Для застосування цього сценарію потрібно зберегти його в папку мережевої установки Office 2007. Я раджу створити папку на тому ж рівні, що і файл setup.exe і папка Updates, під ім'ям CompanyName_Setup. Скопіюйте сценарій в цю папку. Для забезпечення безпеки папка повинна мати доступ тільки на читання (Read) для всіх зареєстрованих користувачів, а правами на зміну (Modify) повинні володіти тільки адміністратори. Оскільки цей сценарій буде виконуватися на комп'ютерах користувачів з адміністративними повноваженнями, має сенс подбати про те, щоб зміни в сценарій не міг вносити хто попало.

Не забудьте помістити файл настройки Office Setup в папку Updates і використовуйте при запуску setup.exe параметр / adminfile, щоб вказати файл настройки Setup. Даний файл настройки повинен забезпечити пакетну установку Office 2007 без взаємодії з користувачем.

Журнал обліку

Пропонований сценарій реєструє успішне або помилкове завершення команди setup.exe після її виконання на кожній системі, для чого ведеться файл журналу обліку. Пропонований сценарій створює журнал в форматі таблиці Microsoft Excel (формат Excel 97-2003 .xls), при бажанні можна внести зміни для реєстрації результатів роботи в базі даних Microsoft Access (.mdb), на сервері Microsoft SQL Server або форматах Office 2007 (.xlsx або .accdb). Для таблиці Excel слід вказати імена стовпців в першому рядку відповідно до мітками, заданими в сценарії (т. Е. ComputerName, Action, Status, Date, Notes). Якщо лист електронної книги Excel буде перейменований з стандартної назви Sheet1, то слід змінити змінну sTable в сценарії. Збережіть сценарій в папці, в якій користувачі з групи Authenticated Users володіють правами читання, виконання і записи, крім того, необхідно налаштувати змінну sFile, щоб вона вказувала на файл журналу.

Групи

Можна використовувати цей журнал для перевірки успішного або помилкового завершення програми setup.exe, але також бажано мати можливість відстежувати комп'ютери, на яких Office повинен бути встановлений, на яких setup.exe завершилася успішно і на яких сталися помилки. Для цього можна скористатися засобами служби каталогів Active Directory (AD). Створіть три глобальні групи безпеки в AD для зберігання статусів комп'ютерів.

  • CCM_Office 2007 Deploy. Ця група буде містити комп'ютери, на які слід встановити Office 2007.

  • APP_Office 2007. Ця група буде включати комп'ютери, на які Office 2007 був успішно встановлений.

  • ALERT_Office 2007 Deploy. Ця група буде використовуватися для того, щоб відзначити комп'ютери, на яких при розміщенні Office 2007 відбулася відмова. Таким чином можна буде легко перевірити, яким системам необхідно приділити увагу.

Використання AD в якості бази даних дозволяє легко відстежувати зміни складу груп. Комп'ютери в групі CCM_Office 2007 Deploy (CCM - Change and Configuration Management) запустять сценарій з описаними нижче методами. У разі успішного виконання сценарію комп'ютер буде перенесений в групу APP_Office 2007. В іншому випадку сценарій відправляє його в групу ALERT_Office 2007 Deploy. В обох випадках комп'ютер буде видалений з групи CCM, тому на кожному окремому комп'ютері сценарій виконається тільки один раз.

Щоб сценарій міг переміщати комп'ютер з однієї групи в іншу, необхідно правильно встановити дозволи для цих груп. Слід надати групам право Self Allow Write Members. Завдяки йому користувач (або комп'ютер) може додати або видалити себе з групи, але не може додати або видалити інших членів. Можна налаштувати цей елемент управління доступом (Access Control Entry, ACE) в діалоговому вікні Security Properties кожної групи або помістити ці групи в організаційну групу (Оrganizational Unit, OU) і делегувати їй дозвіл Allow Self Modify Members ACE.

ACE можна делегувати організаційної одиниці (OU). Для цього потрібно відкрити в консолі управління Microsoft Management Console (MMC) додаток Active Directory Users and Computers і вибрати Advanced Features з меню View. Потім потрібно натиснути правою кнопкою OU, що містить ці три групи, і вибрати Properties. Тепер клацніть по Advanced під вкладкою Security. Клацніть Add і введіть SELF для User or Group. Натискаємо OK. У діалоговому вікні Permission Settings слід клацнути вкладку Property і вибрати Group Objects з меню, що випадає. Тепер потрібно вибрати кнопку-прапорець Allow для властивості Members.

Сценарій при запуску

GPSI не підтримує виконання програми setup.exe для установки Office 2007, тому скористаємося сценарієм запуску групової політики при старті (Startup Group Policy), який може виконувати довільну команду під час завантаження комп'ютера. Сценарії Startup виконуються локально на комп'ютері і з правами локальної системи System identity, що забезпечує достатні привілеї для успішного виконання команди setup.exe.

У статті Microsoft «Use Group Policy to assign computer startup scripts for 2007 Office deployment» ( technet2.microsoft.com/Office/enus/library/a57c8446-b959-4025-a866-b690ddcaa66d1033.mspx ) Про застосування групової політики для визначення сценаріїв початкового завантаження розказано про те, як застосовувати їх для розгортання Office 2007. Хоча стаття добре пояснює поняття і покрокові інструкції для створення і установки сценаріїв початкового завантаження, реальний сценарій справляється із завданням погано. Наш сценарій набагато надійніше.

У разі застосування сценаріїв початкового завантаження для розгортання програмного забезпечення треба пам'ятати два основних факту. По-перше, за замовчуванням обробка цього сценарію не повинна займати більше 10 хвилин, інакше вона буде припинена. Це означає, що необхідно узгодити значення в параметрі групової політики Group Policy Object (GPO) для тайм-ауту сценарію, який розташований в Computer Configuration Administrative TemplatesSystem ScriptsMaximum для сценаріїв групової політики, з максимальним часом (в секундах), необхідним для установки Office. Задайте більш тривалий інтервал виконання сценарію. Як правило, буває достатньо 15-20 хвилин (900-1200 секунд). Раджу ставити більший тайм-аут сценарію в одному і тому ж GPO, який використовується для розгортання Office, тому що тайм-аут сценарію знову прийме значення за замовчуванням або задане значення від інших об'єктів групової політики в разі, якщо об'єкт групової політики більше не застосовується до комп'ютера.

Друге, про що треба пам'ятати при використанні сценаріїв початкового завантаження, - це про вплив на кінцевих користувачів. Сценарії початкового завантаження запускаються при кожному запуску системи - ви ж не хочете, щоб команда setup.exe запускалася при кожній початковій завантаженні комп'ютера клієнта. Команда Setup стане повторно встановлювати Office - логіка програми благополучно виявить існуючу установку, проте для цього потрібен час. Отже, необхідно налаштувати сценарій початкового завантаження так, щоб наявність Office 2007 на оброблюваної системі перевірялося до запуску setup.exe. Якщо Office 2007 вже був встановлений, то сценарій завершить роботу без запуску setup.exe.

Налаштувати сценарій на перевірку наявності Office на системі можна різними способами. Наприклад, можна зчитувати параметр в реєстрі, який показує, чи є Office 2007 в списку встановлених програм. Якщо так, значить, Office 2007 встановлений. Можна також створити в реєстрі власну запис для відстеження нормальної установки Office 2007. Я віддаю перевагу встановлювати прапор в системі управління конфігураціями. Ще можна створити «файл ознак» на жорсткому диску, саме так чинять багато адміністратори. Створюється порожній текстовий файл зі спеціальним ім'ям, наприклад C: OfficeDeployed.txt. За наявністю або відсутністю такого файлу сценарій визначає, чи треба продовжувати виконання. Я віддаю перевагу зміна реєстру, а не перевірку файлу-ознаки, оскільки, по-перше, пошук файлу займає більше часу, а по-друге, файл може бути видалений з диска користувачем.

Нарешті, настав час створити об'єкт групової політики для розгортання Office 2007. Створимо GPO з ім'ям Office 2007 Deploy, який буде містити сценарій початкового завантаження для запуску установки Office 2007. Відредагуйте налаштування політики GPO Startup Script для запуски свого сценарію: ім'я сценарію (Script Name) має бути cscript.exe, причому параметри сценарію (Script Parameters) повинні бути повним шляхом для сценарію в місці установки мережі для Office, як показано на екрані. Не слід використовувати прогалини в повну адресу або імені файлу.

Створивши Office 2007 Deploy GPO зі сценарієм початкового завантаження для установки Office 2007, потрібно задати такий фільтр GPO, щоб він застосовувався тільки до комп'ютерів з групи CCM_Office 2007 Deploy. Не забудьте видалити Authenticated Users з фільтра.

Будь-який комп'ютер, який знаходиться в групі CCM_Office 2007 Deploy, запустить сценарій початкового завантаження і встановить Office 2007. Тепер про конструктивної частини. Оскільки сценарій початкового завантаження включає програму видалення комп'ютера з групи, він буде запускатися тільки один раз на кожному комп'ютері. І тоді, при успішному завершенні установки Office, комп'ютер буде переміщений в групу APP_Office 2007. Можна використовувати цю групу для управління і створення звіту про те, які комп'ютери мають Office 2007. Якщо з якоїсь причини установка Office дала збій, комп'ютер потрапить в групу ALERT_Office 2007 Deploy, де будуть зібрані всі комп'ютери, щодо яких необхідно з'ясувати, чому установка Office не вдалася.

Підведемо підсумки

Ми создали сценарій, подібний SMS або Systems Center Configuration Manager, своїми руками. Цей сценарій виконує розгортання програми, реєструє результати і запобігає повторні спроби установки програмного забезпечення на тих комп'ютерах, де воно вже встановлено. Також ми розглянули, як розгортати сценарій за допомогою сценаріїв початкового завантаження Group Policy. Детальніше про інші методи розгортання Office 2007 розказано в урізанні «Альтернативні методи розгортання Office 2007». Цей підхід може використовуватися для декількох завдань управління систем додатково до розгортання Office 2007.

Альтернативні методи розгортання Office 2007

Я не рекомендую задіяти GPSI для розгортання Office 2007, є інші методи, якими можна користуватися. Я розповів про застосування сценарію Office2007_Deploy.vbs і сценаріїв початкового завантаження групової політики для розгортання Office 2007 в основній статті. Тепер подивимося, як можна розгортати Office 2007, створюючи завдання для запуску за розкладом або використовуючи безкоштовні інструменти PsExec або CPAU.

Тепер подивимося, як можна розгортати Office 2007, створюючи завдання для запуску за розкладом або використовуючи безкоштовні інструменти PsExec або CPAU

заплановане завдання

Можна розгорнути Office Setup, створюючи завдання для запуску за розкладом, яке виконує сценарій Office2007_Deploy.vbs. Це дозволить зробити команда schtasks.exe

schtasks.exe / create / s desktop101 / tn «Deploy Office» / tr «cscript.exe windomain.comsoftwareofficesdpINTELLIEM_SetupOffice 2007_Deploy.vbs» / ru SYSTEM / sc ONCE / ST 12:14 [/ v1]

Зауважимо, що ця команда і деякі інші команди в даній статті займають кілька рядків через брак місця, проте їх треба вводити одним рядком. Команда schtasks.exe створює завдання з ім'ям Deploy Office (ім'я завдання може бути довільним). Завдання виконує cscript.exe, шлях до сценарієм вказано в папці CompanyName _Setup (INTELLIEM_Setup в нашому прикладі). Це завдання запускається один раз з правами системної облікового запису о 12:14 pm Зауважимо, що запуск слід призначити в найбільш підходяще для вашої організації час.

Для Windows Vista запуск завдання за розкладом виконується інакше, ніж на попередніх версіях Windows. Якщо запустити schtasks.exe на системі Vista для виконання сценарію розгортання на системі Windows XP, то треба додати ключ / v1. Зауважимо, що schtasks.exe не можна запустити на системі XP або Windows Server 2003 для створення завдання на віддаленій системі Vista.

Якщо ви готові запустити команду schtasks.exe, скористайтеся утилітою PsExec наступним чином:

psexec desktop101 schtasks.exe / create

За цією командою обліковий запис System запускає сценарій в запланований час, як якщо б ми використовували сценарії початкового завантаження групової політики для запуску сценарію. Виконавши невелику роботу, можна перерахувати членів групи CCM_Office 2007 Deploy і виконати schtasks.exe на цих системах.

PsExec

PsExec є «не підтримує» інструментом Microsoft (раніше належали компанії Sysinternals). Команда PsExec дозволяє виконувати процеси на віддалених системах без установки клієнтського програмного забезпечення. Вона подобається адміністраторам і зручна для розгортання Office 2007. PsExec можна завантажити з вузла PsTools ( http://www.microsoft.com/technet/sysinternals/Utilities/PsTools.mspx ). Для застосування PsExec з метою розгортання Office 2007 треба запустити команду з усіма потрібними параметрами

psexec «Network Installation Point> setup.exe»

Наприклад, можна запустити PsExec з параметром -f, щоб вказати текстовий файл з іменами комп'ютерів на одному рядку. Команда буде запускатися для кожної системи, чиє ім'я є в файлі, який був зазначений параметром -f.

За замовчуванням PsExec завантажується з привілеями користувача, що запускає цю команду. Тому, якщо ви володієте правами адміністратора на віддаленому комп'ютері, PsExec запустить команду Office setup.exe благополучно. Звичайно, якщо віддалена система запущена і підключена до мережі. Можна також застосувати PsExec для виконання сценарію Office2007_Deploy.vbs, запустивши команду

psexec computername cscript -s
«Windomain.comsoftwareofficeINTELLIEM_SetupOffice2007 Deploy.vbs»

Параметр -s виконує сценарій від імені локальної системи, що дозволяє запускати сценарій з достатніми правами і вносити зміни в властивість Members наших груп. Якщо спробувати запустити цей сценарій під своїм обліковим записом, Office встановиться, але зміна в членстві групи не відбудеться, тому що комп'ютер не може «передати» ваші права службі Active Directory (AD).

CPAU

На закінчення розглянемо метод розгортання Office 2007 для користувачів без адміністративних прав за допомогою запуску команди setup.exe з підвищенням рівня доступу. Потрібно зашифрувати адміністративні облікові дані і саму команду. Для цього скористаємося безкоштовною утилітою CPAU, наданої Джо Річардсом (див. Посилання http://wwww.joeware.net/freetools/tools/cpau/index.htm ). Для роботи CPAU виконайте наступні кроки.

Спочатку введіть команду для створення закодованого пакета, схожого на застосовуваний в Runas, який буде виконувати сценарій Office2007_Deploy.vbs:

cpau -u -p -ex «cscript.exe
windomain.comsoftwareofficeINTELLIEM_SetupOffice2007_Deploy.vbs »-enc -file
windomain.comsoftwareofficeINTELLIEM_SetupOffice2007_Deploy_CPAU -lwp

Потім створіть командний файл, який запустить цей пакет, наприклад, з ім'ям Office2007_Deploy.bat, і помістіть в папку INTELLIEM_Setup. Командний файл займає тільки один рядок

«Windomain.comsoftwareofficeINTELLIEM_Setupcpau.exe» -dec -file
«Windomain.comsoftwareofficeINTELLIEM_SetupOffice2007_Deploy_CPAU» -lwp

На закінчення помістіть CPAU.exe туди ж, куди і командний файл. Користувачі можуть тепер двічі клацнути на цьому командному файлі, він розшифрує пакет CPAU і запустить сценарій з певними обліковими даними.

Використовуючи CPAU або подібні команди, можна відправити користувачеві команду по електронній пошті, виконати команду в сценарії реєстрації або помістити цю команду в загальну папку, щоб користувач міг її запустити, двічі клацнувши по ній. Утиліта CPAU розкодує надані облікові дані, які повинні належати облікового запису з групи адміністраторів. Існує одна явна (хоча і малоймовірна) проблема безпеки. Вона полягає в тому, що досвідчений користувач розшифрує облікові дані. Тому раджу створити призначену для користувача обліковий запис TEMP_Office 2007 Deploy, а потім створити об'єкт групової політики, який використовує параметр Restricted Groups для вказівки користувача як члена локальної групи Administrators. Фільтрувати GPO за допомогою групи CCM_Office 2007 Deploy. Це призведе до того, що на всіх системах, на яких повинен бути встановлений Office, в локальну групу Administrators додасться обліковий запис користувача TEMP_Office 2007 Deploy. Використовуйте ім'я користувача і пароль облікового запису в своєму пакеті CPAU. Коли користувач без адміністративних прав запустить сценарій, цей сценарій видалить комп'ютер з групи CCM_Office 2007 Deploy (зауважимо, що обліковий запис користувача TEMP_Office2007 Deploy повинна мати дозвіл Allow Write Members), в результаті чого GPO більше не застосовується. Наступного разу настройки по захисту оновляться (або при наступному повторному старті) і обліковий запис TEMP_Office2007 Deploy буде видалена з локальної групи Administrators. По завершенні розгортання Office 2007 обліковий запис користувача TEMP_Office 2007 Deploy можна заблокувати або видалити.

По завершенні розгортання Office 2007 обліковий запис користувача TEMP_Office 2007 Deploy можна заблокувати або видалити