本記事は、先日作成したAzure ADからメールエイリアス一覧を抽出し、条件に該当するエイリアスのみファイルに列記するスクリプトのサンプルコードについて説明しています。
事の発端は、職番の先輩から、「メールエイリアスがカオス過ぎて、エイリアスinエイリアスinエイリアスinエイリry」との相談があり、その悩みを解決すべく不慣れなPower Shellを勉強し、整理を行うための元データを用意することでした。
前提条件や、コードの意味合いなども解説したいと思います!
私の職場同様にエイリアスがカオスになっている方は、抽出条件やパスを少し変えれば汎用的に使えると思いますので、ぜひお試し下さい。
エイリアス抽出サンプルコード
事前準備
事前にAzureADのモジュールインストールと、「.NET Framework」3.5の有効化を行う必要があります。
モジュールのインストールは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等と比較するとコードが手短にでき、書きやすいのでおススメです。
調べていく過程で色々な処理ができることが分かったので、今後も勉強して便利に使えるコードを開発していきたいと思います!
マニアックなものはともかく、汎用的で需要ありそうなものが出来上がりましたらまた公開させていただきます。
また、本記事を読んで、
「ためになった!」
「こいつなかなか面白いな!」
と思っていただけましたら、是非是非私のTwitterアカウントのフォローをお願いします!(笑えるネタ、ためになる情報を定期発信しています♪)
※Twitterアカウントは、私のプロフィールに表示されている「@manipulator753さんをフォロー」を押すとフォローできますので、よろしくお願いいたします。
ここまでお読みいただきありがとうございました!
下の記事はLinuCの合格体験記です。
www.withdrawal-civilservice.com
下の記事は、ADのグループポリシー関係の記事です。
www.withdrawal-civilservice.com
下の記事は、昔起きた障害を臨場感たっぷりに語っていますので是非ご一読ください。