PowerShellはぜひマスターしよう

PowerShellとは

PowerShellはマイクロソフトがWindows環境で提供する最新のシェルです。対話型のシェルとしても使えますし、スクリプティング環境としても使えます。本格的にオブジェクト指向を取り入れていますし、.NET Frameworkを利用することができるので、かなり強力な環境です。C#でできることなら何でもPowerShellでできるわけですね。

また、さまざまな環境で利用できます。Windows XP, Windows Server 2003以降のすべてのOSで利用できますし、Windows Server 2008以降であれば(おそらくすべてのOSに)標準搭載されます。

また、「スナップイン」を追加することでできることがどんどん増えていきます。マイクロソフトはExchange Server 2007以降のサーバー製品はすべてPowerShellのスナップインを提供する意向を表明しているので、Exchange Server 2007以降に登場するすべての製品のすべての操作がPowerShell上から行えることになります。

PowerShellの何がいいのか

これは、管理者にとってはものすごく大きな変化です。サーバーを導入して、設定を変更して…ということを今までは(ほぼ)すべてGUIで行っていました。これがWindowsの長所であったのですが、同時に短所でもありました。設定値がどうなっているか知りたかったら、GUIツールですべての項目をクリックしてまわって調べないといけませんでしたし、同じ環境を作ろうと思ったら、すべての設定を全部記録しておいて、それを一からすべてGUIツールをつかってマウスでカチカチ設定して回らなければいけませんでした。

それがPowerShellに移行されれば、PowerShellのコマンドを全て記録しておくことで設定の履歴を残すことも非常に簡単ですし、たとえば検証環境で実行したコマンドを本番環境で流し込むだけで構築完了、というようなこともできるようになります。設定が一部漏れていて、検証環境と本番環境で挙動が異なってしまい、すべてのパラーメーターを確認し直す…というようなことが頻繁にあった今までのことを考えると夢のような話です。

また、今までGUIツールで手作業でやっていたら1日かかっても終わらないようなことも、PowerShellなら1行で簡単にできるのが当たり前です。「Exchangeのメールボックスのうち、使用容量が80%以上のメールボックスで、かつきちんと使われているもの(最終ログオン日時が1週間以内のもの)だけ、メールボックスの容量を1.5倍にして」なんて言われて、それをGUIツールでやろうと思ったら、10個、20個ならいいですけど、100個、1000個、1万個に対して…となったらもう手作業ではやっていられませんよね?PowerShellならコマンドを1行書けばおしまいです。

いつからPowerShellが活躍するのか

惜しいのは、Windows Vistaで標準搭載にならなかったことですね。WSHの時もそうでしたが、サーバーはいいとしても、結局クライアントの管理を全てPowerShellで完結させようと思ったら、やはり標準搭載の環境でなければハードルが高すぎるのです。これが現在でもまだDOSが使われている一番大きな原因でしょうし、WSHが便利な理由です。そういう意味ではWindows Server 2008、Windows 7からPowerShellが標準搭載されるのは非常に嬉しいことです。

サーバー管理ではすでにPowerShellが使いこなせることはすでに必須条件になりつつあります。クライアント管理に関してはまだまだ先の話にはなると思いますが、数年後にはPowerShellが当たり前の時代が来ると私は思っています。いまのうちからPowerShellに馴染んでおくのがWindows管理者として今後も活躍できるための必要条件になると思います。

ということで、このブログでもPowerShellのことも書いていこうと思っています。お付き合いください。

子供3人。家族優先。都内SIer勤務。Windows系中心のインフラよりの何でも屋。脱原発。 Microsoft MVP for Cloud and Datacenter Management.

コメントを残す

メールアドレスが公開されることはありません。