2007/09/24

Windows Server World Online - 月刊Windows Server World 最新号の案内
http://www.windows-world.jp/mag/ 

システム管理に使えるスクリプトを作る!

PowerShellスクリプティング・テクニック【実践編】


 本特集の基本編(2007年10月号掲載)では、新たに登場した強力なコマンドシェルである「Windows PowerShell」(以下、PowerShell)のスクリプトを構成する変数や関数、各種制御フローの使い方と、スクリプトを作成する際のポイントを紹介した。続編となる今回は、実際にシステム管理作業に使えるPowerShellスクリプトを例に、PowerShellでのスクリプトの書き方について、より実践的に解説していく。また、過去にVBScriptで作成したスクリプトをPowerShellで使う方法など、“PowerShell使い”を目指す読者必見の情報も満載している。本特集で紹介するサンプルスクリプトを参考にしながら、ぜひ自分でもPowerShellのスクリプト作りに挑戦してみてほしい。

Windows Server World 11月号にPowerShellの記事を書きました。もしよかったら本屋さんで手に取ってみてください。前にブログでやったやつのリファイン、テクニック解説つきバージョンです。ほかの方も何人か執筆されているのでそれも要チェックですよ!

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/09/24/97718.aspx

2007/05/21

.NET Frameworkをバリバリ使ってC#ライクに書けばわりと見やすいスクリプトが書けるが冗長である。コマンドレットをパイプでつないだり各種演算子を使うと見にくいが簡潔に書ける。
これが本題。

しかし前者のようなスクリプトはC#で書いちゃえばいいじゃんという話だ。csファイルに、コンパイルして実行するVBSでも関連付けておけばよいでしょう。js(JScript.NET)ならクラスを書かないでも大丈夫。COMを使うならスクリプトはWSHでもいい。

そう考えるとやはりPowerShellはコマンドレットとパイプを駆使するのが本道のように思う。ただ、どこまで込み入ったものを書くのか。重要なのは可読性と簡潔性のバランスだ。パイプを多用すれば簡潔だが読みにくい。パイプを使わなければ冗長になる。そのあたりをうまく調整していくのがPowerShell使いの課題だろう。

さて、込み入ったスクリプトの究極例は、込み入ったことを一行のスクリプト(ワンライナーという)にすることだ。これには通常のプログラミングとは違い、頭の体操が必要になってくる。しかも後でみると自分でもわからなかったりする。

なので、保存して実行するならワンライナーにする必要はないように思う。冗長でもわかりやすく書くほうがいい。ワンライナーはあくまでコンソール上で手で打ち込むことに意義があるのではないか。

だが、そのスキルを管理者は身につけるべきなのか?

現実的には、コンソール上でコマンドレットを2,3個のパイプで繋ぐ程度が限界なのではないかと思う。ワンライナーをその場で書くのは相当なスキルが要求されるように思う。ただ、幸いなことにPowerShellにはfunctionやfilterを記述したスクリプトファイルをプロファイルとして読み込むことができるので、込み入った処理はあらかじめ関数化、フィルタ化しておくとよいだろう。そのときはワンライナーである必要はないのは先に述べたとおり。

でもPowerShellのワンライナーを極めた人を見てみたい気もする。UNIX系ではいますよね。私?無理ですよw

というわけでPowerShellスクリプトの考察でした。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/05/21/77517.aspx


Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー

Twitter

Books