2015/04/14

JPPOSH(Japan PowerShell User Group)主催の、第5回PowerShell勉強会を5/9(土)に開催します。大阪での開催は3回目になります。会場はMicrosoft関西支店です。

セッションはお昼1時から4セッションあり、PowerShell大阪勉強会主催のwakaさんによる、「スクリプトの書き方」、私による「PowerShell 5.0 新機能」、ALM MVPのPosauneさんによる「C#er的Powershellの使い方」、岩城さんによる「PowerShellで行うOffice365の管理&メンテナンス」とのラインナップになっています。

今回は開発者視点の話が中心になりそうですが、基本的なスクリプトの書き方から実務への応用、そしてそろそろ全貌が見えてきた次バージョンの話まで、幅広く対応できる内容かと思います。ご興味のある方は、ぜひ、ご参加くださいませ。

今回の開催日は、アメリカで開催される大型カンファレンスである、Build 2015およびMicrosoft Igniteの直後ということもあって、私のセッションでは可能な限り両イベント開催中に新しく発表された情報を反映していこうと思っています。

先日発表になったばかりの、Windows Serverのコンテナ実行環境である、Nano Serverの詳細や、その上で動作するPowerShellの話なんかが出てくるんじゃないかなぁと思っていますが、どうでしょうね? お楽しみに。

2014/12/01

はじめに

この記事はPowerShell Advent Calendar 2014の1日目の記事です。

次期バージョンのPowerShell 5.0について、そろそろ情報が出回ってきました。現在のところWindows Management Framework 5.0 Preview November 2014、もしくはWindows 10 Technical PreviewWindows Server Technical Previewに同梱のもので試すことができます。

v5での新機能、改善点は多岐に上ります。OneGet / PowerShellGet / クラス定義 / DSC機能増強 / ODataエンドポイントのコマンドレット化 / zipファイル / シンボリックリンク 等々。詳しくは、リリースノートが一番充実しているかと思います。日本語だとぎたぱそ氏の記事がまとまっているかと思ます。

さて、ここまで挙げた新機能や改善点は、とても順当でまっとうな進化点なのですが、v5にはちょっと異彩を放つ新機能がしれっと追加されています。それが、Auto-Generated Example-Driven Parsing です。

Auto-Generated Example-Driven Parsing とは

CSV、JSON、XMLのような既知のフォーマットではないが、何らかの法則性のあるテキストデータがあるとします。そんなテキストデータは(不幸なことに)割と世の中にあふれていますが、そのままでは(人が読む以外には)利用できないので、データとして扱うには、解析し、レコード(プロパティ:プロパティ値)として再構築する必要があります。

しかしながらフォーマットが既知のものではないため、既存のパーサーを使って解析することはできません。

従来のアプローチだと、このようなデータに対しては、まずユーザー(人間)がデータの法則性を読み取り、その法則をコンピュータに分かる表現(コードや正規表現など)に変換してやる必要がありました。

Auto-Generated Example-Driven Parsing とは、事前にユーザーがテキストデータの一部分のみを取り出し、各項目に対してプロパティ名を指示したデータ(テンプレート)を用意しておくと、元のテキストデータとユーザーが用意したテンプレートから法則性を解析し、元のテキストデータ全体を自動的にテキストデータからオブジェクトに変換してくれる機能です。

Auto-Generated Example-Driven Parsing とはもともとMicrosoft Research で研究されているFlashExtract というデータ解析手法の PowerShell コマンドレット(ConvertFrom-String)による実装になります。ConvertFrom-StringData じゃないですよ。全然別物です。これうっかりしてるとスルーしてしまいそうです。

具体例

たとえば、こんなデータがあったとします。

山内 佳乃 (やまうち よしの)
生年月日...1982/1/27 (32歳)、女性
田畑 真帆 (たばた まほ)
生年月日...1966/4/14 (48歳)、女性
三好 一樹 (みよし かずき)
生年月日...1972/7/10 (42歳)、男性
酒井 幸平 (さかい こうへい)
生年月日...1954/3/1 (60歳)、男性
藤島 恵子 (ふじしま けいこ)
生年月日...1969/5/4 (45歳)、女性
加藤 美優 (かとう みゅう)
生年月日...1986/12/8 (27歳)、女性
金谷 康文 (かなや やすふみ)
生年月日...1983/10/7 (31歳)、男性
岸本 紗季 (きしもと さき)
生年月日...1984/5/16 (30歳)、女性
永野 ケンイチ (ながの けんいち)
生年月日...1961/7/8 (53歳)、男性
小関 三郎 (こぜき さぶろう)
生年月日...1975/1/22 (39歳)、男性
山岸 光 (やまぎし ひかる)
生年月日...1939/2/13 (75歳)、女性
黒谷 恵麻 (くろたに えま)
生年月日...1949/2/13 (65歳)、女性

