見出し画像

Microsoft365 Ecucation#3(管理編)パスワード一括変更についてとPowershell接続方法

前回一括登録についての記事を書きました。今回は一括登録をした後にパスワードを一括で設定するPowershellのお話しです。この記事は学校内の管理者向けに書いてあります。学校向けの記事があまりにも少ないのでサポートからの助言を参考に、誰でも管理できそうな方法を共有します。さらに効率的な方法があれば、是非ともコメント欄で教えてください。

パスワードを一括で設定するPowershell

まず、Powershellを使用してMicrosoft365に接続したことない方は以下の操作が必ず必要です。

今後登場するコマンドレットをコピペすればほとんどうまくいきます。ただし、たまにタイプミスしているときがあるので、エラーをはいたらコメントなどで教えて下さい。Microsoftのサポートを参考に書き換えている場所があります。

さいしょにすること

1. [Windows PowerShell モジュール] を右クリックして [管理者として実行] で起動します。
2. 以下のコマンドレットを入力し、MSOnline のインストールを行ってください。※コマンドレットなどと書かれているカタカナの部分はコピペしないでください。

[コマンドレット]
Install-Module MSOnline
※ この後出てくる文言にすべて"Y"で答えてください。

3.以下のコマンドレットを入力し、[アカウントにサインイン] ダイアログ ボックスでユーザー名とパスワードを入力し、[OK] をクリックします。

[コマンドレット]
Connect-MsolService

<公開情報>
Title : PowerShell を使用して Microsoft 365 に接続する
URL : https://docs.microsoft.com/ja-jp/office365/enterprise/powershell/connect-to-office-365-powershell
※ [Windows PowerShell 用 Microsoft Azure Active Directory モジュールとの接続] をご確認ください。

これで準備完了です。それでは一括で追加したユーザーのパスワードを一括で変更します。

パスワードを一括で変更する手順

1. ユーザー一覧をエクスポートする
以下のコマンドレットを実行し、テナントに存在するユーザー アカウントを全て出力します。

<コマンドレット>
Get-Msoluser -All | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding UTF8 "ファイル名を含んだ保存先のパス"
<実行例>
Get-Msoluser -All | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding UTF8 "C:\temp\Userlist.csv"

※ フォルダ名は任意です。デスクチップに新規フォルダを作成して右クリック、セキュリティタブに書いてあるオブジェクト名をコピペしてください。ファイル名をつけるのを忘れないでください。「Userlist.csv」の「Userlist」はどんな名前でも大丈夫です。

【出力例】
UserPrincipalName
user01@contoso.onmicrosoft.com
user02@contoso.onmicrosoft.com
user03@contoso.onmicrosoft.com

2. 出力した CSV ファイルを編集する
 1 で出力した CSV ファイルをローカル上で編集します。

【編集例】
UserPrincipalName,NewPassword
user01@contoso.onmicrosoft.com,Abcd1234
user02@contoso.onmicrosoft.com,Efgh5678
user03@contoso.onmicrosoft.com,Ijkl9012

※ パスワードを変更するユーザーのみ残します。他は消してしまってください。
※NewPasswordという項目を作成し、指定するパスワードを記載します。
※ Excel ファイルを保存する際の形式を [CSV (カンマ区切り) ]を行ってください。

3. 登録済みのユーザーの情報変更を行う
 2 で編集したCSV ファイルを読み込みます。

<コマンドレット>
Import-Csv "ファイル名を含んだ保存先のパス" | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $True または $False}
<実行例>
Import-Csv "C:\temp\Userlist.csv" | ForEach-Object {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.NewPassword -ForceChangePassword $False}

<説明> こちらは任意で設定してください。ほとんどの場合、Trueかと思います。
ForceChangePassword は、最初のサインインを行っていただく際のパスワードの種類を設定します。
ForceChangePassword $True で、[一時パスワード] として登録される為初回サインイン時にユーザーはパスワード変更を求められます。
ForceChangePassword $False で、[本パスワード] として登録される為、有効期限が切れるまで利用できるパスワードとなります。

<実行結果>
Abcd1234
Efgh5678
Ijkl9012

実行結果がPowershell上で書き出されます。

以上となります。記事にすると長くなってしまいますが、慣れてしまえば5分ぐらいで1000人単位のデータを扱えてしまいます。

実行する際には必ず仮アカウントなどで検証を行ってから実行してください。実行後に不具合が発生した場合も私個人は責任取れませんので、ご了承の上ご活用ください。



この記事が気に入ったらサポートをしてみませんか?