Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Проверка активности UAC
Показать сообщение отдельно

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Для начала было бы логично заглянуть в журнал событий, но подозреваю, что они в системах в угоду производительности отключены. Так что если переходить исключительно к фактам, то, во-первых, проблема может таиться в брокере безопасности (в политиках указано одно, а брокер их попросту игнорирует), во-вторых, на реестр полагаться не следует, так как для самой MS реестр сродни некой складчине наследия, которое они от релиза к релизу грозятся упорядочить, но воз и ныне там. Возможно последнее является предпосылкой для различного рода недокументированных API, например, CheckElevationEnabled в kernel32.dll (сигнатура:
Код: Выделить весь код
DWORD CheckElevationEnabled(
   PBOOL pEnabled
);
), являющейся оберткой над RtlQueryElevationFlags из ntdll.dll (сигнатура:
Код: Выделить весь код
NTSYSAPI
NTSTATUS
NTAPI
RtlQueryElevationFlags(
   PRTL_ELEVATION_FLAGS Flags
);
), где RTL_ELEVATION_FLAGS - это объединение (union) для поля SharedDataFlags (смещение 0x2F0) и ряда битовых полей структуры KUSER_SHARED_DATA. В общем, если не заморачиваться с низкоуровневой реализацией вышеупомянутых функций, проверить включен ли UAC в pwsh можно теоретически так:
Код: Выделить весь код
!!([Runtime.InteropServices.Marshal]::ReadInt32([IntPtr]0x7ffe02f0) -band 2)
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:46, 17-01-2021 | #2

Название темы: Проверка активности UAC