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.

