PowershellからOffice365のパスワードをリセットする

PowershllからOffice365 Azure ADのパスワードをリセット(変更)する方法は、MSOnlineモジュールのSet-MsolUserPasswordを使用する方法と、Micorosoft Graph APIモジュールのUpdate-MgUserを使用する方法が一般的だと思う。

Set-MsolUserPasswordでは、下記のように、パスワードを指定しないと、自動でジェネレーとしてくれるので楽。

# MSOnline Module
Set-MsolUserPassword -UserPrincipalName boo@foo.com -ForceChangePassword

ただ、MSOnlineモジュールでは、ライセンス付与のコマンドレット等が非推奨となっており、使用するには色々制限があるので、MSOnlineモジュールを使用して作成したスクリプトをMS Graph APIモジュールに置き換えている最中。

MS Graph APIを使用してパスワードをリセットするには、Update-MgUserコマンドレットを使用する。ユーザー情報そのものの更新になるので、更新用のパラメータボディを作成する必要があるのと、パスワードの自動ジェネレートをサポートしていないので、その部分を用意してあげる必要がある。まぁ、関数化しておくのが無難かな。

# Microsoft Graph API Module
$prm = @{
  passwordProfile = @{
    password = MakePassword # パスワード生成
    forceChangePasswordNextSignIn = $true # 次回サインイン時にパスワード変更を強制
  }
}
Update-MgUser -UserId boo@foo.com -bodyparameter $prm

ちなみに、他人のユーザー情報を更新するには、Connect-MgGraphコマンドレットのscopeに”Directory.ReadWrite.All,Directory.AccessAsUser.All”が必要となる。

忘れない様にメモ。

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: Microsoft Graph, PowerShell, 保守・運用, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください