Настройка DCOM для удаленного доступа

Прежде чем получить доступ к Вашему WMI-хосту или OPC-серверу, запущенному на ПК с Microsoft Windows, следует убедиться, что распределённая объектная модель компонентов (Distributed COM (DCOM)) настроена должным образом на данном ПК. Следуйте контрольному перечню этапов, чтобы правильно выполнить настройку.

1. Запуск необходимых сервисов

Пожалуйста, убедитесь, что сервисы Server и RemoteRegistry запущены на ПК с COM-сервером.

2. Настройка прав доступа

Чтобы избежать ошибочной ситуации, когда Доступ отклонён, лучше подключиться к COM-серверу под идентификатором зарегистрированного в настоящий момент пользователя. Если разрешение прав доступа уровня "администратора" получить сложно, можно создать локального пользователя в группе "Пользователи".

2a. Настройка доступа к DCOM

Перейдите в Панель Управления (Control Panel)> Администрирование (Administrative Tools) > Локальная политика безопасности (Local Security Policy) > Настройки безопасности (Security Settings) > Локальная политика ( Local Policies) > Опции безопасности (Security Options):

  • Дважды щёлкните мышью по DCOM: Политика ограничения прав доступа к ПК (Machine Access Restrictions policy), кликните Редактировать безопасность (click Edit Security), добавьте пользователя, созданного ранее, (или авторизовавшегося в настоящий момент пользователя), разрешите "Удаленный доступ".
  • Дважды щёлкните мышью по DCOM: Политика ограничений для запуска ПК (Machine Launch Restrictions policy), щёлкните Редактировать безопасность (Edit Security), добавьте пользователя, созданного ранее, (или авторизовавшегося в настоящий момент пользователя), разрешите "Локальный запуск", "Удаленный запуск", "Локальная активация, "Удалённая активация".
  • Дважды щёлкните по элементу Доступ по сети (Network access): Модель защиты и совместного пользования для политики локальных учетных записей  (Sharing and security model for local accounts policy), выберите элемент Классическая модель (Classic) - пользователь авторизуется под своим именем.

2B. Настройка безопасности COM

Перейдите в панель управления (Control Panel) > Администрирование (Administrative Tools) > Служебные компоненты (Component Services) > Компьютеры (Computers) > щёлкните правой кнопкой мыши по элементу Мой компьютер (My Computer) > щёлкните по элементе Свойства (Properties) > вкладка Параметры по умолчанию (Default Settings):

  • проверьте "Активировать распределённую COM на этом компьютере"
  • установите уровень авторизации для подключения по умолчанию
  • установите Уровень имперсонализации для идентификации по умолчанию

Перейдите в панель управления (Control Panel) > Администрирование (Administrative Tools) > Служебные компоненты (Component Services) > Компьютеры (Computers) > щёлкните правой кнопкой мыши по элементу Мой Компьютер (My Computer) > щёлкните Свойства (Properties) > щёлкните по вкладке Безопасность COM (COM Security):

  • А разделе Права доступа (Access Permissions), щёлкните Редактировать по умолчанию (Edit Default) > добавьте пользователя, созданного ранее, (или авторизовавшегося в данный момент пользователя), разрешите "Удаленный доступ ("Remote Access")
  • В разделе Права доступа к запуску и активации ( Launch and Activation Permissions) > щёлкните Редактировать по умолчанию (Edit Default) > добавьте пользователя, созданного ранее (или авторизовавшегося в данный момент пользователя), разрешите "Локальный запуск" (Local Launch), "Удаленный запуск" (Remote Launch), "Локальная активация" (Local Activation), "Удалённая активация" (Remote Activation).

Что касается раздела Служебные компоненты (Component Services), Вы можете перейти к определённому компоненту и дать разрешение оттуда, а не из элемента "Мой компьютер" (My Computer), что является общим разрешением (blanket grant)

3. Настройка windows firewall

Иногда Windows Firewall будет действовать некорректно, если его неверно настроить, поэтому, пожалуйста, убедитесь, что Вы настроили его для протокола DCOM или отключили его. Следует также убедиться, что должная настройка firewall позволит предотвратить неполадки приложений DCOM Windows.

