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

Страница создана Владимир Данилов
 
ПРОДОЛЖИТЬ ЧТЕНИЕ
Windows Server 2008 и совместимость приложений
Windows Server 2008 и совместимость
           приложений
Windows Server 2008 и совместимость приложений
Операционные системы 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

                                                 2
Windows Server 2008 и совместимость приложений
5. Вернитесь на шаг 2. Если вы не смогли установить приложение, перейдите к шагу 9.
   6. Приложение должно быть установлено одним из описанных выше способов
   7. Запустите приложение. Если приложение не запустилось как ожидалось или вы
      получили сообщения об ошибках, установите режим совместимости с Windows XP
      SP2 для исполняемого файла приложения и запустите приложение еще раз
   8. Если приложение запустилось успешно, выполните полный набор тестов, которые вы
      обычно используете для тестирования приложения под Windows XP. Убедитесь в
      том, что приложение работает нормально и вся его функциональность доступна.
      Перейдите к шагу 10
   9. Если приложение не удалось установить, успешно запустить, вы получили ошибки
      или сбои в процессе работы приложения, вам не удалось                  выполнить
      функциональные тесты, то обратитесь к рекомендациям, приведенным в данном
      обзоре
   10. На этом тест на совместимость завершен

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

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

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

                                           3
несовместимостей, которые могут вызвать проблемы при запуске приложений как под
управлением клиентской операционной системы Windows Vista, так и серверной
операционной системы Windows Server 2008.

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

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

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

User Account Control (UAC)

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

                                            4
глобальные настройки и влиять на поведение системы. Такая функциональность в Windows
Vista и Windows Server 2008 называется User Account Control (UAC).

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

        User Account Control in Windows Vista
               o    http://go.microsoft.com/fwlink/?LinkId=62664
        Getting Started with User Account Control
               o    http://go.microsoft.com/fwlink/?LinkId=62669
        Developer Best Practices and Guidelines for Applications in a Least Privileged
         Environment
               o    http://msdn2.microsoft.com/en-us/library/aa480150.aspx
        UACBlog
               o    http://go.microsoft.com/fwlink/?LinkId=62676

Windows Resource Protection (WRP)

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

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

   1. Из кода, используя функцию SfcIsFileProtected()
   2. В Explorer проверить свойства файла

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

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

   3. Из кода, используя функцию SfcIsKeyProtected()
   4. В Registry Editor проверить свойства файла

            o   Нажать правую кнопку мыши на интересующем нас элементе реестра и
                выбрать Properties.
            o   Элемент, который защищен механизмом 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() возвращается именно этот номер. В

                                              6
следующей таблице показаны номера версий ключевых операционных систем семейства
Windows.

ОС                 Windows       Windows XP         Windows         Windows          Windows
                     2000                          Server 2003        Vista        Server 2008
Версия                5.0             5.1              5.2             6.0              6.0

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

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

                                      Рис. Version Lie Shim

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

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

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

                                               7
нарушению безопасности, так как сервисы выполняются с повышенными привилегиями и,
таким образом, являются потенциальными жертвами для вредоносного кода.

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

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

                                          8
Рис. Сессии в 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
            o   http://go.microsoft.com/fwlink/?LinkId=62691

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

 К несовместимостям, уникальным для серверной операционной системы Windows Server
2008, относятся: изменения в Active Directory, новые или измененные серверные роли,

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

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

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

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

      Единая архитектура и программная модель
      Администрирование контроллеров доменов
      Сервисы каталогов
      Управление правами
      Федерация сервисов
      Интеграция сервисов мета-каталогов (ILM)
      Доменные контроллеры только для чтения (Read-Only Domain Controllers)

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

                                            10
Старое название                             Новое название
Active Directory Domain Controller          Active Directory Domain Services
Active Directory App mode                   Active Directory Lightweight Directory Services
Windows Rights Management Services          Active Directory Rights Management Services
Windows Certificate Services                Active Directory Certificate services
Identity integration feature pack           Active Directory Metadirectory Services

 Новый компонент Windows Server 2008 – доменный контроллер с возможностью только
операций "чтение" (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.

 Дополнительная информация:
        Подробное описание возможных несовместимостей

                                          11
o   http://technet2.microsoft.com/windowsserver2008/en/library/ea8d253e-
               0646-490c-93d3-b78c5e1d9db71033.mspx?mfr=true
       Windows Server 2008 Active Directory
           o   http://www.microsoft.com/technet/technetmag/issues/2006/11/FutureOfWi
               ndows/default.aspx

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

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

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

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

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

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

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

      Руководство по Windows Server 2008
          o   http://www.microsoft.com/windowsserver/longhorn/prodguide.mspx
      Installing and Managing Roles

                                            13
o    http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032294712&Cu
                lture=en-US

Server Core

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

      DHCP
      DNS
      Active Directory Domain Controller (включая RODC)
      Active Directory LDS (ранее - ADAM)
      File Server, включая:
           o    DFSR (ранее - FRS)
           o    NFS
           o    File quota
      Print Server
      Media Services
      Windows Virtualization
      IIS 7.0 (без поддержки ASP.NET и удаленного администрирования)

 и не поддерживает установку приложений – 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

                                               14
       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.

 Дополнительная информация:
           Windows Server 2008 Server Core
                o   http://msdn2.microsoft.com/en-us/library/ms723891.aspx
           Список DLL, включенных в состав Server Core
                o   http://msdn2.microsoft.com/en-us/library/ms723876.aspx

Failover Clustering

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

                                                    15
масштабируемости и управляемости. К новым возможностям кластерных технологий можно
отнести:

    Интегрированные средства проверки конфигурации
    Упрощенная установка кластера
    Упрощенное управление кластерами
    Расширения модель 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.

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

          Cluster Automation Server
               o   http://msdn2.microsoft.com/en-us/library/aa369077.aspx
          Failover Clustering in Windows Server 2008
               o   http://www.microsoft.com/windowsserver/longhorn/failover-clusters.mspx
          Server Cluster Provider
               o   http://msdn2.microsoft.com/en-us/library/aa372876.aspx
          Volume Shadow Services
               o   http://msdn2.microsoft.com/en-us/library/aa384961.aspx

Windows Firewall

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

                                                16
решения возможных проблем можно отключить Windows Firewall, но это рекомендуется
делать только в тех случаях, когда на компьютере установлен сетевой экран       другого
производителя.

                            Рис. Windows Firewall в Server Manager

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

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

        INetFwPolicy2
            o    http://msdn2.microsoft.com/en-us/library/aa365309.aspx
        Unattended Installation Settings Reference

                                              17
o   http://technet2.microsoft.com/WindowsVista/en/library/69eee519-55a6-
                440d-ab94-56330ef57e291033.mspx

Заключение

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

                                           18
Вы также можете почитать