最近 PowerShell のお勉強に力を入れています。
対象は主に Active Directory の管理。

それとは別に、Office 365 管理の文書を読んでいると Exchange の管理なんかにも PowerShell がバンバン搭乗してくる。
たしか Windows Server 2008 あたりから標準搭載されたんだっけ?
随分と不勉強な期間を過ごしてしまったものだ。。。

とりあえず Windows 8.1 の Active Directory 管理センターが生成するスクリプトを見て勉強中。
ユーザー アカウントを新規作成するだけでも 4つぐらいのスクリプトを流しているみたい。
  1. 基本的な項目を指定してアカウントを作成する。
  2. セキュリティ関連の設定をする。
  3. アカウントを有効にする。
  4. 次回ログオン時にパスワード変更を強制するようにする。

みたいな。
最初の New-ADUser コマンドレットにもう少し作業を集約できやしないかね。

あとは作成したスクリプトの中に値を指定していく方法を考えなくちゃね。
ユーザーを作成するケースは 3種類程度で、ケースごとに指定する項目が若干増減する。
ユーザーの情報を変更するケースも何種類かに限られる。
所属が変わる。
社内権限が変わる。
PC へのログオンを禁止する。 またはその逆。
メール アドレスが変わる。 (外部の POP3 なので連動しない)
削除のケースは一つだけ。 単純に削除するだけ。

この作業をするためのツールを自作するにしても、汎用的な作業に使えるようなものになってしまうと車輪の再発名になってしまうので、上に挙げたような実際に起こるケースを起点にすればいいのかな。

何らかの UI を作ったとして、入力したものを最終的に PowerShell に流すにはどうしたらいいのかな。
パイプを駆使すれば 1行のコマンドで済むだろう。それなら Shell で PowerShell を起動してコマンドを引数で与えれば大丈夫かもしれない。
コマンドが複数行になってしまう場合はどうだろう。 スクリプトファイルを生成してから渡せばいいのかな。

というか UI の言語から直接 PowerShell をコントロールすることはできるのかな。
UI は何で作ればいいんだろうか。
Windows フォーム? 今更だなぁ。。。
今の主流派 WPF なのかな?
Windows フォームの開発者たちは既に WPF を習得しちゃったのかな。 MVVM とか書籍を読んでも概念ばかりでよくわからないよ。