使用 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 檔案。 名單清單如下:
Username | MFA Status |
test01@domain.com | Enabled |
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
感謝閱讀