Windows Server 2008 — новая серверная операционная система

Часть 7. Windows Server 2008 и совместимость приложений

Алексей Федоров

Несовместимости, характерные для Windows Vista и Windows Server 2008

User Account Control (UAC)

Windows Resource Protection (WRP)

Mandatory Integrity Control (MIC)

Изменение номера версии операционной системы

Изоляция сессии 0

Несовместимости, уникальные для Windows Server 2008

Изменения в Active Directory

Новые или измененные серверные роли

Server Core

Failover Clustering

Windows Firewall

Заключение

 

Операционные системы Windows Vista и Windows Server 2008 представляют собой дальнейшее развитие семейства операционных систем компании Microsoft, содержат набор новых технологий и служат платформой для создания широкого спектра прикладных решений. Для повышения безопасности и улучшения механизмов взаимодействия с пользователями в Windows Vista и Windows Server 2008 включен ряд новинок, а также расширений и улучшений существующих компонентов. В большинстве случаев Windows Vista и Windows Server 2008 обеспечивают высокий уровень совместимости с приложениями, написанными для операционных систем Microsoft Windows XP и Microsoft Windows Server 2003 с соответствующими пакетами обновлений, но, тем не менее, некоторые новые и измененные компоненты операционной системы могут вызвать определенные проблемы при запуске и работе приложений. В данном обзоре мы обсудим наиболее часто возникающие проблемы с совместимостью существующих приложений с Windows Vista и Windows Server 2008.

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

1. На тестовом компьютере установите Windows Vista или Windows Server 2008.

2. Установите приложение. Если будет показан запрос на подтверждение установки, выберите опцию Permit и установите приложение. Если приложение установилось успешно, перейдите к шагу 6.

3. Если приложение не удалось установить и запрос на подтверждение установки не появился на экране, нажмите правую кнопку мыши на исполняемом файле инсталлятора, выберите опцию Run this program as administrator и повторите попытку установки приложения. Если приложение установилось успешно, перейдите к шагу 6.

Примечание. Этот шаг исключается, если приложение использует MSI-инсталлятор.

4. Если в процессе установки приложения отображались сообщения об ошибках, связанных, например, с версией операционной системы, регистрацией CLSID или копированием файлов, нажмите правую кнопку мыши на исполняемом файле инсталлятора, выберите опцию Properties, затем вкладку Compatibility и установите режим совместимости с Windows XP SP2.

5. Вернитесь на шаг 2. Если вы не смогли установить приложение, перейдите к шагу 9.

6. Приложение должно быть установлено одним из описанных выше способов.

7. Запустите приложение. Если приложение не запустилось, как ожидалось, или вы получили сообщения об ошибках, установите режим совместимости с Windows XP SP2 для исполняемого файла приложения и запустите приложение еще раз.

8. Если приложение запустилось успешно, выполните полный набор тестов, которые вы обычно используете для тестирования приложения под Windows XP. Убедитесь в том, что приложение работает нормально и вся его функциональность доступна. Перейдите к шагу 10.

9. Если приложение не удалось установить или успешно запустить, либо вы получили ошибки или сбои в процессе работы приложения, либо вам не удалось выполнить функциональные тесты, то ознакомьтесь с рекомендациями, приведенными в данном обзоре.

10. На этом тест на совместимость завершен.

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

 

Рис. 1. Возможные категории несовместимостей

Рис. 1. Возможные категории несовместимостей

 

В свою очередь, показанные выше категории несовместимостей можно разделить на две части: те, что характерны для Windows Vista и Windows Server 2008, и те, что свойственны исключительно Windows Server 2008. Начнем с группы несовместимостей, которые могут вызвать проблемы при запуске приложений как под управлением клиентской операционной системы Windows Vista, так и серверной операционной системы Windows Server 2008.

В начало В начало

Несовместимости, характерные для Windows Vista и Windows Server 2008

Несовместимости, входящие в данную группу, в первую очередь связаны с новыми технологиями, реализованными в клиентской и серверной версиях операционной системы Windows. К ним относятся User Account Control (UAC), Windows Resource Protection (WRP), Mandatory Integrity Control (MIC), изменение номера версии операционной системы и изоляция сессии 0 (рис. 2).

 

Рис. 2. Несовместимости, характерные для Windows Vista и Windows Server 2008

