コマンドレットのパラメータを列挙してみる。埋め込み型のプレゼンテーションです。勉強会(4/9)には多数の方にお越しいただき、ありがとうございました。PowerShell勉強会は今後も年2回くらいのペースで続けて行きたいと思っていますので、どうぞよろしくお願い致します。新機能と関連OSSのご紹介」のスライドを公開します。前半は以前のものとだいたい同じですが、正式版対応版にアップデートしています。今回は去年から今年にかけて、PowerShell関連ソフトウェアとしてOSS化したものを、まとめて紹介しました。以下は今回紹介したもののリストです。Chefまたデモで用いたサンプルファイルも公開します。このzipにも同梱してますが、PSScriptAnalyzerのカスタムルールはこんな感じで作ります。作り方は、ASTを受け取って、中身をチェックして、ルールに該当するならDiagnosticRecordを返すというのが基本になります。変数に半角英数字以外の文字種が含まれていると警告するカスタムルール。半角英数字以外の文字種が使われています。Test-UsingVarsWithNonAsciiCharacterついでにPesterのサンプルコードも。2つのパラメータを足し算する関数、Invoke-Additionに対するテストコードの例となります。埋め込み型のプレゼンテーションです。新機能」セッションスライドを公開します。5.0の新機能は大体こんな感じにまとめられるかと思います。designなので、今後もまだ仕様変更が入るものと思われます。(逆に仕様に物申すことができるチャンスは今だけ)まだ正式版リリース(今年中?)までに新要素が入る可能性はありますが、全体像はそろそろ見えてきたと思います。現時点でも相当に新要素が追加されており、個人的にはv4→v5はv2→v3の時並のインパクトがあるアップグレードですので、今のうちに予習を始めておくのが良いかと思われます。5の話をする予定です。基本は同内容ですが、発表時点での最新情報を追加していこうと考えています。詳細が決まりましたらまた告知したいと思います。Doorkeeperというわけで、10/11(土)、大阪のマイクロソフト関西支店にて、第4回PowerShell勉強会が開催されます。大阪では2回目ですね。今回は開発者向けのセッションが中心となっている感じです。DSCを用いたリリース認証フローの実装のお話、おおたさんの開発者視点でのPowerShell活用法のお話、私はコマンド(コマンドレット、高度な関数)の書き方についての話をします。今回も東京からぎたぱそさんが参戦して何か話してくれるそうですよ。今回は、LTも募集してます。我こそは、という方はぜひご登壇を!それでは皆さま、10/11にはぜひぜひ、PowerShell勉強会にお立ち寄りくださいませ。PowerShell勉強会@大阪には約40名もの方にお越しいただき、盛況のうちに無事終了しました。中には遠方からお越しの方も数名いらっしゃいました。皆様どうもありがとうございました。PowerShell勉強会は大阪でも今後も継続的に実施していければ良いな、と思っております。私のセッションは「PowerShell『再』入門2014」というタイトルで行いましたがいかがでしたでしょうか。以下にセッションスライドを公開します。PowerShellのこれまで、今、これから、を時系列に紹介してみました。これからPowerShellに触れる方をメインに想定した、ごく基本の話だったので、知っている方には少々退屈だったかもしれないですが、PowerShellの現在の立ち位置を再確認する機会にしていただけたなら幸いに思います。PowerShellの学習方法として、何から手をつけるべきか、どこで情報を得るといいのか、等の話をしてみました。最近よく、PowerShellってどこからやればいいの?ということを聞かれていたというのが、この項目を入れた動機です。たしかにPowerShellはv4になり機能も色々と増え、全体像を把握するのが大変になってきています。その一方で情報(特に日本語)が不足しているのも事実です。そんな状況のなか、初心者の方はどうやってPowerShellを入門していけばいいのか、という道しるべを示せれば良いな、と思いました。いかがでしたでしょうか。(JPPOSH)の第一回PowerShell勉強会が開催されましたが、来たる4/12(土)13:30より、大阪でも「PowerShell勉強会@大阪」が開催されます!場所は阿倍野市民学習センターで、阿倍野駅/天王寺駅/阿部野橋駅が最寄りとなります(あべのハルカスの近くですね)。参加費として500円を集めさせていただきますので予めご了承ください。セッション内容は以下のとおりです。牟田口バージョン1登場から8年目を迎えたPowerShellの現状をまとめ、2014年版のPowerShell入門セッションという形で行なおうと思います。これからPowerShellを扱われる方はもちろん、これまで利用されていた方にも2014年現在のPowerShellの立ち位置の再確認、最新バージョンの4.0新機能等、参考になる内容としたいと思っています。7、8、8.1にも標準搭載され、最初から使えるスクリプト環境としての側面もあります。今回の勉強会主催者でもあるwakaさんに、クライアントサイドでPowerShellを活用するセッションをしていただける予定です。Directoryですよね。Azureというクラウド環境の重要性も増す一方です。Serverにおいてはオンプレもクラウドも、管理にはPowerShellが不可欠です。Server/Azureの管理方法についてセッションしていただける予定です。ぎたぱそさん東京の謎社で日夜PowerShellを用いた運用業務に携わり、Twitterやブログで積極的にPowerShell情報を共有されておられるぎたぱそさんが来阪して、PowerShellによるデプロイについてのセッションをしてくださいます。4.0で登場したDSCについても実際の業務での使いどころ等を語っていただけるのではないかと思います。2014の大阪会場にお越しいただき、ありがとうございました。私のセッションスライドを公開します。前回のエントリーでも書きましたが、DSCについては何度かセッションをやってきており、今回が一応の集大成的なものとなるかと思います。今回はDSCというPowerShell4.0で追加された応用的な内容でしたが、4/12に開催されるPowerShell勉強会@大阪では基礎的なところからセッションをやる予定です。PowerShell勉強会@大阪については後ほど詳しく紹介エントリーを上げます。今回デモをやろうとしたんですが、見事に失敗してしまいました。申し訳ありません!原因としてはHyper-Vにドメインコントローラー(兼、Configuration配布用サーバー)と設定対象サーバーの2台を同一ドメインに所属させていたのですが、手違いで設定対象サーバーからDCへの認証ができなくなっていて、結果、DSC反映時に必要なKerberos認証に失敗したためでした。3.0でも注意深くやらないとダメですね。直前まではうまく動いてたんですけどもね...DCはやはり独立して用意すべきでした本番ではデモに失敗したんですが、環境を再整備して動作することを確認しました。そこで、今回、デモで用いる予定だったスクリプトを一式、公開する事にしました。こちら:dsc_demo.zip使用方法を以下に説明します。すべては無保証なので、必ず、壊れてもいいサーバーを新規で用意してください。デモ環境をHyper-Vの仮想サーバーとしておくと、DSC適用前の状態のスナップショットを取れるのでいつでもデモ実行前の状態に戻せて便利です。R2をGUI有効にしてインストールする。Rollupを適用してGA相当にアップデートする(ビルド番号6.3.9600.16394の状態にする)。両サーバーを同一ドメインに所属させる。両サーバー間でKerberos認証が通りWinRMでリモート接続できることを確認しておく。targetとしてtargetサーバーにリモート接続できるかどうかで確認できます。dsc_demo.zip中に含まれるdscpullフォルダをConfiguration配布用サーバーのC:\直下にコピーする。dsc_demo.zip中に含まれるtargetフォルダを設定対象サーバーのC:\直下にコピーする。Pushモードのデモこのデモでは、dscpullサーバーでDSCをpushモードで実行することにより、「targetサーバーにIISをインストールし、Webサイトを作成し、開始する」という操作を適用します。よって、事前にtargetサーバーにはIISが入っていないことを確認しておいてください。targetサーバーのInstall_Website_Resource.ps1を実行する。この操作により、xWebAdministrationリソースモジュールがtargetサーバーに配置されます。dscpullサーバーのStart_Website_of_Target.ps1を実行する。この操作により、xWebAdministrationリソースモジュールがdscpullサーバーにも配置され、xWebSite等のリソースを呼び出すConfigurationに従ってMOFファイルを生成し、Start-DscConfigurationコマンドレットによって実際にMOFファイルの内容をtargetサーバーに反映させます。※Pushモードの場合、カスタムリソースを利用する際は、実行側と対象の双方にカスタムリソースの事前配置が必要です。Start_Website_of_Target.ps1の実行が終了したら、targetサーバーをチェックして下さい。Siteは停止状態となり、MyWebSiteというサイトが作成され開始されていると思います。http://target/を開いてみてください。targetサーバーの設定を色々と変更して(Webサイトを停止する、削除する、IISをアンインストールする、InetPubフォルダのコンテンツを削除するetc)、再度Start_Website_of_Target.ps1を実行した場合でも、同じ設定に戻ることを確認してください。Serviceをインストールし、PullサーバーとしてMOFファイルを配布できるようにします。続いてtargetサーバーの設定をPullモードにし、dscpullサーバーから設定を定期的に取得、反映させるようにします。(このデモでは「印刷サービス」(プリントサーバー)をインストールするConfigurationをサンプルとして利用しています)dscpullサーバーのInstall_DSC_Service.ps1を実行する。この操作により、xPSDesiredStateConfigurationリソースモジュールがdscpullサーバーに配置され、このモジュールに含まれるxDscWebServiceリソースを呼び出すConfiguration(Sample_xDscWebService)を実行し、Pullサーバーが構築されます。dscpullサーバーのDeploy_Config.ps1を実行する。この操作により、プリントサーバーをインストールするConfigurationからMOFファイル(ファイル名は対象サーバー名ではなく、対象サーバーを識別するConfigurationIDとなる)を生成し、New-DscCheckSumコマンドレットによりチェックサムファイルを出力し、両ファイルをPullサーバーのMOFファイル配布用フォルダにコピーすることで、設定の配置が完了します。targetサーバーのConfig_LCMforPull.ps1を実行する。Manager)設定用のConfigurationからMOFファイルを生成し、Set-DscLocalConfigurationManagerによりMOFファイルを反映し、targetサーバーのLCMがPushモードからPullモードに変更されます。対象サーバーを識別するためのConfigurationIDも定義します。このスクリプトを実行すると処理の最後で自動的に再起動を実行します。(DSCのモード切替は再起動後に反映されます)再起動後、targetサーバーに印刷サービスがインストールされていることを確認してください。Configuration”を確認してください。LCMのConfigurationに指定した間隔で設定が再反映されていること、あるいは新設定をPullサーバーに取得しにいっていることを確認してください。@mutaguchiBooks書籍版。