4. Отключение UAC

Когда Управление доступом пользователя (User Access Control (UAC)) активно, у учетной записи администратора есть два токена безопасности, обычный токен пользователя и административный токен (который активируется лишь, когда Вы пройдёте процедуру UAC). К сожалению, удалённые запросы, которые поступают по сети, дают администратору обычный токен пользователя, и поскольку нет возможности обрабатывать процедуру UAC удалённо, токен нельзя повысить до токена уровня администратора.

Т.о., UAC следует отключить, чтобы разрешить удаленный доступ к DCOM.

5. Установка последних обновлений

Пожалуйста, убедитесь, что Ваш ПК с Windows (где развёрнут COM-сервер) имеет все пакеты обновления Microsoft. Многие проблемы возникают из-за неправильной конфигурации ПК.

Примечания для особых версий windows

Если перечисленные инструкции не помогли, обратитесь к примечаниям для особых версий Windows, расположенных ниже.

Настройка DCOM на windows 2000

1. Кликните Старт (Start), Запустить (Run), а затем наберите DCOMCNFG.

2. Кликните Свойства по умолчанию (Default Properties). Выберите Активировать Распределённую COM на этом компьютере. Установите Уровень авторизации для подключения по умолчанию (вариант None тоже подходит). Установите уровень Имперсонализации для идентификации по умолчанию (вариант Impersonate тоже подходит).

3. Кликните по элементу Безопасность по умолчанию.

4. Под элементом Права доступа по умолчанию (Default Access Permissions) кликните Редактировать (Edit Default). Добавьте SYSTEM и INTERACTIVE. Пользователь, чьи учётные данные будут использоваться для доступа к COM-приложению, должны быть тоже включены в этот список. Существует много способов, как это сделать. Вы можете добавить специального пользователя или просто добавить группу, к которой принадлежит пользователь. Возможные значения включают:

- ДоменИмя пользователя (специальный пользователь)

- ДоменАдминистраторы (Все администраторы на специальном домене)

- Все (Все пользователи)

5. Под элементом Права доступа к запуску по умолчанию (Default Launch Permissions) кликните Редактировать по умолчанию (Edit Default). Убедитесь, что Права доступа к запуску имеют те же значения, что и Права доступа по умолчанию (Default Access Permissions).

6. Кликните Протоколы по умолчанию (Default Protocols). Убедитесь, что ориентированный на подключение TCP/IP перечисляется в начале.

7. Теперь Вы должны настроить приложение COM, к которому необходимо получить доступ. Кликните на приложении, а затем кликните правой кнопкой мыши по приложению, которое необходимо настроить. Выберите Свойства. Если Ваше приложение является библиотекой, следует сначала создать для замены EXE, используя инструментарий SetDllHost. После создания EXE, его имя появится в списке приложений. Выберите Свойства для него и продолжите действия.  

8. Кликните Общее (General). Установите Уровень авторизации по умолчанию.

9. Кликните Расположение (Location). Выберите Запустить приложение на этом компьютере (Run application on this computer).

10. Кликните по элементу Безопасность (Security). Выберите Использовать права доступа по умолчанию (Use default access permissions) и используйте Права доступа для запуска по умолчанию ( default launch permissions).

11. Кликните по элементу Идентичность (Identity). Выберите Запускающего пользователя (launching user). Этот параметр задает учётную запись, которая будет использоваться для запуска COM после того, как она запущено программой клиента. Запускающий пользователь - это учетная пользовательская запись процесса клиента, который запустил сервер, и это рекомендуемая настройка. В зависимости от приложения COM, к которому необходимо подключиться, Вам, возможно, потребуется изменить его на:  

- интерактивного пользователя (interactive user) - пользователь, который в настоящий момент авторизован на ПК, размещающем приложение COM.

- данного пользователя - определите пользовательскую учётную запись, которая всегда будет использоваться для запуска приложения COM, независимо от того, к какому из приложений подключается пользователь.

12. Щёлкните по элементу Endpoints. Выберите протоколы по умолчанию (Default System Protocols).

