本記事では、先日作成したAzure ADからメールエイリアス一覧を抽出し、条件に該当するエイリアスのみファイルに列記するスクリプトのサンプルコードを提供します。
事の発端は、職番の先輩から、「メールエイリアスがカオス過ぎて、エイリアスinエイリアスinエイリアスinエイリry」との相談があり、その悩みを解決すべく不慣れなPower Shellを勉強し、整理を行うための元データを用意することでした。
合わせて前提条件や、コードの意味合いなども解説したいと思います!(^^)
私の職場同様にエイリアスがカオスになっている方は、抽出条件やパスを少し変えれば汎用的に使えると思いますので、ぜひお試し下さい♪
サンプルコード
事前準備
事前にAzureADのモジュールインストールと、「.NET Framework」3.5の有効化を行う必要があります。
設定手順については、こちらのサイト様がわかりやすくまとめているので、参考にしてみてください♪
※注意点ですが、MSのページへのリンク切れを起こしています。モジュールのインストールはPowerShellを管理者実行し、コマンドで実行することができますのでそちらの手順で実施してください。
コード解説
o365認証情報ファイル生成
1行目で変数に認証情報を格納し、2行目でパスワードをSecure-String型でdatファイルに出力しています。
コードを実行すると、
ダイアログが表示されますので、AzureADに接続可能な認証情報を入力してください。
AzureADメールエイリアス抽出
2行目で先ほど生成したdatファイルからパスワードを読み込み変数に格納し、
5~9行目でAzureADへの接続処理を行っています。
この際、o365へのサインインを求める画面が表示されますので、認証情報を入力します。
12~14行目でAzureAD上に存在する全エイリアス情報を取得し、一旦ローカルに出力した後、出力したデータを変数に取り込んでいます。
※取得したデータの内容を確認するためにCSV出力を行っています。データ出力不要でしたら直接変数に取り込んでもよいです。
18~21行目の処理は、先ほどの全エイリアス情報から、「Objectid」をキーとして、エイリアス内のメンバーを取得し、変数に格納します。
22~25行目の処理では、エイリアスのメンバー内に特定の文字列が含まれる場合(検索対象のアドレス)、変数にメールアドレスを格納します。
エイリアスの数だけ処理をループさせ、28行目で条件に該当したエイリアスの一覧としてCSVデータを出力させています。
22~25行目を要件に応じて変更することで、様々な抽出条件に対応できますので、汎用的に利用してください。
まとめ
PowerShellは勉強してみての感想ですが、Linux系のシェルに類似性があり、VBS等と比較するとコードが手短にでき、かなり書きやすいのでおススメです。
調べていく過程で色々な処理ができることが分かったので、今後も勉強して便利に使えるコードを開発していきたいと思います!
マニアックなものはともかく、汎用的で需要ありそうなものが出来上がりましたらまた公開させていただきます♪
ここまでお読みいただきありがとうございました(#^^#)
↓LinuCの合格体験記です♪よかったらこちらも読んでみて下さい
www.withdrawal-civilservice.com
↓主に企業の情シスさんへ向けた参考情報です
www.withdrawal-civilservice.com
↓昔起きた障害を臨場感たっぷりに語っていますw
www.withdrawal-civilservice.com