名前や生年月日が書かれたデータで、一応、法則性はあるようです。が、これをまともにパースしようと思うと、2行ごとに切り出して、正規表現を書いて…と、ちょっと面倒ですね。

ちなみにこのダミーデータ作成にはなんちゃって個人情報を使わせていただきました。CSVで出力した後、以下のようなスクリプトでわざわざ醜く変形しました。

Import-Csv -Encoding Default -Path dummy.cgi|%{"$($_.名前) ($($_.ふりがな))`n生年月日...$($_.誕生日) ($($_.年齢)歳)、$($_.性別)性"}|set-content -Encoding UTF8 -Path dummy.txt

さて、このテキストデータに対し、Auto-Generated Example-Driven Parsingで用いるテンプレートを書いてやりましょう。たとえば、以下のように適当に3件(ここでは3〜5個目のレコード)抜き出して、プロパティ名をつけてやります。赤字が、手動で元データに付与した文字列です。

{Name*:三好 一樹} ({Furigana:みよし かずき})
生年月日...{BirthDay:1972/7/10} ({Age:42}歳)、{Sexuality:}{Name*:酒井 幸平} ({Furigana:さかい こうへい})
生年月日...{BirthDay:1954/3/1} ({Age:60}歳)、{Sexuality:}{Name*:藤島 恵子} ({Furigana:ふじしま けいこ})
生年月日...{BirthDay:1969/5/4} ({Age:45}歳)、{Sexuality:}

みて頂ければ分かると思いますが、基本は、各データ項目に対して、{プロパティ名:データ}のように指定してやるだけです。主キーとなるデータ項目にはプロパティ名の後に「*」をつけてやります。こうやって作ったテンプレートをtemplate.txtと名前を付けて保存しましょう。

元データとテンプレートが揃ったので、あとは以下のようにしてConvertFrom-Stringコマンドレットを実行するだけです。

image

テンプレートを元に、元テキストに含まれるすべてのデータが、プロパティ値を持ったオブジェクトデータに変換されていることが分かるかと思います。これちょっとすごくないですか?

まとめ

Auto-Generated Example-Driven Parsingは個人的には、非常に面白い機能だと感じています。コンピュータに対して、「手本見せるよ、これはこう、これはこう。わかった? じゃ、あとは同じようにまとめといてね!」というのができるようになったわけで、ちょっと未来を感じました。

研究所レベルの研究成果を、製品として実装した初の例が、PowerShellだったというのも面白味を感じます。

ただ、CSVでもJSONでもXMLでもない、わけのわからない謎フォーマットで保存されたテキストデータを解析しなきゃならない事態というのは、そもそも不幸な状況であることも、また事実かと思います。

ConvertFrom-Stringは、そんな訳の分からないものを撲滅して、今度こそまともなフォーマットのデータに変換して保存するための、最終兵器のようなものかもしれません。

なお、Auto-Generated Example-Driven Parsingでは他にもプロパティに型を指定したり、部分的に正規表現を用いたり、階層構造を持つデータにも対応してたりと、かなり色々なことができるようになっています。ぜひ、v5環境を整えて、ConvertFrom-Stringを試してみてください。

さてさて、PowerShell Advent Calendar 2014、今年は参加者が少なく、完走はかなり危ぶまれますが、できるところまで行きたいですね! これをお読みのあなたの記事が読みたいです! ぜひ、ご参加いただけると幸いです。

2012/06/10

4/24のWindows Developer Days (WDD) 2012と、6/9のCommunity Open Day (COD) 2012で私が行ったPowerShell 3.0のセッション資料とビデオが公開されました。ご参加いただいた方は復習用に、ご参加いただけなかった方には参考資料としてお役にたてれば幸いです。

WDD2012とCOD2012、そして6/2のわんくま同盟大阪勉強会#49にお越しいただいた皆様、ありがとうございました。改めて御礼申し上げます。

2012/04/24 Windows Developer Days 2012

非 Windows ユーザーにもお勧め Windows PowerShell 3.0 概説

Windows 8 および Windows Server "8" には Windows PowerShell 3.0 を含む Windows 管理フレームワーク 3.0 が組み込まれ、システム管理機能が大幅に強化されました。このセッションでは PowerShell 3.0 を用いた Windows サーバー管理・自動化の概要をデモを交えてご紹介します。

※PowerShell 3.0 を用いたリモートサーバー管理の話とデモが中心です。

セッション資料・ビデオ (Windows Developer Days 2012 | Channel 9で公開されています)

2012/06/09 Community Open Day 2012

PowerShell 3.0 概要

