[Azure AD] - 使用 PowerShell 調整開啟或關閉使用者的 MFA 設定

使用 PowerShell 進行大量設定 Azure Active Directory (Azure AD) 使用者的 Multi-Factor Authentication (MFA)

 

概述

Azure Active Directory (AAD) 大量設定使用者 Multi-Factor Authentication (MFA) 時有時會發生異常, 異常狀態為顯示執行成功, 但是使用者 MFA 設定卻未被調整, 故我們除了使用 Conditional Access 強制使用者執行安全性規範外, 我們還能使用 PowerShell 執行設定。

以下為說明如何使用 PowerShell 執行大量設定使用者 MFA。

 

正文

執行前, 我們需要確認我們執行環節是否有安裝 MSOnline

Get-Module MSOnline

如沒有安裝, 可執行安裝 MSOnline 模組

Install-Module MSOnline -Force

如已有安裝, 可執行升級 MSOnline 模組

Import-Module MSOnline -Force

安裝完畢後, 執行連線至 Azure AD

Connect-MsolService

連線完成後使用, 匯入預計啟動使用者名單, 並且將名單存成 CSV 檔案。 名單清單如下:

UsernameMFA Status
test01@domain.comEnabled
test02@domain.com 

Enabled 是需要開啟 MFA, 空白為不需要開啟

完成名單準備後, 我們將執行匯入名單的 PowerShell

$users = Import-Csv '匯入設定名單的路徑 + 檔案名稱'

匯入完成後, 我們開始執行設定。 以下我們將使用迴圈的方式逐一讀取使用者進行設定

foreach ($user in $users)
{
    $NewState= $user.'MFA Status'
    
    if($NewState -eq "Enabled")
    {
        #Enabled MFA
        $st = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement
        $st.RelyingParty = "*"
        $st.State = $NewState
        $sta = @($st)

        Set-MsolUser -UserPrincipalName $user.Username -StrongAuthenticationRequirements $sta
    }

    else
    {
        $cfa = @()

        Set-MsolUser -UserPrincipalName $user.Username -StrongAuthenticationRequirements $cfa
    }
}

執行完畢後記得執行登出

Disconnect-AzureAD

完整的 PowerShell 設計可參考我的 Github 並將內容複製至 PowerShell ISE 進行執行 - Github

參考鏈接:
1. 大量開啟使用者 MFA 設定 - Link
2. 關閉使用者 MFA 設定 - Link

感謝閱讀

分級: 入門是認識, 基本是運用, 進階是混合結合
範本是已可下載或可使用的範例, 至於教程當然是學習的結晶