Microsoft365のユーザパスワードをPowershellで変更(MsGraph版)

スポンサーリンク

MSOnline と Azure AD Powershell が2024年3月30日に廃止されるらしい。Microsoft Graph PowerShell に移行が必要。パスワード変更する機会があったのでGraphでパスワード変更する機会があったのでメモ。

Graphモジュールインストール(初回のみ)

Powershellを管理者で起動して、Graphモジュールをインストール。5分くらいかかるかも

PS> Install-Module Microsoft.Graph 

MgGraphへ接続する。

パスワードを変更するときに権限うんぬんのエラーがでるので何かと思ったら

パスワードを変更するときは接続するときにDirectory.AccessAsUser.All”,”Directory.ReadWrite.All” を付与する必要がある

PS> Connect-MgGraph -Scopes "Organization.Read.All","User.ReadWrite.All","Directory.AccessAsUser.All","Directory.ReadWrite.All"
Welcome to Microsoft Graph!

パスワード変更

パスワードを20240217 と変更する。UserIDにはUPNを指定する。

PS> Update-MgUser -UserId user@tec-memo.com  -PasswordProfile @{ "Password" = 20240217 }

パスワード無期限、初回ログイン時にパスワード強制変更、複雑なパスワード要求OFFなどいろいろつける場合

PS> Update-MgUser -UserId user@tec-memo.com  -PasswordPolicies "DisablePasswordExpiration,DisableStrongPassword"  -PasswordProfile @{ "Password" = 20240217 ; "forceChangePasswordNextSignIn" = $true}

一括処理

大量のユーザアカウントを一括初期化する機会があったのでPowershellでスクリプト化した。下記のCSVを作成して、スクリプトと同じフォルダにaccout.csvというファイル名で配置して実行する。なおパスワードは”20240217″ に初期化している。パスワードは適宜編集。

ID
aaa@tec-memo.com
bbb@tec-memo.com
ccc@tec-memo.com
    
# 作業フォルダの定義
$scriptname = $MyInvocation.MyCommand.Name
$path = $PSScriptRoot
# 作業フォルダに移動
cd $path

#ログ取得
if (!(Test-Path .\log)){
    mkdir .\log
    Write-Output ("logフォルダを作成しました。")
}
$logfile = ".\log\" + $scriptname +"_"+ (Get-date -Format "yyyy-MMdd-HHmmss") + ".log"
Start-Transcript $logfile -Append


# AzureAD 接続
$cre = Import-Clixml -path C:\work\cred.xml
Connect-MgGraph -Scopes "User.ReadWrite.All"
Import-Module -Name Microsoft.Graph.Users


# パスワード変更対象者のCSVリストを取得
$Lists = Import-Csv -Encoding Default ".\account.csv"

$count = 0
foreach($l in $Lists){
    $count ++
    Update-Mguser -UserID $l.ID -PasswordProfile @{ "Password" = "20240217" ; "forceChangePasswordNextSignIn" = $true}
    Write-Output("[" + $count +"]/[" + $Lists.Count + "]  " + $l.ID + " のパスワードを変更しました。")
}

# Graph から切断
Disconnect-MgGraph
# ログ停止
Stop-Transcript

コメント

タイトルとURLをコピーしました