Рис. 2. Несовместимости, характерные для Windows Vista и Windows Server 2008

В начало В начало

User Account Control (UAC)

Принципиальный шаг в направлении повышения безопасности операционных систем семейства Windows — это предоставление пользователям возможности работать под учетной записью standard user, что дает им доступ к ограниченному набору разрешений и привилегий. По умолчанию в Windows Vista и Windows Server 2008 все приложения выполняются под учетной записью standard user — даже в тех случаях, когда пользователь является членом группы администраторов. При попытке запуска приложения, требующего привилегий администратора, система запрашивает подтверждение. Только приложения, выполняемые с административными привилегиями, могут модифицировать системные и глобальные настройки и влиять на поведение системы. Такая функциональность в Windows Vista и Windows Server 2008 называется User Account Control (UAC).

Дополнительная информация:

В начало В начало

Windows Resource Protection (WRP)

Для увеличения стабильности системы, ее надежности и предсказуемости поведения механизм Windows Resource Protection (WRP) защищает систему Windows, поддерживая ее в режиме «только чтение». Эта функциональность распространяется на файлы ядра операционной системы, папки и ключи реестра. Обновление системных ресурсов возможно только приложениями, которые известны операционной системе (OS trusted installers), такими, например, как Windows Servicing. Подобная защита позволяет максимально оградить компоненты и приложения, входящие в состав операционной системы, от возможных воздействий со стороны других приложений и администраторов.

Для того чтобы определить, защищен ли файл механизмом Windows Resource Protection, можно выполнить следующие действия:

11. Из кода, используя функцию SfcIsFileProtected().

12. В Explorer проверить свойства файла:

  • открыть папку, в которой находится файл, свойства которого нас интересуют;
  • нажать правую кнопку мыши на интересующем нас файле и выбрать Properties;
  • файл, который защищен механизмом WRP, покажет, что режим Full Control доступен только для учетной записи Trusted Installer. Для учетных записей SYSTEM, Administrators и Users доступен только режим Read.

Для того чтобы определить, защищен ли элемент реестра механизмом Windows Resource Protection, можно выполнить следующие действия:

13. Из кода, используя функцию SfcIsKeyProtected()

14. В Registry Editor проверить свойства файла:

  • нажать правую кнопку мыши на интересующем нас элементе реестра и выбрать Properties;
  • элемент, который защищен механизмом WRP, покажет, что режим Full Control доступен только для учетной записи Trusted Installer. Для учетных записей SYSTEM, Administrators и Users доступен только режим Read.
В начало В начало

Mandatory Integrity Control (MIC)

В качестве дополнительного уровня защиты от вредоносного программного обеспечения в Windows Vista и Windows Server 2008 предусмотрено, что различные приложения могут работать под одним из трех уровней привилегий (High, Medium и Low). Приложения могут взаимодействовать с другими приложениями, которые выполняются с тем же или более низким уровнем привилегий, но не могут взаимодействовать с приложениями, выполняющимися с более высоким уровнем привилегий. В большинстве случаев приложения выполняются с уровнем привилегий Medium, а приложения, требующие наличия прав администратора, — с более высокими привилегиями. Процессы с ограниченными возможностями, например код внутри Internet Explorer, выполняются с минимальными привилегиями.

Таким образом, приложения, выполняющиеся с низким уровнем привилегий, не могут посылать сообщения приложениям, для которых предусмотрен более высокий уровень привилегий, за исключением тех случаев, когда последние непосредственно не разрешили получение сообщений с помощью функции ChangeWindowMessageFilter(). Точно так же приложения с низкими привилегиями не могут модифицировать ссылки типа HWND, владельцами которых являются приложения с более высокими привилегиями. Для обеспечения совместимости функция SendMessage() и ряд других функций для отсылки сообщений возвращают код успешного завершения, даже если выполнение подобных функций заблокировано из-за описанных выше проблем с уровнями привилегий.

В начало В начало

Изменение номера версии операционной системы

Внутренний номер версии в операционных системах Windows Vista и Windows Server 2008 равен 6. При вызове функции GetVersion() возвращается именно этот номер. В табл. 1 показаны номера версий ключевых операционных систем семейства Windows.

 

Таблица 1. Номера версий ключевых ОС семейства Windows

