PowerShell で Open XML ドキュメントを作成する

この投稿は PowerShell Advent Calandar 2011 の15日目の記事です。

前回の投稿 PowerShell でインストール済みのソフトウェアを調査する では、Windows にインストールされているソフトウェアのリストを PowerShell を利用して CSV 形式のファイルへ出力をしました。

今回は、処理の結果を Office Open XML 形式のドキュメントに出力する方法を紹介します。

準備

PowerTools for Open XML を利用すると、Open XML 形式のドキュメントを PowerShell から簡単に扱うことができます。

PowerTools for Open XML は .NET のソースコードとして配布されるため、バイナリーを得るために各自でコンパイルを行う必要があります。

  1. Open XML SDK 2.0 for Microsoft Office をインストール
    PowerTools for Open XML は Open XML SDK 2.0 をベースに構築されるため、予めこの SDK をインストールしておく必要があります。
  2. PowerTools for Open XML をダウンロード
  3. PowerTools for Open XML をコンパイル
  4. System32\WindowsPowerShell\v1.0\Modules フォルダーに “OpenXmlPowerTools” フォルダーを作成
    1
  5. コンパイルして出来上がった “OpenXmlPowerTools.dll” と “OpenXmlPowerTools.dll-Help.xml” を 4. で作成した “OpenXmlPowerTools” フォルダーにコピー
    3
  6. (これが初めての外部コマンドレットの実行であれば)PowerTools for Open XML が提供するコマンドレットの実行を許可するよう Set-ExecutionPolicy Unrestricted を実行
    2
  7. PowerTools for Open XML のモジュールをロードするため Import-Module OpenXmlPowerTools を実行
    4

コード例

Get-WmiObject -Class Win32_product –ComputerName “PC5” | Select-Object Name, Vendor | Export-OpenXmlSpreadsheet -OutputPath c:\InstalledSoftwareList.xlsx

5

解説

Get-WmiObject -Class Win32_product –ComputerName “PC5” | Select-Object Name, Vendor

この部分の解説は前回の記事 PowerShell でインストール済みのソフトウェアを調査する をご参照ください。

Export-OpenXmlSpreadsheet -OutputPath c:\InstalledSoftwareList.xlsx

PowerTools for Open XML が提供する Export-OpenXmlSpreadsheet コマンドレットにより、渡されたプロパティをスプレッドシート、つまり Excel 形式で出力します。
–OutputPath オプションで出力パスを指定できます。

8

出力されたファイルの拡張子を .zip に変更して内部を調査してみると、Open XML 形式となっていることを確認できます。

9

以上です。

Posted by Ryosuke Uemoto

PowerShell でインストール済みのソフトウェアを調査する

この投稿は PowerShell Advent Calandar 2011 の5日目の記事です。

Windows にインストールされているソフトウェアを調査する際に、最も手軽な手段は コントロールパネル –> プログラム –> プログラムと機能 の利用です(Windows 7 の場合)。

1

しかし、この方法では毎度毎度目視による確認が必要となり、作業の省力化は実現できません。

規模の大きな組織であれば、こういったソフトウェア資産管理の自動化・効率化を目的に「資産管理システム」の導入を検討します。
ただ、資産管理システムは高価であることが多く、中小の組織には導入のハードルが高いのも事実です。

そこで、PowerShell を利用して Windows にインストール済みのソフトウェアを再利用しやすいかたちで取得する方法を紹介します。

コード例

Get-WmiObject -Class Win32_product –ComputerName “PC1” | Select-Object Name, Vendor | Export-Csv c:\InstalledSoftwareList.csv -encoding Default –NoTypeInformation

2

解説

Get-WmiObject -Class Win32_product –ComputerName “PC1”

PC1 というコンピュータ名の Windows から、Windows インストーラによってインストールされたソフトウェアに関する情報を取得します。
PC1 では WMI Windows インストーラ プロバイダ が有効になっている必要があります。