13. Если Вы всё ещё получаете сообщение об ошибке Доступ не разрешён (Access Denied) или Нет прав доступа (Permission Denied) после настройки параметров Вашей DCOM, попробуйте перезапустить ПК, чтобы позволить новым параметрам вступить в силу.

Настройка DCOM на windows XP и windows server 2003

1. Если компьютер принадлежит не домену, а рабочей группе, следует убедиться, что он не использует простое совместное использование файлов. Откройте Windows Explorer или дважды кликните по элементу Мой компьютер (My Computer), кликните по элементу Инструментарий, а затем перейдите к элементу Опции папки (Folder Options), кликните Просмотр (click) и отмените выбор Использовать простое совместное использование файлов (Use simple file sharing) (рекомендовано) в Дополнительных параметрах (Advanced settings).

2. Кликните Старт (Start), кликните Программы (Programs), кликните Администрирование (Administrative Tools,) кликните Сервисы компонента (Component Services).

3. Разверните Сервисы компонента (Component Services), разверните компьютеры (Computers) и правой кнопкой мыши щёлкните по элементу Мой компьютер (My Computer). Выберите свойства.

4. Кликните Свойства по умолчанию (Default Properties). Выберите Активировать распределённую COM на этом компьютере. Установите Уровень авторизации для подключения по умолчанию (None тоже подходит). Установите Уровень имперсонализации для идентификации по умолчанию (Impersonate тоже подходит).

5. Кликните Безопасность COM по умолчанию (Default COM Security).

6. Под элементом Права доступа по умолчанию (Default Access Permissions) кликните по Редактировать по умолчанию (Edit Default). Добавьте SYSTEM, INTERACTIVE или NETWORK. Пользователь, чьи учётные данные будут использоваться для доступа к приложению COM, должны быть также включены в этот список. Существует много способов, как это сделать. Вы можете добавить специального пользователя или просто добавить группу, к которой принадлежит пользователь. Возможные значения включают:  

- ДоменИмя пользователя (специальный пользователь)

- ДоменАдминистраторы (Все администраторы на специальном домене)

- Все (Все пользователи)

7. Под элементом Права доступа к запуску по умолчанию (Default Launch Permissions) кликните Редактировать по умолчанию (Edit Default). Убедитесь, что Права доступа к запуску имеют те же значению, что и Права доступа по умолчанию (Default Access Permissions).

8. Кликните Протоколы по умолчанию (Default Protocols). Убедитесь, что ориентированный на подключение TCP/IP перечисляется в начале.

9. Теперь Вы должны настроить приложение COM, к которому необходимо получить доступ. Кликните по приложению, а затем кликните правой кнопкой мыши по приложению, которое необходимо настроить. Выберите Свойства. Если Ваше приложение является библиотекой, следует сначала создать для замены EXE, используя инструментарий SetDllHost. После создания EXE, его имя появится в списке приложений. Выберите Свойства для него и продолжите действия.

10. Кликните Общее (General). Установите Уровень авторизации по умолчанию.

11. Кликните Расположение (Location). Выберите Запустить приложение на этом компьютере (Run application on this computer).

12. Кликните по элементу Безопасность (Security). Установите Использовать права доступа к запуску по умолчанию (Set Launch Permissions to Use Default). Установите права доступа  по умолчанию (Access Permissions to Use Default). Установите права доступа к настройкам по умолчанию (Configuration Permissions to Use Default).

13. Кликните по элементу Идентичность (Identity). Выберите запускающего пользователя (launching user). Эта настройка задает учётную запись, которая будет использоваться для запуска приложения COM после того, как оно запущено программой клиента. Запускающий пользователь -- это пользовательская учетная запись, которая запускает сервер, это рекомендуемая настройка. В зависимости от приложения COM, к которому необходимо подключиться, может потребоваться изменить его на:

         - интерактивного пользователя - пользователь, который в текущий момент авторизован на ПК, размещающем приложение COM.

         - этот пользователь - задать пользовательскую учётную запись, которая будет всегда использоваться для запуска приложения COM, независимо от того, какой пользователь имеет к ней доступ.

14. Щёлкните по элементу Endpoints. Выберите протоколы по умолчанию (Default System Protocols).