PowerShellはWindows Serverの管理、自動化の要となるシェル・スクリプト環境です。今年中にもリリースされるWindows Server 2012とWindows 8の登場とともに、PowerShellはバージョン3.0にアップデートされます。今回のセッションではPowerShellの基本を軽くおさらいし、3.0になって追加された新機能と改善点をご紹介します。

※PowerShell 3.0 の新機能と改善点を網羅したセッションです。

セッション資料 (SlideShare) セッションビデオ (Ustream)

2012/04/04

このたび、来たる4/24・4/25に東京でMicrosoftにより開催される、開発者向けWindows 8紹介イベント「Windows Developer Days」(WDD)にスピーカーとして参加し、PowerShell 3.0 に関するセッションを行うことになりました。

私のセッションはTrack 3 (Server & Cloud session) 1日目の16:00〜16:45 SC-015「非 Windows ユーザーにもお勧め Windows PowerShell 3.0 概説」となります。セッション概要は以下の通りです。

Windows 8 および Windows Server "8" には Windows PowerShell 3.0 を含む Windows 管理フレームワーク 3.0 が組み込まれ、システム管理機能が大幅に強化されました。このセッションでは PowerShell 3.0 を用いた Windows サーバー管理・自動化の概要をデモを交えてご紹介します。

ワークフローを初めとするリモート管理機能のデモを実機で行う予定です。より洗練され高機能化したWindows サーバー管理の手法をご覧いただけるかと思います。セッションタイトル通り、「非 Windows ユーザーにもお勧め」のセッションでして、Windows サーバーもここまでシェル&スクリプト環境が進化し、UNIX系サーバーとは若干異なったWindowsならではのアプローチで便利に利用できるようになったところを是非見ていただこうと思っています。

また開発者向けのイベントということで、開発者の方にもこれから特にサーバーアプリケーションでは主流となる、PowerShellベースのWindows アプリケーションの概念と構築手法についてご提案させていただければと思います。

8セッションが同時進行で行われるのですが、参加者の方でもしご都合が付きましたらぜひ、聞きに来ていただけると嬉しいです。

またWDDは4/18までに参加登録すれば早期割引料金で参加できますので、まだ登録されていない方はご参加をご検討いただければ幸いです。

何気にMicrosoft公式イベントで、社員の方にまじってセッションをするというのは初の経験でドキドキしてます。当日はよろしくお願いします。

2012/03/07

3/24(土)に広島の日本マイクロソフト株式会社中四国支店で第27回.NET 勉強会 / ヒーロー島が開催されます。今回のテーマは「ハンズオンでPowerShellに触れてみよう」ということで、丸一日かけてPowerShellセッションとハンズオンが行われます。

.NET 勉強会 / ヒーロー島 - 第27回勉強会

私はこのうちハンズオンのスピーカー(進行?)を担当させていただきます。ハンズオンの前に行われるセッションにはマイクロソフトエバンジェリストの安納さんがスピーカーをされ、PowerShell概要、そして3.0のお話をしていただきます。

ハンズオンというのは通常のセッションのようにスピーカーの話を聴くのがメインのスタイルではなく、講師の指示にしたがいながら実際に自分のノートPCで操作を行い、学習を進めていく方式になります。今回はPowerShellの基本操作を学ぶハンズオンにしていきたいと考えています。

ハンズオンに参加していただくにはノートPCが必須になります。ぜひ、ご自分のノートPCをお持ちいただきますようお願いします。Windows 7でしたら特に前準備は必要ありません。Vista, XPの場合は.NET Framework 3.5 sp1以上とPowerShell 2.0をあらかじめインストールしておいていただきますようお願いいたします。Windows 8 のプレビュー版やPowerShell 3.0 beta版をさっそくインストールされている方もそのままご参加いただけます。

ハンズオン内容に関しては現在構成中ですが、もし「これをやってみたい!」というのがありましたらコメント欄やTwitterなどでご連絡いただければ、参考にさせていただきたいと思います。

お近くの方でご興味がございましたら、ぜひご参加ください!丸一日PowerShell漬けの勉強会というのはなかなかないですので!スタートメニューにある謎の(?)プログラム、この機会に触ってみませんか!それとエバンジェリストによるPowerShell 3.0話を聴けるめったにないチャンスですよ!

というわけでみなさまのご参加、お待ちしております。

2012/01/16

SqlWorld :: SQLWorld★大阪#8

というわけで、1/28(土)開催のSQLWorld★大阪#8で「PowerShellを使ったSQL Serverの管理」 というタイトルでセッションをさせていただきます。

SQL Serverはあまり得意分野ではないのですが、PowerShellによる管理の話であれば参考になる話をさせていただけるかと思った次第です。当日はSQL Serverを常日頃管理されている方々と意見・情報交換をさせていただきたいと思っています。どうぞよろしくお願いします。

