スモールデータで使うPowerShellとmongoDB

最近良く耳にするmongoDB。NoSQL、スキーマレスって何? 良くわからないのでちょこっと使ってみることにしました。

デジカメ画像のExifデータをPowerShellで取得してmongoDBに入れる(PowerShell Image Module)準備

先日、jhead.exeを使用してExifデータを取得する方法を記載しましたが、PowerShellで完結する方法がありました。
但し、この方法はvista以上のOSでしか動かないようです。当方は、Windows7 64bitで動作を確認しています。
追記:モジュール内でWia.ImageFileというCOMオブジェクトを使用しています。Windows Image Acquisition (WIA) 2.0 ライブラリをインストールすればXP等のOSでも使えるようです。
http://gallery.technet.microsoft.com/scriptcenter/7d7dcf67-5585-40b6-bab8-9484672e4f84

準備

http://gallery.technet.microsoft.com/scriptcenter/PowerShell-Image-module-caa4405a

  • Image.zipを解凍
  • PowerShellコンソールで以下コマンドで表示されるモジュールパスに配置する。

PS> $Env:PsModulePath

  • 通常以下ディレクトリとなる(WindowsPowerShell\Modulesのディレクトリがない場合は作る)

C:\Users\<ユーザ名>\Documents\WindowsPowerShell\Modules

  • 上記ディレクトリにImageディレクトリを配置する。

C:\Users\<ユーザ名>\Documents\WindowsPowerShell\Modules\Image

# PowerShell Image Moduleのロード
PS> Import-Module Image
# モジュール内スクリプト実行確認
PS> Get-Exif "xxxx.jpg"

※Exceptionが発生し、"get-help about_signingと入力してヘルプを参照してください"というメッセージがでたら以下いずれかの方法で対応します。
1、Set-ExecutionPolicyでUnrestrictedに設定する。(実行の度に確認を求められるのでめんどくさい)
2、C:\Users\<ユーザ名>\Documents\WindowsPowerShell\Modules\Image内のファイルを右クリック[プロパティ]の下の方にある[ブロックを解除]を押して解除する。(実行しても安全とわかっているものはこれが簡単です)
3、 PowerShell 3.0 には、Unblock-File という専用のコマンドレットが用意されてます。
http://technet.microsoft.com/en-us/library/hh849924.aspx