Свойство SWbemSecurity.ImpersonationLevel

Свойство ImpersonationLevel — это целое число, определяющее уровень олицетворения COM, назначенный этому объекту. Этот параметр определяет, могут ли процессы, принадлежащие инструментарию управления Windows (WMI), обнаруживать или использовать учетные данные безопасности при вызове других процессов. Дополнительные сведения об уровнях олицетворения см. в разделе Настройка Client_Application_Process Security.

Если уровень олицетворения не задан специально в моникере или путем задания свойства SWBemSecurity.ImpersonationLevel для защищаемого объекта, WMI устанавливает уровень олицетворения по умолчанию в значение, указанное в разделе реестра уровня олицетворения по умолчанию. Если этого параметра недостаточно, поставщик не обслуживает ваш запрос, и вызов API WMI может завершиться ошибкой с кодом wbemErrAccessDenied (2147749891/0x80041003).

Описание этого синтаксиса см. в разделе Соглашения о документах для API сценариев.

Это свойство является чтением и записью.

Синтаксис

SWbemSecurity.ImpersonationLevel As Integer

Значение свойства

Комментарии

В качестве уровня олицетворения DCOM этому свойству можно задать одно из следующих значений:

Значение Описание
Анонимный Скрывает учетные данные вызывающей стороны. WMI фактически не поддерживает этот уровень олицетворения; Если скрипт указывает impersonationLevel=Anonymous, WMI автоматически обновляет уровень олицетворения до Определения. Однако это в некотором смысле бессмысленное упражнение, так как сценарии, использующие уровень Идентификация, скорее всего, завершатся ошибкой.
Identify Позволяет объектам запрашивать учетные данные вызывающего объекта. Сценарии, использующие этот уровень олицетворения, скорее всего, завершаются ошибкой; Уровень Идентификация обычно позволяет выполнять не более проверка списки управления доступом. Вы не сможете выполнять скрипты на удаленных компьютерах с помощью функции Идентификация.
Impersonate Позволяет объектам использовать учетные данные вызывающего объекта. Рекомендуется использовать этот уровень олицетворения со сценариями WMI. При этом скрипт WMI будет использовать учетные данные пользователя; в результате он сможет выполнять любые задачи, которые вы сможете выполнить.
Делегат Позволяет объектам разрешить другим объектам использовать учетные данные вызывающего объекта. Делегирование позволяет скрипту использовать учетные данные на удаленном компьютере, а затем позволяет этому удаленному компьютеру использовать ваши учетные данные на другом удаленном компьютере. Хотя этот уровень олицетворения можно использовать в скриптах WMI, это следует делать только при необходимости, так как это может представлять угрозу безопасности.
Уровень олицетворения делегата нельзя использовать только в том случае, если все учетные записи пользователей и компьютеры, участвующие в транзакции, не были помечены как доверенные для делегирования в Active Directory. Это помогает свести к минимуму риски безопасности. Хотя удаленный компьютер может использовать ваши учетные данные, он может сделать это только в том случае, если он и любые другие компьютеры, участвующие в транзакции, являются доверенными для делегирования.

Как уже отмечалось, анонимное олицетворение скрывает ваши учетные данные, а Функция Идентификация позволяет удаленному объекту запрашивать учетные данные, но удаленный объект не может олицетворять контекст безопасности. (Другими словами, хотя удаленный объект знает, кто вы, он не может "притворяться" вами.) Скрипты WMI, которые обращаются к удаленным компьютерам с помощью одного из этих двух параметров, обычно завершаются ошибкой. На самом деле большинство скриптов, выполняемых на локальном компьютере с использованием одного из этих двух параметров, также завершится сбоем.

Олицетворение позволяет удаленной службе WMI использовать контекст безопасности для выполнения запрошенной операции. Удаленный запрос WMI, использующий параметр Impersonate, обычно выполняется успешно, если учетные данные имеют достаточные привилегии для выполнения предполагаемой операции. Другими словами, WMI нельзя использовать для выполнения действий (удаленно или иным образом), которые у вас нет разрешения на выполнение за пределами WMI.

Установка параметра impersonationLevel в значение Делегат позволяет удаленной службе WMI передавать учетные данные другим объектам и, как правило, считается угрозой безопасности.

Уровень олицетворения объектов SWbemServices, SWbemObject, SWbemObjectSet, SWbemObjectPath и SwbemLocator можно задать, задав для свойства ImpersonationLevel требуемое значение. В следующем примере показано, как задать уровень олицетворения для объекта SWbemObject :

objinstance.Security_.ImpersonationLevel = _
    wbemImpersonationLevelImpersonate

Уровни олицетворения также можно указать как часть моникера. В следующем примере задается уровень проверки подлинности и уровень олицетворения и извлекается экземпляр Win32_Service.

Set objinst = GetObject("WinMgmts:{impersonationLevel=impersonate,"& _
                         "authenticationLevel=pktPrivacy}"& _
                         "!root/cimv2:Win32_service='ALERTER'")

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemSecurity
IID
IID_ISWbemSecurity

См. также раздел

SWbemSecurity

Настройка безопасности Client_Application_Process

WbemImpersonationLevelEnum