Quantcast
Channel: Microsoft Office 365 Community
Viewing all articles
Browse latest Browse all 566

PowerShell を使用した Office 365 ユーザーのパスワードの強制変更

$
0
0

対象: 新Office365 Office 365 Enterprise, Office 365 Small Business, Office 365 Midsize Business

(この記事は 2014 年 8 月 5 日に Hey, Scripting Guy! Blog に投稿された記事 Use PowerShell to Force Office 365 Online Users to Change Passwordsの翻訳です。最新情報については、翻訳元の記事をご参照ください。)

 

概要: Windows PowerShell を使用して Office 365 のオンライン ユーザーにパスワード変更を強制する方法について説明します。

Question Scripting Guy さん、こんにちは。昨日のブログで紹介されていた手法を使用して、Office 365 のオンライン ユーザーを一括作成してみました。今度は、そのユーザーにパスワードを変更してもらいたいと考えています。複雑なパスワードを設定してもらうようにできれば嬉しいです。何か良い方法を教えてください。

—SW

Answer こんにちは、SW さん。

Microsoft Scripting Guy こと Ed Wilson です。今週、Scripting House の周辺は面白いことになってきています。それというのも、私 Scripting Guy の誕生日が数週間後に迫ってきているからです。Scripting Wife が私の誕生日に何をしてくれるのか、考えを巡らせるのが毎年の楽しみです。ある年、彼女に誘われてスモーキー山脈に向かうと、シンシナティからたくさんの友人を招待してサプライズ パーティを用意してくれていたことがありました。本当にうまくやってくれたので、皆がキャビンに姿を現すまでまったく気が付きませんでした。今年のお祝いは、おそらくスモーキー山脈でのサプライズ パーティではないと思いますが、どうでしょうか。彼女はときに、とんでもない創造性を発揮するので、まだ何とも言えません。

今、玄関ポーチに腰を下ろしてハワイのオーガニック ティーをすすりながら、Surface 2 Pro で scripter@microsoft.com宛てに届いたメールをチェックしているところです。SW さん、あなたからのメール��読んで、昨日の Hey, Scripting Guy! の記事の続きにふさわしい内容だと思いました。

メモ今回の記事を読み始める前に、昨日の「PowerShell を使用した Office 365 ユーザーの一括作成」を一読されることをお勧めします。

2 番目に重要なことを最初にやる

Azure Active Directory (Azure AD) モジュールを使用して Office 365 テナント インストールに接続したら (この方法については昨日の記事を参照)、ユーザーに強力なパスワードを設定するように要求します。これには、Set-MSOlUserコマンドレットを使用します。このコマンドレットの構文は次の図のとおりです。

StrongPasswordRequiredパラメーターは、ブール値のパラメーター (On/Off、True/False、Yes/No、ワックスかける/ワックスとる) です。

昨日の記事で使用した CSV ファイルは、パスワードの変更にも使用できます。CSV ファイルを使用してユーザーを作成すると、ファイルをユーザー管理にも利用できるというメリットがあるのです。ユーザー全員に対して強力なパスワードの設定を強制するには、次のコマンドを使用します。

$users = Import-Csv C:\fso\Office365Users.CSV

$users |

foreach { Set-MsolUser -UserPrincipalName $_.userprincipalname -StrongPasswordRequired:$true}

最初のコマンドは CSV ファイルを $usersという変数に読み込みます。2 つ目のコマンドは $usersコマンドレットのオブジェクトを Foreach-Objectコマンドレットにパイプ処理します。スクリプト ブロック内で Set-MSOlUserコマンドレットを使用することで、各ユーザーに強力なパスワードを設定するように要求できます。

コマンドが正しく機能していることを確認するには、次のコマンドを使用します。

$users |

foreach {Get-MsolUser -UserPrincipalName $_.userprincipalname | select displayname, strongpasswordrequired}

同じ $users変数を使用し、オブジェクトを Foreach-Objectコマンドレットにパイプ処理します。スクリプト ブロック内で Get-MSOlUserコマンドレットをそれぞれのユーザーに対して呼び出します。DisplayNameプロパティと StrongPasswordRequiredプロパティを表示させます。

2 つのコマンドとその出力は次の図に示すとおりです。

パスワード変更を強制する

ユーザー パスワードに特化したコマンドレットがあります。Set-MSOlUserPasswordコマンドレットです。新しいパスワードを設定したり、パスワードの変更を要求したりすることができます。構文は次のようになります。

パスワード変更を強制するコマンドの構文は、前述したユーザー全員に強力なパスワードの設定を強制するコマンドと非常に似ています。次のようになります。

$users |

foreach { Set-MsolUserPassword -UserPrincipalName $_.userPrincipalName -ForceChangePassword:$true}

2 つのコマンドを組み合わせる

2 つのコマンドは、別々に実行するのではなく、次のように連結することができます。

$users |

foreach {

Set-MsolUserPassword -UserPrincipalName $_.userPrincipalName -ForceChangePassword:$true;

Set-MsolUser -UserPrincipalName $_.userprincipalname -StrongPasswordRequired:$true}

メモこれは 1 つのコマンドですが、わかりやすいように改行しています。

ここまで、Windows PowerShell スクリプトを 1 つも書く必要がありませんでした。全部コピーして貼り付けると、次のような 1 つのスクリプトになります。

Get-Credential "admin@ScriptingGuy.OnMicrosoft.Com" |

Export-Clixml C:\fso\ScriptingGuyCredential.xml

$cred = Import-Clixml C:\fso\ScriptingGuyCredential.xml

Connect-MsolService -Credential $cred

$users = Import-Csv C:\fso\Office365Users.CSV

$users |

   foreach {

     Set-MsolUserPassword -UserPrincipalName $_.userPrincipalName -ForceChangePassword:$true

     Set-MsolUser -UserPrincipalName $_.userprincipalname -StrongPasswordRequired:$true}

もっと見やすくした図を次に示します。

SW さん、Windows PowerShell を使用して Office 365 ユーザーにパスワード変更を強制する方法と、複雑なパスワードの設定を強制する方法については以上です。引き続き Office 365 Week として、明日も便利な情報をお届けします。

Twitter (英語)Facebook (英語)でも情報を発信していますので、ぜひフォローをお願いします。ご不明な点がございましたら、私のアドレス (scripter@microsoft.com) 宛てに電子メールをお送りいただくか、公式の Scripting Guys フォーラム (英語)に投稿してください。それではまた明日お会いしましょう。

Microsoft Scripting Guy こと Ed Wilson


Viewing all articles
Browse latest Browse all 566

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>