kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

PowerShellと.NET Framework

Facebookでちょっと話題になっていたのでこちらでも。まず大前提としてPowerShellはめちゃくちゃ便利です。しかし、今使っているのはおそらく開発者がちょこっとテストのためとか、ソフトウェアのセットアップのためってことが多いのではないか…とも思います。
PowerShellの想定ユーザーはVisual StudioなどでC#/VB.NETのプログラムを書くほどではないIT運用を行う人なんだろうなとは思います。たとえばExchangeとかSCVMMなどには実行操作をPowerShellのスクリプトとして表示する機能があるので、それをコピペすれば、自分の運用に役立つスクリプトのひな形ができるという寸法です。
PowerShell自身に興味がある人はおそらくPowerShellの仕組みとか、.NET系言語の相互運用のほうに興味が走ってしまって、便利スクリプトとかいまいち作らない…のではないかなと。そういう意味もあって先日のAdvent Calendarでは勤怠時間を採取するスクリプトなんてものを作ってみました。
PowerShellで勤務時間を採取しよう - 新日々此何有哉
こういうスクリプトをちまちま作って会社で共有しています。

  • 特定のミドルウェア向けWindows Advanced Firewallを解除する
  • 特定のミドルウェアが消さないログを定期的に消す
  • Outlookは分割メールに対応していないので、複数のメールを連結して添付ファイルをdecodeする
  • MS Projectで自分に割り当てられているタスクをOutlookに取り込んでタスクにする

とかとか。私一人ならプログラム作ってもいいのですが、ソースが見えるスクリプトでさらっと書くのもいいですね。でも、Roslynが実用化されたらまず間違いなくC#で書いちゃいますけども(^^;。
PowerShell使う上で知っておくと便利な.NET Framework名前空間だとSystem.Diagnosticsとか、System.IO配下とか、System.Net(.WebClient)、System.Data.SqlClient、System.Xmlあたりかな。