Загрузка данных


Для пользователей:

powershell
Get-ADUser -Filter 'msDS-SupportedEncryptionTypes -ne 0 -and msDS-SupportedEncryptionTypes -ne 8 -and msDS-SupportedEncryptionTypes -ne 16 -and msDS-SupportedEncryptionTypes -ne 24' -Properties ServicePrincipalName, msDS-SupportedEncryptionTypes | Select-Object Name, SamAccountName, ServicePrincipalName, msDS-SupportedEncryptionTypes
Для компьютеров (обязательно проверьте и их!):

powershell
Get-ADComputer -Filter 'msDS-SupportedEncryptionTypes -ne 0 -and msDS-SupportedEncryptionTypes -ne 8 -and msDS-SupportedEncryptionTypes -ne 16 -and msDS-SupportedEncryptionTypes -ne 24' -Properties ServicePrincipalName, msDS-SupportedEncryptionTypes | Select-Object Name, SamAccountName, ServicePrincipalName, msDS-SupportedEncryptionTypes
Подход 2: Побитовая проверка наличия флагов AES (более мягкий вариант)
Ваш первоначальный фильтр ($_.msDS-SupportedEncryptionTypes -band 0x18) -eq 0 верен, но он исключает аккаунты с атрибутом 0. Если вы хотите включить и их (предполагая, что 0 может быть небезопасным), можно использовать такой вариант:

powershell
Get-ADUser -Filter * -Properties ServicePrincipalName, msDS-SupportedEncryptionTypes | Where-Object { 
    $_.ServicePrincipalName -ne $null -and 
    (($_.msDS-SupportedEncryptionTypes -band 0x18) -eq 0 -or $_.msDS-SupportedEncryptionTypes -eq 0) 
} | Select-Object Name, SamAccountName, ServicePrincipalName, msDS-SupportedEncryptionTypes
(Аналогично можно заменить Get-ADUser на Get-ADComputer)

Подход 3: Использование LDAP-фильтра (фильтрация на стороне контроллера домена)
Этот метод может быть быстрее, так как вся работа выполняется на DC. Он ищет аккаунты с SPN, которые не отключены и у которых не установлены биты AES.

Для пользователей:

powershell
Get-ADUser -LDAPFilter "(&(servicePrincipalName=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(msDS-SupportedEncryptionTypes:1.2.840.113556.1.4.804:=24)))" -Properties ServicePrincipalName, msDS-SupportedEncryptionTypes | Select-Object Name, SamAccountName, ServicePrincipalName, msDS-SupportedEncryptionTypes
Для компьютеров:

powershell
Get-ADComputer -LDAPFilter "(&(servicePrincipalName=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(msDS-SupportedEncryptionTypes:1.2.840.113556.1.4.804:=24)))" -Properties ServicePrincipalName, msDS-SupportedEncryptionTypes | Select-Object Name, SamAccountName, ServicePrincipalName, msDS-SupportedEncryptionTypes