Таблица 1. Номера версий ключевых ОС семейства Windows

 

Для корректной проверки номера версии следует изменить код, чтобы выполнялась проверка >=6, и проверять не только версию операционной системы, но и ее издание, поскольку может оказаться, что требуемая для работы приложения функциональность отсутствует в данном издании операционной системы.

Для обеспечения совместимости приложений с новым номером версии без их переделки следует использовать Version Lie Shim Properties => Compatibility => Compatibility Mode (рис. 3).

 

Рис. 3. Version Lie Shim

Рис. 3. Version Lie Shim

 

В состав Windows Vista и Windows Server 2008 входит 7-я версия браузера Internet Explorer. Эта версия включена в строку User Agent, которая входит в заголовок каждого HTTP-запроса.

В начало В начало

Изоляция сессии 0

В Windows XP, Windows Server 2003 и более ранних версиях операционной системы Windows все сервисы выполнялись в одной сессии — в той, которая создавалась для первого пользователя, подключившегося к консоли. Эта сессия называется Session 0. Выполнение сервисов и пользовательских приложений в одной сессии может приводить к нарушению безопасности, так как сервисы выполняются с повышенными привилегиями, а следовательно, являются потенциальными жертвами для вредоносного кода (рис. 4).

 

Рис. 4. Потенциальные возможности для атаки в Windows XP

Рис. 4. Потенциальные возможности для атаки в Windows XP

 

В операционных системах Microsoft Windows Vista и Windows Server 2008 описанные выше возможности для атак со стороны вредоносного кода сведены к минимуму за счет того, что сервисы изолированы в сессии 0 и, таким образом, сессия, в которой выполняются сервисы, не является интерактивной. В Windows Vista и Windows Server 2008 только системные процессы и сервисы выполняются в сессии 0. Первый пользователь, который подключается к консоли, загружается в сессию 1, следующие пользователи — в сессии с увеличивающимися номерами. Это означает, что сервисы никогда не выполняются в той же сессии, что и пользовательские приложения, а следовательно, защищены от атак со стороны прикладного кода (рис. 5).

 

Рис. 5. Сессии в Windows Vista и Windows Server 2008

Рис. 5. Сессии в Windows Vista и Windows Server 2008

 

Можно привести несколько примеров возможных несовместимостей. Например, в ряде случаев могут возникнуть проблемы с драйверами принтеров, которые загружаются сервисами спулера (spooler service), а также с драйверами, созданными с помощью User Mode Driver Framework (UMDF), поскольку такие драйверы располагаются в сессии 0. Помимо этого могут возникнуть проблемы с сервисами, которые создают интерфейсные элементы, и сервисами, которые пытаются использовать функции SendMessage() и PostMessage() для взаимодействия с приложениями, а также с приложениями, создающими объекты с глобальными именами.

Дополнительная информация Impact of Session 0 Isolation on Services and Drivers in Windows Vista — http://go.microsoft.com/fwlink/?LinkId=62691.

В начало В начало

Несовместимости, уникальные для Windows Server 2008

К несовместимостям, уникальным для серверной операционной системы Windows Server 2008, относятся следующие: изменения в Active Directory, новые или измененные серверные роли, компоненты системы (ряд стандартных приложений доступен в Desktop Experience Pack), отсутствуют файлы DirectX/Media, требуется установка .NET Framework 3.0 и ряд других несущественных изменений, которые в ряде случаев могут вызывать проблемы с функционированием некоторых приложений), новый тип установки операционной системы — Server Core, изменения в технологиях обеспечения отказоустойчивых кластеров (Failover Clustering) и новая функциональность в Windows Firewall (рис. 6).

 

Рис. 6. Несовместимости, уникальные для Windows Server 2008

Рис. 6. Несовместимости, уникальные для Windows Server 2008

В начало В начало

Изменения в Active Directory

В Windows Server 2008 Active Directory поддерживает унифицированную модель, которая может быть расширена разработчиками системных и прикладных решений. Эта модель предоставляет такие возможности, как:

  • единая архитектура и программная модель;
  • администрирование контроллеров доменов;
  • сервисы каталогов;
  • управление правами;
  • федерация сервисов;
  • интеграция сервисов мета-каталогов (ILM);
  • доменные контроллеры только для чтения (Read-Only Domain Controllers).