15. Если Вы все ещё получаете сообщение об ошибке Доступ не разрешён (Access Denied) или Нет прав доступа (Permission Denied) после настройки параметров Вашей DCOM, попробуйте перезапустить ПК, чтобы позволить вступить в силу новым параметрам.

Настройка DCOM на windows XP SP2

Microsoft добавил некоторые опции оптимизации безопасности DCOM в XP Service Pack 2. Помимо выше упомянутых параметров настройки для Windows XP DCOM,  Вам потребуется выполнить следующие этапы:

1. Если компьютер принадлежит не к домену, а рабочей группе, убедитесь, что он не использует простое совместное использование файлов. Откройте Windows Explorer или дважды кликните по элементу Мой компьютер (My Computer), кликните по элементу Инструментарий, а затем перейдите к элементу Опции папки (Folder Options), кликните Просмотр и отмените выбор Использовать простое совместное использование файлов (Use simple file sharing) (рекомендовано) в Дополнительных параметрах (Advanced settings).    

2.Кликните Старт (Start), кликните Программы (Programs), кликните Администрирование (Administrative Tools), кликните Сервисы компонента (Component Services).

3. Разверните Сервисы компонента (Component Services), разверните компьютеры (Computers) и правой кнопкой мыши щёлкните по элементу Мой компьютер (My Computer). Выберите свойства.

4. Кликните Безопасность COM по умолчанию (Default COM Security).

5. Под элементом Права доступа по умолчанию (Default Access Permissions) кликните Редактировать по умолчанию (Edit Default). Убедитесь, что SYSTEM, INTERACTIVE, NETWORK и пользователь, чьи учётные данные будут использоваться для доступа к приложению COM, все имеют права Локального и Удаленного доступа.

6. Под элементом Права доступа по умолчанию (Default Access Permissions) кликните Редактировать ограничения (Edit Limits). Service Pack 2 включает в себя следующие значения по умолчанию: ANONYMOUS LOGON (Локальный доступ) и Все (Локальные и удаленный доступ). Убедитесь, что эти значения перечислены, а затем добавьте пользователя, чьи учётные данные будут использоваться для доступа к приложению COM. Разрешите этому пользователю иметь локального и удаленного доступа (Local and Remote Access permissions).

7. Под элементом Права доступа к запуску по умолчанию (Default Launch Permissions) кликните Редактировать по умолчанию (Edit Default). Убедитесь, что  SYSTEM, INTERACTIVE, NETWORK и пользователь, чьи учётные данные будут использоваться для доступа к приложению COM, имеют права локального и удаленного доступа, а также права локальной и удалённой активации.

8. Под элементом Права доступа к запуску по умолчанию (Default Launch Permissions) кликните Редактировать ограничения (Edit Limits). Service Pack 2 включает в себя следующие значения по умолчанию: MACHINEAdministrators (Локальный и удаленный запуск, локальная и удалённая активация) и Все (Локальный запуск и локальная активация). Убедитесь, что эти значения перечислены, а затем добавьте пользователя, чьи учётные данные будет использоваться для доступа к приложению COM. Разрешите этому пользователю иметь права доступа к локальному и удалённому запуску (Local and Remote Launch permissions), а также разрешения локальной и удалённой активации (Local and Remote Activation permissions).

9. Service Pack 2 включает в себя встроенный Windows Firewall. Если firewall включён, вам придётся позволить приложению COM подключиться по сети к Вашему ПК. Вы можете это сделать, открыв Windows Firewall и добавив Ваше приложение COM в список программ, расположенных во вкладке Исключения (Exceptions). Если выбрано Отображать уведомление, когда Windows Firewall блокирует программу, тогда система вам подскажет разблокировать приложение COM, когда AggreGate Server подключается к Вашему DCOM-серверу в первый раз. Выберите Разблокировать (Unblock), когда система предлагает так поступить.

10. Если все ещё всплывает сообщение об ошибке Доступ не разрешён (access denied) или Нет прав доступа (permission denied) после настройки параметров  DCOM, попробуйте перезапустить Ваш ПК, чтобы изменения вступили в силу.