この記事は、 Spreadsheets/Excel Advent Calendar 2018 - Adventar の9日目の記事です。
ActiveDirectoryについて
ActiveDirectoryをみなさんはご存知であろうか。
Active Directory (アクティブディレクトリ) とはマイクロソフトによって開発されたオンプレミスにおけるディレクトリ・サービス・システムであり、Windows 2000 Serverから導入された、ユーザとコンピュータリソースを管理するコンポーネント群の総称である。なお、クラウドコンピューティングにおけるディレクトリ・サービス・システムであるAzure Active Directoryと区別する場合、オンプレミス Active Directoryと表記することもある。
以後、ActiveDirectoryをADと表記する。社員のアカウント管理の中心にADがある組織では、入社時にADアカウント作成を行うこととなる。ADアカウントの作成は非常にめんどくさい。項目名も慣れにくい。samAccountNameとか、User Principal Nameとかである。
概要
社員番号、メールアドレスがほぼ一意に決まる環境があり、入社する人が発生したタイミングでActive Directoryのアカウントを作成する必要があった。これまではエンジニアが入社のたびに呼ばれぽちぽちと作成をしていた。ここを自分が見ることになったタイミングでアカウント管理に使っているスプレッドシートから、ボタンをポチッとしたらCSVをダウンロードでき、このCSVをPowerShellに食わせるとさくっとADアカウントたちを作成できるようにした。というのが話のあらましである。
なお、エンジニアじゃない管理者に操作方法を教え、それ以後はその人の操作のみでアカウント作成が完結するようになった。
詳細
まあ詳細と言いつつ、過去の環境なので実際のコード(スプレッドシートのGoogleAppScriptや、PowerShellのワンライナーも)は自分すらもう見ることができない。とはいえ、いくつか工夫していた点があったので紹介したいと思う。
カスタムメニューと、選択した行のみcsv出力していた件
Custom Menus in G Suite | Apps Script | Google Developers
上記のように、スプレッドシートの画面上にCustom Menusを追加することが出来る。
アカウント一覧のスプレッドシートであったため、新しいアカウントは下に下にと追加されていくことになる。ADアカウント作成は、新しい人の分だけをやりたい。なので新しい人たちの行を複数行選択したうえでCustom Menusから、CSV出力を行うようにプログラミングしていた。CSVの出力先はGoogle Driveのマイドライブである。
CSVのファイル名も決め打ち
Google Driveのマイドライブに出力されたCSVは、たしか毎回同じ名前だったと思う。そのファイルを、リモートデスクトップ先の所定の場所にコピーしたうえでPowerShell実行をしてもらっていた。そのファイルは、入社のたびにあたらしいものが出来上がるが、古いファイルを残しておく必要もないので毎回上書きしてもらっていた。こうしたことで、PowerShell側に書いたファイル名は変更する必要がない状態になった。
効果
入社に関する情報を扱う管理者がスプレッドシート入力をして、その流れでADアカウント作成まで自力でできるようになった。何か困ったことがあるときに呼ばれるくらいだったので、管理者もこちらもかなり負荷が下がった。
とはいえ、本当はOktaなどアカウントをつくり、そこからプロビジョニング機能で各種アカウント整備を行うのが現代の流行りであろうことはわかっていました。今回に関しては、そこまでの時間もお金も権限もなかったため、このような解決の仕方をしたのであった。
まあ、いかにも詳細に手が届かないブログではあるのだが、こういったこともできますね。ということでご理解いただけるとありがたい。