Для обеспечения унификации в наименованиях компонентов Windows, относящихся к Active Directory, были внесены некоторые изменения в названия отдельных компонентов (табл. 2).

 

Таблица 2. Изменения в названиях некоторых компонентов

Таблица 2. Изменения в названиях некоторых компонентов

 

Новый компонент Windows Server 2008 — доменный контроллер с возможностью только операций «чтение» (Read Only Domain Controller, RODC) — обеспечивает повышенную безопасность: пароли пользователей и компьютеров не реплицируются и не хранятся в таких доменных контроллерах, но поддерживается так называемое выборочное разрешение кэширования паролей. Помимо этого поддерживается однонаправленная репликация для AD и SYSVOL — используется атрибут Read Only Partial для отказа от репликации данных, что требует дополнительной ручной настройки. Среди дополнительных характеристик доменных контроллеров с возможностью только операций чтения отметим поддержку разделения ключей Kerberos (каждый RODC имеет свою учетную запись KDC Krbtgt), ограниченные права записи в каталог (для учетных записей Workstation, не членов группы enterprise domain controller и не членов группы domain domain controller), упрощенность системы за счет поддержки однонаправленных репликаций, упрощенную настройку, учитывая тот факт, что большинство настроек включено по умолчанию. Кроме того, отметим, что администратор RODC может не быть администратором домена — это предотвращает случайные модификации домена администраторами компьютеров. Отметим также поддержку возможности делегирования установки и восстановления RODC.

Примечательно, что RODC работает в существующей инфраструктуре — в большинстве случаев не требуется изменений для DC или клиентов. Для поддержки RODC требуется наличие режима Windows Server 2003 Forest Functional Mode или PDC FSMO на Windows Server 2008, а кроме того, рекомендуется использовать несколько WS2K8 DC на один домен.

Тем не менее в ряде сценариев мы можем столкнуться с некоторыми проблемами, которые проявляются в том, что попытка записи в RODC либо вызывает ошибку при вызовах RPC и LDAP, либо приводит к долгим задержкам, появляющимся из-за ссылок на контроллер с возможностью записи. Для того чтобы избавиться от таких проблем, рекомендуется изменить дизайн топологии таким образом, чтобы функции записи не обращались к RODC.

Дополнительная информация:

В начало В начало

Новые или измененные серверные роли

Операционная система Windows Server 2008 является полностью компонентизированной. Серверные роли в Windows Server 2008 целиком гранулированы и по умолчанию неактивны. Серверные роли, которые были в предыдущих версиях Windows Server, имеют некоторые отличия, по сравнению с ролями Windows Server 2008. Таким образом, есть небольшая вероятность, что программы установки и приложения перестанут работать, поскольку ожидаемые функции реализованы в новых или измененных ролях (рис. 7).

 

Рис. 7. Серверные роли в Windows Server 2008

Рис. 7. Серверные роли в Windows Server 2008

 

Например, роли, представляющие наибольший интерес для компаний-разработчиков, — Web Server и Application Server — были одной ролью в Windows Server 2003, а в новой версии сервера разделены на две (см. рис. 7).

Для обнаружения и исправления возможных несоответствий и несовместимостей рекомендуется после миграции на новую операционную систему удалить и переустановить приложения, а также определить зависимости приложений от ролей и функций и включить соответствующие компоненты перед установкой приложения — это можно сделать либо средствами Server Manager, либо в пакетном режиме, используя, например, возможности, предоставляемые Windows PowerShell (рис. 8).

 

Рис. 8. Ролевые сервисы в Windows Server 2008

Рис. 8. Ролевые сервисы в Windows Server 2008

 

Дополнительная информация:

В начало В начало

Server Core

В Windows Server 2008 предусмотрен новый тип установки операционной системы, называемый Server Core. Это минимальная версия операционной системы Windows Server 2008, обеспечивающая серверную среду с минимальными требованиями по сопровождению и ограниченной функциональностью. Server Core предполагает реализацию ограниченного набора базовых ролей:

  • DHCP;
  • DNS;
  • Active Directory Domain Controller (включая RODC);
  • Active Directory LDS (ранее — ADAM);
  • File Server, включая:

- DFSR (ранее — FRS),

- NFS,

