しばたテックブログスマートフォン用の表示で見るしばたテックブログPowerShellを中心に気分で書いている技術ブログです。~サクラサク~で久しぶりに勉強会で登壇しました。clrh.connpass.com勉強会について登壇した時間以外は受付か懇親会の手配をしていたので他のセッションは全然見れませんでした...スイマセンいつも通りえんぷらさんがTogetterにまとめてくれてるのでこちらで勉強会の雰囲気は伝わるかと思います。togetter.com発表資料もこちらにまとまってますのでぜひご覧ください。おひげ「"オブジェクト"から学ぶPowerShell」というタイトルでPowerShellのシェルとしての機能や仕組みついて説明させてもらいました。セッション中に出したソースコードについてはGithub上で公開しています。github.com全体を通して伝えたかったのは、PowerShellはコマンドプロンプトや*shといったテキストベースのシェルとは違いオブジェクトベースであり、それがPowerShell独特の仕組みや機能につながっているという点になります。以下、セッション後に頂いた質問やTwitterでの反応について幾つか補足しておきます。(ATS)の詳細については以下の記事に詳しく記載されています。英語の記事ですが気合で読むとPowerShellへの理解が深まると思います。このへんの話も後日ブログにまとめていきたいですね。blogs.msdn.microsoft.comまた、プロパティの拡張についてはあえとすさんのこちらの記事がとても詳しいので必見です。tech.blog.aerie.jpストリームについてストリームについてはこの過去記事の内容をベースにしています。stknohg.hatenablog.jpパイプラインについてパイプラインについてはサラッとした説明で終わらせてしまいましたが、パイプラインはPowerShellのキモであり、そしてかなり独特の挙動をします。時間が足りずセッション中には使えなかったのですが、ぜひ以下のサンプルコードを動かして実際の挙動を確かめてみてください。Command2サンプルを動かすとこんな結果になります。Begin、Process、Endブロックがどういった順番で呼ばれるか確認してください。オブジェクトの出力についてオブジェクトの出力についてはこの過去記事の内容をベースにしています。stknohg.hatenablog.jpFormat-*およびOut-*を明示、または省略した場合の動作の説明が少し分かりにくかったと思うので補足の図を描きました。Out-GridViewだけは入力データに書式指定する前のオブジェクトが必要なため例外的な挙動をするので注意が必要です。Serverの構築と設定ちょっとした定型処理VBScriptの置き換えあたりが多いです。DSCは実践投入しておらず秘伝のスクリプトファイルで頑張っている感じです。2012から組み込みコマンドレットの数も圧倒的に増えほとんどの作業をNon-GUIで行う事ができる様になったので生産性はいい感じに上がっています。これだけでも十分PowerShellを学ぶコストに見合うだけの利益を得ています。加えて個人的にPowerShellを絶対使うべきだとお勧めしたいのはWMIを扱う時ですね。従来WMIをプログラムから扱うにはVBScriptやC#を使っていたと思いますがそれなりに面倒だったかと思います。対してPowerShellの、特にGet-WmiObjectやGet-CimInstanceコマンドレットのお手軽さは圧倒的です。最後に久しぶりの登壇で死ぬほど緊張しましたが話せて良かったです。この発表の内容で少しでもみなさんのPowerShellに対する理解を深めることができれば幸いです。対するさらなる補足です...2016-01-17Write-HostとWrite-Outputの表示の違い前回のエントリの補足です。広告スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。