脱!公務員ブログ

元地方公務員(市役所職員)のSEが、自身の体験を元に公務員の実態や役立つ知識や経験談、IT関連の技術的な情報、美味しいお店の情報、趣味(野球、音楽、ゲーム、麻雀)に関すること、私自身の波乱に満ちた人生経験について発信します。記事を読んだ後は少し知識が増えて、笑顔になれる(ネタ要素満載)、そんなブログですので是非お立ち寄り下さい♪

【PowerShell】AzureADからメールエイリアスを抽出してみた【Office365】

本記事は、先日作成したAzure ADからメールエイリアス一覧を抽出し、条件に該当するエイリアスのみファイルに列記するスクリプトのサンプルコードについて説明しています。

事の発端は、職番の先輩から、「メールエイリアスがカオス過ぎて、エイリアスinエイリアスinエイリアスinエイリry」との相談があり、その悩みを解決すべく不慣れなPower  Shellを勉強し、整理を行うための元データを用意することでした。

前提条件や、コードの意味合いなども解説したいと思います!

私の職場同様にエイリアスがカオスになっている方は、抽出条件やパスを少し変えれば汎用的に使えると思いますので、ぜひお試し下さい。

エイリアス抽出サンプルコード

o365認証情報ファイル生成

AzureADメールエイリアス抽出

事前準備

 事前にAzureADのモジュールインストールと、「.NET Framework」3.5の有効化を行う必要があります。

モジュールのインストールはPowerShellを管理者実行し、コマンドで実行することができますのでそちらの手順で実施してください。

 

エイリアス抽出サンプルコード解説

o365認証情報ファイル生成

o365認証情報ファイル生成

1行目で変数に認証情報を格納し、2行目でパスワードをSecure-String型でdatファイルに出力しています。

コードを実行すると、

Windows認証ダイアログ

認証ダイアログが表示されますので、AzureADに接続可能な認証情報を入力してください。

AzureADメールエイリアス抽出

AzureADメールエイリアス抽出

2行目で先ほど生成したdatファイルからパスワードを読み込み変数に格納し、

5~9行目でAzureADへの接続処理を行っています。

この際、o365へのサインインを求める画面が表示されますので、認証情報を入力します。

12~14行目でAzureAD上に存在する全エイリアス情報を取得し、一旦ローカルに出力した後、出力したデータを変数に取り込んでいます。

※取得したデータの内容を確認するためにCSV出力を行っています。データ出力不要でしたら直接変数に取り込んでもよいです。

18~21行目の処理は、先ほどの全エイリアス情報から、「Objectid」をキーとして、エイリアス内のメンバーを取得し、変数に格納します。

22~25行目の処理では、エイリアスのメンバー内に特定の文字列が含まれる場合(検索対象のアドレス)、変数にメールアドレスを格納します。

エイリアスの数だけ処理をループさせ、28行目で条件に該当したエイリアスの一覧としてCSVデータを出力させています。

22~25行目を要件に応じて変更することで、様々な抽出条件に対応できますので、汎用的に利用してください。

まとめ

PowerShellLinux系のシェルに類似性があり、VBS等と比較するとコードが手短にでき、書きやすいのでおススメです。

調べていく過程で色々な処理ができることが分かったので、今後も勉強して便利に使えるコードを開発していきたいと思います!

マニアックなものはともかく、汎用的で需要ありそうなものが出来上がりましたらまた公開させていただきます。

ここまでお読みいただきありがとうございました!

下の記事はLinuCの合格体験記です。

www.withdrawal-civilservice.com

下の記事は、ADのグループポリシー関係の記事です。

www.withdrawal-civilservice.com

下の記事は、昔起きた障害を臨場感たっぷりに語っていますので是非ご一読ください。

www.withdrawal-civilservice.com