私のセッションを含めてSQL Serverにまつわる5セッションが予定されています。ご興味がある方はぜひお誘いあわせの上、ご参加ください。会場は西中島のクロノスさんのところです。詳しくは冒頭のリンク先をご覧ください。

2011/11/14

PowerShell Advent Calendar 2011というイベントを12/1より開催します。
こちら:PowerShell Advent Calendar 2011 : ATND

現在、参加者募集中です。

以下はイベント告知ページのコピペです。

概要

今年はPowerShellもAdvent Calendarをやりましょう!
Advent Calendarとは技術系コミュニティで行われるイベントの一つで、ある特定技術分野をテーマに、12/1から12/25までの25日間、参加者が交代で毎日ブログ記事を書いてクリスマスを迎えるイベントです。

ルール

PowerShell Advent Calendar 2011ではその名の通り、Windows PowerShellに関する記事を参加者みんなで書いていきます。Tips、コード、等々、PowerShellに関する内容であれば何でもOKです。基本的にATNDの参加表明順が執筆担当日になります。たとえば5番目に参加表明した方は12/5の記事を執筆します。参加者の方は担当日に記事をご自分のブログに書いていただき、そのURLをコメント欄に書いてください。都合で担当日に投稿できない、担当日を変えてほしいなどがありましたらコメント欄でお願いします。

参加者が25人に達した時点で締切りです。逆に期日までに参加者が現れない場合は、すでに執筆した参加者が再度執筆しても良いこととします(その場合はコメント欄で宣言を)。

あなたの参加、お待ちしています!
ぜひがんばって完走させましょう!

参考記事

ここまでコピペでした。

まだ参加希望者が少ないのですが、ぜひぜひ、ご参加くださいませ。お題はPowerShellがからんでいれば何でもOKです。PowerShellを触ってみた感想とか、試しにこういうコマンドを実行してみたorコードを試しに書いてみた、など何でも結構です。Advent Calendarはゆるふわなイベントなのであまり身構えず気軽にご参加いただけると嬉しいです。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2011/11/14/212019.aspx

2011/07/02

昨日、Microsoft MVP for PowerShellを再受賞しました。

これでMVP受賞は7回目になり、MSMVPとして7年目になりました。

現在はPowerShellはじわじわと浸透しつつある時期なんじゃないかと思います。最近のMicrosoftのテクノロジ、特にWindowsサーバーを使うにはPowerShellの知識は必須になりつつあります。Windows AzureやOffice 365といったクラウドもPowerShellで管理することができます。もちろんクライアントOSで使うのも便利です。

そんなPowerShellの情報をこれからも発信していきたいと思っています。よろしくお願いします。

8/6にはわんくま大阪勉強会#44で「PowerShell基礎文法最速マスター」と銘打ってセッションをやります。これは以前このブログで同名エントリとして上げたもののオフライン版となります。ご興味のあるかたでご都合のつくかた、是非ご参加ください。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2011/07/02/200374.aspx

2010/05/20

PowerShell的システム管理入門
第3回 ファイル/レジストリの操作

http://www.atmarkit.co.jp/fwin2k/operation/pshsys03/pshsys03_01.html

よろしくお願いしますー。

ファイル、フォルダ操作、テキストファイル読み書き、レジストリ操作などの話題です。PSプロバイダという仕組みに基づいていろいろなリソースを同じコマンドレットで扱えるところがポイントですね。

そして5/29のわんくま大阪勉強会でPowerShellのコマンドレットとPSプロバイダを開発する話をやります。ファイル、レジストリ、Active Directory、そしてTwitter…。ご興味のある方はぜひご参加ください!

元記事:http://blogs.wankuma.com/mutaguchi/archive/2010/05/20/189218.aspx

2010/01/20

第 19 回 Admintech.jp 勉強会(2/6,東京)でPowerShell 2.0についてしゃべります。東京でPowerShell 2.0を話すのは初めてです。ご興味のある方はぜひお越しください!(前回、大阪でしゃべったのと同様の内容です)

他にも、最近猛威をふるっているガンブラーについてのセッションや、Hyper-Vのセッションもあります。皆様、ぜひぜひお誘い合わせのうえふるってご参加ください!

2/6は名古屋ではわんくま勉強会があり、ここでもPowerShellセッションがあります。なんと全国2箇所で同日にPowerShellセッションがあるというめずらしい日なのです。こちらもぜひどうぞ。

なお、むたぐちの今後の予定ですが、3/13名古屋わんくま勉強会でPowerShellネタをしゃべります。5/29大阪わんくま勉強会ではWindows デスクトップ/サイドバー ガジェットの話をやろうかなと思っています。全国展開です。よろしくどうぞ。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2010/01/20/185203.aspx

古い記事のページへ |


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

Twitter

Books