Настройка безопасности при создании пространства имен
MoF-файл, создающий пространство имен, также может определять дескрипторы безопасности для пространства имен путем включения квалификатора NamespaceSecuritySDDL с дескрипторов безопасности в формате sddl .
Для защиты любого пространства имен можно использовать NamespaceSecuritySDDL . Этот квалификатор также можно использовать в простом MOF-файле, чтобы изменить дескриптор безопасности в существующем пространстве имен. Строка SDDL обрабатывается WMI для установления безопасности пространства имен, но не хранится в виде строки. Если дескриптор безопасности не указан, используется безопасность по умолчанию. Дополнительные сведения см. в разделе Настройка дескрипторов безопасности для платформы имен.
Следующая процедура задает дескриптор безопасности для пространства имен root\MyNamespace . Строка SDDL задает владельца и группу для пользователей, прошедших проверку подлинности, и указывает список управления доступом на уровне пользователей на уровне пользователей, который наследуется дочерними пространствами имен. DACL позволяет пользователю считывать данные, выполнять методы, записывать данные в классы поставщиков и использовать удаленный доступ: WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDERWBEM_REMOTE_ACCESS. Дополнительные сведения см. в разделе Доступ к пространствам имен WMI.
Установка dacl пространства имен
Создайте MOF-файл или измените существующий MOF-файл, определяющий пространство имен, чтобы добавить квалификатор NamespaceSecuritySDDL со строкой SDDL.
В следующем примере кода показано, что пространство имен для изменения — root\MyNamespace, а файл называется MyNamespace_security.mof.
#pragma autorecover #pragma namespace("\\\\.\\root") [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")] Instance of __Namespace { Name = "MyNamespace"; };
Имейте в виду, что в строке SDDL учитывается регистр: буквы должны быть прописными.
В следующем примере кода буквы "o" и "g" в строке SDDL показаны в нижнем регистре, что приведет к Mofcomp.exe возврату ошибки.
#pragma autorecover #pragma namespace("\\\\.\\root") [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] Instance of __Namespace { Name = "MyNamespace"; };
Запустите Mofcomp.exe , чтобы скомпилировать MOF-файл.
c:\mofcomp MyNamespace_security.mof
В C++ используйте методы IMoFCompiler .
Если попытка задать dacl пространства имен завершается неудачей, рассмотрите следующие сообщения об ошибках:
Ошибка Описание WBEM_E_INVALID_PARAMETER Наследуемого daCL нет. Кроме того, вызывающий объект нарушил DACL или SD в родительском пространстве имен. WBEM_E_ACCESS_DENIED Вызывающий объект не имеет разрешения на обновление SDDL в MOF.
Связанные темы