singlepost

Програмная настройка DCOM. Нужна помощь! << На главную или назад  

Написал программу на Delphi, которая настраивает DCOM. Визуально проверяю результаты её работы с помощью dcomcnfg – всё верно, галочки стоят где нужно, нужные пользователи добавлены. Пытаюсь установить соединение по сети – ошибка "Отказано в доступе"!
Выяснил, что не правильно работают процедуры:

ChangeMachineLaunchRestriction('Все', True, True);
ChangeDefaultLaunchACL('Все', True, True);

Кто нибудь сталкивался с подобным? Очень нужна помощь!

8 ответов в теме “Програмная настройка DCOM. Нужна помощь!”

  1. 8
    Леонид Максимов ответил:

    а если спросить у ListDefaultAccessACL?

  2. 7
    Владимир Софин ответил:

    'everyone' – это для английской версии.

    Вот текст программы:
    SetEnableDCOM(True); //Разрешить использование dcom на этом компе

    SetDCOMComProper(RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IDENTIFY);//Уровень проверки подлинности – "нет". Уровень олицитворения – "Идентификация"

    {для русской версии ос}
    ChangeMachineAccessRestriction('Все', True, True); //Права доступа-Изменить ограничения
    ChangeMachineAccessRestriction('Анонимный вход', True, True);

    ChangeDefaultAccessACL('Все', True, True);//Права доступа-Изменить настройки по умолчанию
    ChangeDefaultAccessACL('Анонимный вход', True, True);

    ChangeMachineLaunchRestriction('Все', True, True);//Разрешение на запуск и активацию-Изменить ограничения
    ChangeMachineLaunchRestriction('Анонимный вход', True, True);

    //ChangeDefaultLaunchACL('Все', True, True);//Разрешение на запуск и активацию-Изменить настройки по умолчанию
    //ChangeDefaultLaunchACL('Анонимный вход', True, True);

  3. 6
    Леонид Максимов ответил:

    может оно все-таки непонятного пользователя 'все' записывает как обычного 'everyone'?

  4. 5
    Владимир Софин ответил:

    Написано то написано) но не работает.
    Самое интересное, что, после того как програмно dcom настрою, запускаю утилиту dcomcnfg -> свойства компьютера-> безопасность com -> разрешение на запуск и активацию-> просто нажимаю применить(ничего не меняя) и всё начинает работать.
    Может движок дкомовский изменения не подхватывает?
    Или кнопка "Применить" что-то особенное в реестр пишет?

  5. 4
    Леонид Максимов ответил:

    там же в описании процедуры ChangeDefaultAccessACL все написано.

  6. 3
    Владимир Софин ответил:

    'Все' – это и есть'Everyone')))
    Вот алгоритм моих действий:
    1. Написал простенькие "com сервер" и "клиент" для тестирования настроек DCOM.
    2. Зарегистрировал "сom сервер" на двух машинах, соединенных по сети.
    3. На машине-сервере настроил руками dcomcnfg.exe – свойства сервера – вкладка Удостоверение – выбрал учетную запись – Запускающий пользователь, вместо Текущий пользователь.
    4. На машине-сервере настроил руками DCOM.
    5. На машине-клиенте запустил приложение "клиент", указал ip сервера и соединение установлено! Ура!
    ЗАТЕМ
    6. На машине-сервере настроил, теперь уже ПРОГРАМНО, DCOM.
    7. На машине-клиенте запустил приложение "клиент", указал ip сервера и
    ошибка "Отказано в доступе"!

    Визуально проверяю ПРОГРАМНЫЕ настройки DCOM. Они верные! Что за мистика?

    Пользовался этими материалами:
    //www.delphikingdom.com/asp/viewitem.asp?catalo...

  7. 2
    Антон Щиров ответил:

    Может вместо 'Все' писать 'Everyone'?

  8. 1
    Леонид Максимов ответил:

    а кто такой 'все'?

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.