- File quota;

  • Print Server;
  • Media Services;
  • Windows Virtualization;
  • IIS 7.0 (без поддержки ASP .NET и удаленного администрирования).

Server Core не поддерживает установку приложений — MSI поддерживается только в пакетном режиме. Кроме того, не поддерживается функциональность на уровне Microsoft .NET (из-за этого, например, в роли Web Server отсутствует поддержка ASP .NET), но разработчики могут создавать утилиты для управления сервером, дополнительные утилиты и сервисы, но только с помощью Native Windows API.

В Server Core поддерживается следующая функциональность:

  • WINS;
  • Failover Clustering;
  • Subsystem for UNIX-based applications;
  • Backup;
  • Multipath IO;
  • Removable Storage Management;
  • Bitlocker Drive Encryption;
  • SNMP;
  • Telnet Client;
  • (S)NTP.

Для удаленного управления Server Core можно использовать:

  • Terminal Server;
  • MMC для поддерживаемых компонентов и серверных ролей, например Event Viewer и DNS;
  • WS-Management, используя ShellExecute.

Определить наличие Server Core из командной строки можно такой командой:

C:\>WMIC path win32_operatingsystem get OperatingSystemSKU

которая вернет одно из следующих значений:

  • 12 для Datacenter Server Core Edition;
  • 13 для Standard Server Core Edition;
  • 14 для Enterprise Server Core Edition.

Server Core входит в издания Standard, Enterprise и Datacenter и поддерживается на платформах x86 и x64.

Дополнительная информация:

В начало В начало

Failover Clustering

В Windows Server 2008 поддержка отказоустойчивых кластеров претерпела ряд принципиальных изменений, что привело к появлению нового набора программных интерфейсов (CreateCluster(), DestroyCluster(), AddClusterNode(), EvictClusterNode(), SetClusterQuorumResource(), SetClusterResource DependencyExpression() и ряд других), улучшениям функциональности, масштабируемости и управляемости. К новым возможностям кластерных технологий можно отнести следующие:

  • интегрированные средства проверки конфигурации;
  • упрощенная установка кластера;
  • упрощенное управление кластерами;
  • расширения модель Quorum;
  • поддержка Storage Area Networks;
  • расширения в сетевой поддержке;
  • расширения для Stretched Cluster;
  • средства миграции кластеров;
  • поддержка Server Core.

Основные изменения, которые могут привести к несовместимости приложений, связаны с применением «старых» программных интерфейсов на базе Cluster Automation Server (MSClus) — они включены в состав Windows Server 2008, но поддерживаться не будут и должны использоваться только в сценариях, когда задействована лишь одна платформа: Windows Server 2003 -> Windows Server 2003 или Windows Server 2008 -> Windows Server 2008. Приложения, применяющие MSClus, должны использовать Cluster API или провайдер Cluster WMI.

Дополнительная информация:

В начало В начало

Windows Firewall

В Windows Server 2008 опция Windows Firewall по умолчанию находится во включенном состоянии . Это означает, что для ряда приложений должны быть открыты используемые ими порты — в противном случае приложения не смогут работать. В качестве временного решения возможных проблем можно отключить Windows Firewall, но это рекомендуется делать только в тех случаях, когда на компьютере установлен сетевой экран другого производителя (рис. 9).

 

Рис. 9. Windows Firewall в Server Manager

Рис. 9. Windows Firewall в Server Manager

 

Типичные симптомы несовместимости с включенным Windows Firewall: приложения перестают работать и в системном журнале появляются события аудита безопасности, указывающие на то, что приложение было заблокировано. Как мы уже отметили, для обеспечения функционирования приложений необходимо открыть соответствующие порты. Администраторы могут использовать контекст ‘netsh advfirewall’ для работы с правилами firewall из скриптов и шаблоны мастера Security Configuration для конфигурации серверов. Разработчики могут применять программные интерфейсы INetFwPolicy2 (Firewall APIs) для интеграции инсталляторов с Windows Firewall и Advanced Security.

Дополнительная информация:

В начало В начало

Заключение

В данном обзоре мы ознакомились с наиболее часто встречающимися проблемами совместимости существующих приложений с Windows Vista и Windows Server 2008. Следование приведенным рекомендациям поможет вам избежать многих потенциальных проблем.

В начало В начало

КомпьютерПресс 12'2007


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует