I have this script for MFA Reset and seems to work for me at least, if Support could verify. Needs Microsoft Graph installed like M365 Signout script (https://www.adaxes.com/script-repository/sign-out-from-all-microsoft-365-services-s597.htm)
$azureId = $Context.TargetObject.AzureID
if ($NULL -eq $azureId) {
$Context.LogMessage("User %fullname% does not have an Azure AD account.", "Warning")
return
}
$accessToken = $Context.CloudServices.GetAzureAuthAccessToken()
Connect-MgGraph -AccessToken ($accessToken | ConvertTo-SecureString -AsPlainText -Force)
#Search for Authenticator App methods and remove any found
$App = Get-MgUserAuthenticationMicrosoftAuthenticatorMethod -UserId $azureId
if ($App) {
$App | ForEach-Object {
Remove-MgUserAuthenticationMicrosoftAuthenticatorMethod -UserId $azureId -MicrosoftAuthenticatorAuthenticationMethodId $_.Id
$Context.LogMessage("Authenticator App '$(($_.DisplayName))' removed for user $azureId.", "Information")
}
} else {
$Context.LogMessage("No Authenticator App methods found for user $azureId.", "Information")
}
#Search for Email methods and remove any found
$Email = Get-MgUserAuthenticationEmailMethod -UserId $azureId
if ($Email) {
$Email | ForEach-Object {
Remove-MgUserAuthenticationEmailMethod -UserId $azureId -EmailAuthenticationMethodId $_.Id
$Context.LogMessage("Email address '$(($_.EmailAddress))' removed for user $azureId.", "Information")
}
} else {
$Context.LogMessage("No Email methods found for user $azureId.", "Information")
}
#Search for Phone methods and remove any found
$Phone = Get-MgUserAuthenticationPhoneMethod -UserId $azureId
if ($Phone) {
$Phone | ForEach-Object {
Remove-MgUserAuthenticationPhoneMethod -UserId $azureId -PhoneAuthenticationMethodId $_.Id
$Context.LogMessage("Phone number '$(($_.PhoneNumber))' removed for user $azureId.", "Information")
}
} else {
$Context.LogMessage("No Phone/Text methods found for user $azureId.", "Information")
}