PowerShellでパスワード有効期限切れ間近のOffice365ユーザーを出力する

PowerShellでパスワード有効期限切れ間近のOffice365ユーザーを出力する

PowerShellでパスワード有効期限切れ間近のOffice365ユーザーを出力する

Macでメールアプリを使っている人とか、WindowsでBeckyやThunderBirdだけ使っている人とかって期限切れ通知がでないんですよね・・・。
で有効期限が切れてメールが使えない!といってくるので、予防策として期限が迫っているユーザリストを作成してみることにしました。

PowerShellからOffice365へ接続するための準備

まずはPowerShellからOffice365系のコマンドが実行できるようにします。
管理者権限でPowerShellを起動し、下記コマンドを入力します。
途中のプロンプトはYを押して進めます。

スクリプトを作成する

パスワードファイルの準備

タスクスケジューラから実行させたいため、コマンドだけでOffice365へログインできるようにします。
PowerShellで下記コマンドを実行します。

下記のようなスクリプトを作成しました。

エラー処理入れてないのであれですが、初回実行時にはout.csvがないとエラーになると思います。
処理追加しようと思って忘れてました(笑)
パスワードの期限が14日を切ったユーザが一覧として出力されます。
if文の条件式にて-ge 0としているのは、期限が切れてしまったユーザが表示されてしまいノイズになってしまうので、14以下0以上としています。

メール送信処理部分

SMTP認証を行うため、Office 365ユーザのメールアドレスとパスワードが必要になります。
そのため環境変数のO365MAILPASSという名前で認証用のパスワードを設定しました。
$env:O365MAILPASSは、上記で設定した環境変数から認証用のパスワードを取得しています。
コード内に記述するのが嫌だったのでこの手法をとっています。

タスクスケジューラーに登録する

登録法は@ITの記事にて詳しく解説されているのでこちらをご参照ください。
私はPowerShellファイルを直接プログラム/スクリプトに指定して見事にはまりました(笑)

実行結果

こんな感じでメールが送信されてきます。

Teamsへも投稿

途中でTeamsへも投稿したらいいんじゃないか?と思い立ちWebhookも設定してみました。
が、、、日本語が文字化けしてしまいました・・・。色々試してみたのですが解決できず・・・
解決策教えてください・・・。こんなことになってしまいました↓

参考URL

https://idmlab.eidentity.jp/2013/07/office365powershelltips.html

PowerShellでのOffice365自動接続

Office 365カテゴリの最新記事

%d人のブロガーが「いいね」をつけました。