Select-Object Name, Vendor

Win32_Product クラスは多くのプロパティを含みますが、Select-Object コマンドレットにより Name プロパティと Vendor プロパティを取得します。

Export-Csv c:\InstalledSoftwareList.csv -encoding Default –NoTypeInformation

Export-Csv コマンドレットにより、取得した Name プロパティと Vendor プロパティとを csv 形式で出力します。
その際、-encoding Default オプションにより、文字エンコーディングがシステム デフォルトとなり、文字化けを防止します。
また、-NoTypeInformation オプションにより、 csv ファイルの1行目に .NET Framework の型名が出力されるのを抑止します。

 

以上です。

Posted by Ryosuke Uemoto

第17回 .NET 勉強会 / ヒーロー島 を開催します

5月22日(土) に勉強会を開催します。

テーマは 「やっぱり来るか VDI !!構築しよう仮想 PC VDI」 です。
今回も楽しく情報交換しましょう。

ゲストスピーカーとして、IT Pro 系の講師としてお馴染みマイクロソフトエバンジェリストの高添様にスペシャルセッションをご担当頂きます。

豪華なゲストスピーカーと交流を図るチャンスです。

初めて方も大歓迎です。
是非ご参加ください。

参加希望の方は下記内容を一読の上ご連絡ください。

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

日時
5月22日(土) 10:00 ~ 17:00
(09:30 受付開始)

場所
マイクロソフト株式会社 中四国支店 セミナールーム

参加費用
無料
※昼食でピザを注文する予定です。ご一緒される方は1,000円

懇親会費用
4,000円

当日の内容(調整中)
·    9:30 - 10:00 受け付け (30 分)

·    10:00 - 11:10 「PowerPivot for Excel ご紹介」(1 時間 10 分): ヒーロー島: MVP for VSTO 上本 亮介

·    11:10 - 11:30 休憩と質疑応答 (20 分)

·    11:30 - 12:15 「我が家のシステム環境ご紹介Tips」 (45 分): ヒーロー島: MVP for Virtual Machine 松浦 正樹

「皆さん同業者の人間が日頃どのようにテスト環境を構築し、どうやって機器等を集めているか気になりませんか?今回は私がどのように環境を構築・準備しているかをご紹介します。AD、Hyper-V、VDIなどの検証環境を構築するお役に立つと思います。※技術ネタではありません。」

·    12:15 - 13:15 昼休憩 (1 時間)
    ※ピザ食べながら…..お楽しみセッション

·    13:15 - 17:15 「道場スタイルのVDI」 (4 時間 00 分): マイクロソフト株式会社: 高添 修

  ※1時間程度の間隔で休憩がございます。

·    17:15 - 17:30 質疑応答 (15 分)

·    17:30 - 18:00 撤収と移動 (30 分)

·    18:00 - 20:00 懇親会 (2 時間)

お申し込み方法
参加希望の方は上本 ue@heroshima.jp 宛に下記項目のご連絡をお願いします。
·    参加者の氏名
·    メールアドレス
·    懇親会(参加します | 参加しません)

【締切】
懇親会参加希望の方: 5月20日(木)
懇親会に参加されない方: 5月21日(金)
または 会場が定員に達し次第

不明な点等のお問い合わせはメール ue@heroshima.jp にてお願いします。

※勉強会の前日ですが高添さんが担当される予定の
事例で納得!Microsoft Solution Forum& Virtualization Summit 2010
が行われます。是非合わせてご参加ください。

仮想化と AD のセミナーを開催します

4月14日(水) に仮想化と AD のセミナーを開催します。

ヒーロー島としての活動ではなく、マイクロソフトのパートナー企業としての活動ですが、スピーカーはお馴染みの松浦さんと私です。

IT 分野の意志決定者を主な対象とした内容となります。
MS の仮想化技術と AD とを上手に活用して企業の仮題を解決しませんか。

