Объект SWbemSecurity позволяет считывать или записывать информацию об установках безопасности при подключении к пространству WMI для определенного объекта. Доступ к нему можно получить через свойство Security_ объектов SWbemLocator, SWbemServices, SWbemObjectSet, SWbemObject, SWbemObjectPath, SWbemLastError и SWbemEventSource. Данный объект не содержит методов, а только три свойства, давайте их рассмотрим.
AuthenticationLevel — Целое число, которое определяет уровень аутентификации (проверки подлинности). Я уже рассматривал уровни проверки подлинности, олицетворении и привилегии, в статье “Подключение к WMI с помощью моникера”. Поэтому приведу лишь взаимоотношение:
0 – None
1 – Default
2 – Connect
3 – Call
4 – Pkt
5 – PktIntegrity
6 – PktPrivacy
Вы можете прописать константы в сценарии, что бы не использовать цифры, например:
const wbemAuthenticationLevelDefault = 0 |
или
const wbemAuthenticationLevelPktPrivacy = 6 |
ImpersonationLevel — Целое число, которое определяет уровень олицетворения.
Privileges — данное свойство является ссылкой на объект SWbemPrivilegeSet, который позволяет задавать различные разришения (привилегии).
Теперь давайте рассмотрим описание объекта SWbemPrivilegeSet
SWbemPrivilegeSet
Данный объект является коллекцией объектов SWbemPrivilege, SWbemPrivilegeSet имеет в своем роспоряжении всего одно свойство и пять методов:
Count — Содержит число объектов SWbemPrivilege в коллекции SWbemPrivilegeSet, используется только для чтения.
Add(iPrivilege, [bIsEnabled = True]) – позволяет добавить в коллекцию объект SWbemPrivilege, возвращает ссылку на него. При условии, что объект с подобным именем уже существует, то происходит его перезапись. iPrivilege является целым числом или константой, которое задает разрешение, bIsEnabled – может принимать значения True (включить разрешение) или False (отключить разрешение). Параметр iPrivilege может принимать следующие значения, значения с префиксом Se используются для метода AddAsString:
1 (wbemPrivilegeCreateToken, SeCreateTokenPrivilege) — создавать первичный маркер.
2 (wbemPrivilegePrimaryToken, SeAssignPrimaryTokenPrivilege) — назначать первичный маркер процесса.
3 (wbemPrivilegeLockMemory, SeLockMemoryPrivilege) — блокировать физические страницы в памяти.
4 (wbemPrivilegeIncreaseQuota, SeIncreaseQuotaPrivilege) — увеличивать квоту, назначенную на процесс.
5 (wbemPrivilegeMachineAccount, SeMachineAccountPrivilege) — создавать учетную запись машины.
6 (wbemPrivilegeTcb, SeTcbPrivilege) — держателя как часть доверенной компьютерной базы.
7 (wbemPrivilegeSecurity, SeSecurityPrivilege) — исполняет множество связанных с безопасностью функций, типа управления и рассмотрения сообщений аудита. Эта привилегия идентифицирует ее держателя как оператора безопасности.
8 (wbemPrivilegeTakeOwnership, SeTakeOwnershipPrivilege) — монопольное использования объекта без предоставления контролируемого доступа.
9 (wbemPrivilegeLoadDriver, SeLoadDriverPrivilege) — загрузка и выгрузка драйвера устройства.
10 (wbemPrivilegeSystemProfile, SeSystemProfilePrivilege) — сбор информации профилирования для всей системы.
11 (wbemPrivilegeSystemtime, SeSystemtimePrivilege) — изменение системной даты.
12 (wbemPrivilegeProfileSingleProcess, SeProfileSingleProcessPrivilege) — сбор информации профилирования для отдельного процесса.
13 (wbemPrivilegeIncreaseBasePriority, SeIncreaseBasePriorityPrivilege) — увеличить базовый приоритет процесса.
14 (wbemPrivilegeCreatePagefile, SeCreatePagefilePrivilege) — создавать файл подкачки.
15 (wbemPrivilegeCreatePermanent, SeCreatePermanentPrivilege) — создавать постоянный объект.
16 (wbemPrivilegeBackup, SeBackupPrivilege) – выполнить резервное копирование.
17 (wbemPrivilegeRestore, SeRestorePrivilege) — исполнять операции восстановления, установить любого допустимого пользователя или идентификатор безопасности группы (SID) как владельца объекта.
18 (wbemPrivilegeShutdown, SeShutdownPrivilege) — завершить работу локальной системы.
19 (wbemPrivilegeDebug, SeDebugPrivilege) — отладка процесса.
20 (wbemPrivilegeAudit, SeAuditPrivilege) — генерировать элементы лога аудита.
21 (wbemPrivilegeSystemEnvironment, SeSystemEnvironmentPrivilege) — изменять энергонезависимую RAM память систем, чтобы использовать этот тип памяти для хранения информации конфигурации.
22 (wbemPrivilegeChangeNotify, SeChangeNotifyPrivilege) — получать уведомления об изменениях файлов и каталогов. Это допускается по умолчанию для всех пользователей.
23 (wbemPrivilegeRemoteShutdown, SeRemoteShutdownPrivilege) — удалённо завершать работу системы.
24 (wbemPrivilegeUndock, SeUndockPrivilege) — удалять портативный компьютер из док-станции.
25 (wbemPrivilegeSyncAgent, SeSyncAgentPrivilege) — синхронизировать данные службы каталога.
26 (wbemPrivilegeEnableDelegation, SeEnableDelegationPrivilege) — разрешать учётные записи компьютера и пользователя для доверенного делегирования.
AddAsString(strPrivilege, [bIsEnabled = True]) – назначение аналогично предыдущему методу, просто тут используются в качестве ипараметра strPrivilege передается строка, например:
mSWbemLocator.Security_.Privileges.AddAsString("SeShutdownPrivilege")
|
Item(iPrivilege) – данный метод возвращает объект SWbemPrivilege, iPrivilege содержит число (константу), которая задает разрешение, возможные значения приведено в методе Add.
DeleteAll() – позволяет полностью очистить коллекцию
Remove(iPrivilege) – позволяет удалить заданное (iPrivilege) разрешение из коллекции.
Теперь давайте рассмотрим описание объекта SWbemPrivilege
SWbemPrivilege
Данный объект позволяет установить или удалить привилегию, необходимую для доступа к WMI. У него всего четыре свойства:
DisplayName – краткое описание разрешения, используется только для чтения.
Identifier – идентификатор разрешения (варианты описаны выше, метод Add)
IsEnabled — логическое True (включено) или False (отключено) разрешение
Name – хранит в себе имя разрешения.