być może przygotowujesz się do przejścia na nowy model MFA i chcesz upewnić się, czy konta są odpowiednio skonfigurowane. a może po prostu chcesz zweryfikować stan MFA w ramach tenanta?

(między innymi) tego rodzaju raporty muszę dostarczać często, dla tego potrzebuję dobrego narzędzia. takim jest funkcja get-eNAuditorMFAReport z modułu eNAuditor. postaram się opisać kilka funkcji wraz ciekawostkami… bo dawno nie było o PowerShell.

instalacja to po prostu wywołanie „install-module enauditor”. funkcja pozwala na sprawdzenie stanu MFA dla pojedynczego konta lub (default) dla całego tenanta. można też od razu wygenerować plik Excel (-xlsxReport):

C:\temp :))o- get-eNAuditorMFAReport -userId catest@w-files.pl -extendedMFAInformation -xlsxReport
VERBOSE: connected as nexor@w-files.pl.
VERBOSE: 1 member users found. gathering MFA status...

MFAstatus : enabled
softwareAuth : False
authApp : True
authDevice : [SM-S921W]
phoneAuth : False
authPhoneNr :
fido : False
fidoDetails :
helloForBusiness : False
helloForBusinessDetails :
emailAuth : False
SSPREmail :
tempPass : False
tempPassDetails :
passwordLess : False
passwordLessDetails :
UserDisplayName : Test
UserPrincipalName : catest@w-files.pl
Id : 23232323-a33b-45a5-8484-232323232323
AccountEnabled : True
IsAdmin : False
IsMfaCapable : True
IsMfaRegistered : True
IsPasswordlessCapable : True
IsSsprCapable : False
IsSsprEnabled : False
IsSsprRegistered : False
LastUpdatedDateTime : 2025-05-05 8:23:06 PM
MethodsRegistered : macOsSecureEnclaveKey,microsoftAuthenticatorPush,softwareOneTimePasscod
e
IsSystemPreferredAuthenticationMethodEnabled : True
SystemPreferredAuthenticationMethods : PhoneAppNotification
UserPreferredMethodForSecondaryAuthentication : push
AdditionalProperties : 0

VERBOSE: results saved as eNMFAReport-w-files.pl-250514-203901.csv.
08:39:04> INFO: creating C:\temp\eNMFAReport-w-files.pl-250514-203901.xlsx excel file...
08:39:04> INFO: adding eNMFAReport-w-files.pl-250514-203901.csv data as worksheet...
08:39:04> INFO: ',' detected as delimiter.
08:39:05> convertion done, saved as C:\temp\eNMFAReport-w-files.pl.250514-203901.xlsx
08:39:05> OK: done and cleared.
done.

userId może być GUIDem lub UPNem natomiast do konwersji CSV to XLSX wykorzystywana jest funkcja convert-CSVtoXLS z biblioteki eNLib.

extendedMFAInformation

ciekawosta związana z MFA jest taka, że są dwie funkcje Graph, które pozwalają na odpytanie się o MFA:

pierwsza jest bardziej uniwersalna i łatwiej znaleźć przykłady Internecie, jednak ta druga dostarcza bardzo fajnych, szczegółowych informacji… ale. musi być jakieś 'ale’. choć nie jest to opisane w dokumentacji, Get-MgReportAuthenticationMethodUserRegistrationDetail wymaga:

  • aby konto było aktywne – nie zadziała na wyłączonym koncie
  • aby miało licencję. jestem jeszcze w trakcie sprawdzania czy jakąkolwiek licencję czy EID P1/P2.
  • na pewno nie zadziała, jeśli nie ma P1 w ramach tenanta

tak, że parametru 'extendedMFAInformation’ można użyć, ale niekoniecznie uda się uzyskać dodatkowe informacje.

outro

na zakończenie dodam, że moduł jest na GitHub jeśli ktoś chce sobie dokładnie przejrzeć działanie.

w ramach modułu jest na tą chwilę kilka innych funkcji, które też będę po krótce opisywał. na dziś są to:

  • disable-eNAuditorperUserMFA
  • get-eNAuditorADPrivilegedUsers
  • get-eNAuditorBasicSecurityInfo
  • get-eNAuditorEntraIDPrivilegedUsers
  • get-eNAuditorMFAReport
  • get-eNAuditorReportADObjects
  • get-eNAuditorReportEntraUsers
  • get-eNAuditorReportMailboxes
  • join-eNAuditorReportHybridUsersInfo

jak większość tego rodzaju projektów – moduł rośnie w trakcie kiedy mam jakiś projekt z tym związany. w poczekali leży funkcja to weryfikacji uprawnień aplikacji EID, ale nie jest skończona. przy najbliższym audycie na pewno ją dodam.

ze względu na funkcję get-eNAuditorADPrivilegedUsers musiałem ustawić kompatybilność modułu na PS5, chociaż to jedyna funkcja dla tej wersji, jednak wszystkie funkcje dla Chmury wymagają PS7. niestety dodanie #requires dla chociaż jednej funkcji powoduje, że podczas ładowania modułu w ramach PS5 moduł się wysypie – a funckję dla AD przyodziło mi odpalać niedawno na w2k12 (bez R2 nawet!).

taki urok modułów, taki urok środowisk on-premises.

eN.

-o((:: sprEad the l0ve ::))o-

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.