皆様のご参加をお待ちしております。

第15回 .NET 勉強会 / ヒーロー島: Infragistics セッションのタイトルをお知らせします

2月13日(土)に開催する 第15回 .NET 勉強会 / ヒーロー島 にはスペシャルゲストとして Infragistics Japan エバンジェリストの山田様をお招きし、Silverlight のセッションを担当して頂きます。

山田様のセッションタイトルが決定しましたのでお知らせします。

「機能、性能、UX。Silverlight へのマイグレーションを実現するための3箇条」

山田様は2月19日にデブサミでも同様のセッションを担当されますが、セッション時間の関係でヒーロー島の方がより掘り下げた内容をお話し頂けるとのこと。楽しみです。

第15回 .NET 勉強会 / ヒーロー島の時間割をお知らせします

バレンタインイブの開催となる 第15回 .NET 勉強会 / ヒーロー島 の時間割をお知らせします。

ご興味のある方は公式サイトの情報をご一読の上お申し込みください。

 

  • 9:30 - 10:00 受け付け (30 分)

  • 10:00 - 11:10 「Windows7での仮想環境:XPMODEって? 」(1 時間 10 分)
                            ヒーロー島: MVP for Virtual Machine 松浦 正樹
    XPMODEの機能、使い勝手を紹介します。
    またSAを追加した場合のWindows7上の仮想環境についても合わせてお話しします。
    時間があればMED-Vとの違いなども。

  • 11:10 - 11:30 休憩と質疑応答 (20 分)
  • 11:30 - 12:00 「実践で使える !? WPFアプリケーション開発Tips」 (30 分)
                            ヒーロー島メンバー
  • 12:00 - 13:00 昼休憩 (1 時間)
  • 13:00 - 14:10 「Office 2010 の変更点を確認しよう」 (1 時間 10 分)
                            ヒーロー島: MVP for VSTO 上本 亮介
  • 14:10 - 14:30 休憩と質疑応答 (20 分)
  • 14:30 - 15:40 「Silverlight & UX (仮)」 (1 時間 10 分)
                            インフラジスティックス・ジャパン株式会社: 山田 達也
  • 15:40 - 16:00 休憩と質疑応答 (20 分)
  • 16:00 - 17:10 「ジニアス平井のバレンタインスペシャル for ヒーロー島 シーズン2: WPF 4.0 & Silverlight 3, 4 Lev.300」 (1 時間 10 分)
                            マイクロソフト株式会社: 平井 "ジニアス" 昌人
  • 17:10 - 17:30 質疑応答 (20 分)
  • 17:30 - 18:00 撤収と移動 (30 分)
  • 18:00 - 20:00 懇親会 (2 時間)
  • 第15回 .NET 勉強会 / ヒーロー島 を開催します

    2月13日(土) に勉強会を開催します。

    テーマは 最新技術でハッピーバレンタイン です。
    今回も楽しく情報交換しましょう。

    ゲストスピーカーとして、NetAdvantage シリーズでお馴染み Infragistics Japan からエバンジェリストの山田様、そして今年もマイクロソフトから "ジニアス平井" こと平井様にスペシャルセッションをご担当頂きます。

    豪華なゲストスピーカーと交流を図るチャンスです。

    初めて方も大歓迎です。
    是非ご参加ください。

    参加希望の方は下記内容を一読の上ご連絡ください。

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

    日時
    2月13日(土) 10:00 ~ 17:00
    (09:30 受付開始)

    場所

    マイクロソフト株式会社 中四国支店 セミナールーム

    参加費用
    無料

    懇親会費用
    4,000円

    当日の内容(調整中)

    • スペシャルセッション
      「ジニアス平井のバレンタインスペシャル for ヒーロー島 シーズン2: WPF 4.0 & Silverlight 3, 4 Lev.300」
      マイクロソフト株式会社: 平井 "ジニアス" 昌人
    • スペシャルセッション
      「Silverlight & UX (仮)」
      インフラジスティックス・ジャパン株式会社: 山田 達也
    • メンバーセッション
      「 実践で使える !?  WPFアプリケーション開発Tips (仮)」
      ヒーロー島メンバー
    • メンバーセッション
      「Windows7での仮想環境:XPMODEって?」
      ヒーロー島: MVP for Virtual Machine 松浦 正樹
    • XPMODEの機能、使い勝手を紹介します。
      またSAを追加した場合のWindows7上の仮想環境についても合わせてお話しします。
      時間があればMED-Vとの違いなども。

    • メンバーセッション
      「Office 2010 の変更点を確認しよう」
      ヒーロー島: MVP for VSTO 上本 亮介
    • 懇親会

    お申し込み方法
    参加希望の方は上本 ue@heroshima.jp 宛に下記項目のご連絡をお願いします。

    • 参加者の氏名
    • メールアドレス
    • 懇親会(参加します | 参加しません)
    【締切】2月11日(木) または 会場が定員に達し次第
    不明な点等のお問い合わせはメール ue@heroshima.jp にてお願いします。

    .NET 勉強会 / ヒーロー島 2009年忘年会を開催します

    12月18日(金) に忘年会を開催します。

    テーマは 一年間お疲れさまでした! です。
    今回も楽しく情報交換しましょう。

    初めて方も大歓迎です。
    是非ご参加ください。

    参加希望の方は下記内容を一読の上ご連絡ください。

    .NET 勉強会 / ヒーロー島 2009年忘年会

    日時

    12月18日(金) 18:00 ~ 20:00
    (18:00 会場集合)

    場所

    人有喜 -蔵- 並木店

    地図

    参加費用

    5,000円

    お申し込み方法

    参加希望の方は上本 ue@heroshima.jp 宛に下記項目のご連絡をお願いします。

    • 参加者の氏名
    • メールアドレス

    【締切】12月14日(月) または 会場が定員に達し次第
    不明な点等のお問い合わせはメール ue@heroshima.jp にてお願いします。

    Hyper-V の仮想マシンをエクスポートするスクリプト

    Hyper-V の仮想マシンをエクスポートするスクリプトです。
    VBScript です。

    タスクスケジューラに登録すればバックアップの自動化を実現できるはずです。

    参考情報

    Posted by Ryosuke Uemoto
    Filed under:

    第14回 .NET 勉強会 / ヒーロー島 を開催します

    10月24日(土) に勉強会を開催します。

    テーマは AD & コミュニケーション です。
    今回も楽しく情報交換しましょう。

    ヒーロー島のメンバーは Active Directory の構築デモ & パネルディスカッションを行います。

    第12回勉強会で行った AD セッションをバージョンアップしてお届けします。
    また、BPOS の設定方法や活用方法をご紹介します。

    初めて方も大歓迎です。
    是非ご参加ください。

    参加希望の方は下記内容を一読の上ご連絡ください。

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

    日時
    10月24日(土) 13:00 ~ 17:00
    (12:30 受付開始)

    場所

    マイクロソフト株式会社 中四国支店 セミナールーム

    参加費用
    無料

    懇親会費用
    5,000円

    当日の内容(調整中)

    • メンバーセッション
      「実演! かんたん便利 グループポリシー」
      ヒーロー島: forest, matsu, ue
    • メンバーセッション
      「BPOS 紹介」
      ヒーロー島: forest, matsu, ue
    • ライトニングトーク
    • 懇親会

    お申し込み方法
    参加希望の方は上本 ue@heroshima.jp 宛に下記項目のご連絡をお願いします。

    • 参加者の氏名
    • メールアドレス
    • 懇親会(参加します | 参加しません)
    【締切】10月23日(金) または 会場が定員に達し次第
    不明な点等のお問い合わせはメール ue@heroshima.jp にてお願いします。

    Windows 7 コミュニティ勉強会アップデート: 松浦さんのセッションがハンズオン形式になります

    7月11日(土) に開催する Windows 7 コミュニティ勉強会 with Tech Fielders 中国編 ですが、Hyper-V 2.0 のセッションに内容の変更があります。

    以前の内容: 「2008R2で変わるサーバー仮想化環境」

    「すでに噂になっているLiveMigration。QuickMigrationとの違い・環境構築するには?・押さえておきたいライセンスなど、このセションでは Hyper-V2.0と、共にある環境をメインにお伝えします。」

    新しい内容: 「体験しようLive Migration構築」

    「最近よく聞くLiveMigration。しかし実際に環境を構築するとなると......、
    そこでStoregeServerを使用してのLiveMigration構築方法をご紹介します。
    このセッションでは、1・2名参加者の方にご協力いただきLiveMigration環境構築を実践します。」

     

    と、Hyper-V 2.0 の Live Migration を Windows Storage Server をバックエンドに構築する手順をハンズオン形式でお伝えするセッションとなるようです。

    先日 TechNet | MSDN サブスクリプションで Windows Storage Server が公開されたことを踏まえての内容となるので、このセッションを参考に参加者自身の手で同様の環境を構築することが可能なはずです。

    引き続き参加者を募集中ですので、ご興味のある方は、ぜひ、下記サイトよりお申し込みください。

    Windows 7 コミュニティ勉強会アップデート: 安納さんのセッションがグループポリシーのお話しになります

    7月11日(土) に開催予定の Windows 7 コミュニティ勉強会 with Tech Fielders 中国編 ですが、MS IT Pro エバンジェリスト 安納さんのセッション内容が変更になります。

    ヒーロー島としては第12回勉強会の「実演! かんたん便利 グループポリシー」を図らずもフォローして頂く内容となります。
    PowerShell Remoting をたっぷりと使うセッションになるそうで、これも楽しみです。

    Windows 7 コミュニティ勉強会 with Tech Fielders 中国編 は未だ席に余裕があるようですので、ご興味のある方はぜひお越しください。

    Microsoft MVP for VSTO を再受賞しました

    お陰さまで Microsoft MVP for Development Platforms – VSTO を再受賞しました。

    この一年間一緒にコミュニティ活動を盛り上げて頂いた皆さま、ありがとうございます。

    歴代 VSTO のイマイチ感は次期 VSTO で大幅に改善されることですし、.NET 開発の生産性を Office の世界に持ち込めるこのスゴい技術を今後も積極的に情報発信していきたいです。

    と言いつつ、色々な技術を気の向くままにつまみ食いする楽しさも忘れずにいたいです。

    今後ともよろしくお願いします。

    自分用メモ: Hyper-V でゲストOSをバックアップする

    1. サーバー機を2台用意する(ハードウェア構成はバラバラでも OK)
    2. SA 付きで Windows Server 2008 を買う
    3. サーバー機Aに Hyper-V を構成してゲスト OS をインストール
    4. サーバー機Bに Hyper-V を構成してコールドスタンバイ
    5. サーバー機Aは任意のタイミングでゲスト OS を外部ストレージにバックアップ(Hyper-V のゲスト OS のエクスポート機能)
      • サーバー機Bはサーバー機Aの故障時に外部ストレージからゲストOSを復旧(Hyper-V のゲスト OS のインポート機能)

    バックアップも復旧も WMI スクリプトで制御可能

    Posted by Ryosuke Uemoto

    広島マックユーザーグループの勉強会が開催されます

    6月20日(土) に Office for Mac と Windows on Mac をテーマとした勉強会が開催されます。
    会場はマイクロソフト株式会社 中国支店です。

    「Mac に興味を持っている Windows ユーザーにも参考になる話を聞けるのではないか」とのことです。
    ドザの私も参加予定です。

    ご興味のある方は会場でお会いしましょう。

    More Posts Next page »