環境:Windows 7 + Microsoft Office Excel 2007

PowerShell で Excel.Application(COMオブジェクト)を使用して、セルの値を取得します。

サンプルコードでは下記のようなExcelの ワークシートから、B2とC2のセルにある値を取得しています。

001

 サンプルコード

# オブジェクトの解放
function Release-Ref ($ref) {
	$ret = [System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($ref)
}

$excel = new-object -com Excel.Application
$wbook = $excel.Workbooks.Open("C:\temp\Book1.xlsx") 
$sheet = $wbook.Worksheets.Item(1)
$item1 =  $sheet.Cells.Item(2,2).Text; #B2
$item2 =  $sheet.Cells.Item(2,3).Text; #C2

Write-Output ("item1(B2)={0}" -f $item1)
Write-Output ("item2(C2)={0}" -f $item2)

Release-Ref $sheet

$wbook.Close()
Release-Ref $wbook
$excel.Quit()
Release-Ref $excel

 

PowerShellでIEを操作する のアクセスがソコソコあったので、Excelも書いてみました。

MySQL のインストール

December 25, 2009

使用環境:Windows Server 2008 R2

IIS上で稼働させる各種Webアプリケーションで使用するため、MySQLをインストールします。ほとんどデフォルトでの基本的なインストールですので不要な機能やオプションは必要に応じてはずしてしてください。

 

■MySQLのインストール

1.ファイル(mysql-5.1.xx-winx64)をダウンロードし実行します。

下記のURLからダウンロードします。
http://dev.mysql.com/downloads/
※今回は、Windows MSI Installer (AMD64 / Intel EM64T)を使用しています。

2.「MySQL Server 5.1 - Setup Wizard」が表示されたら、「Next」をクリックします。

001

3.[Typical]を選択し、「Next」をクリックします。

002

4.インストール先のディレクトリが表示されるので確認後「Install」をクリックします。

003

5.途中有料版の宣伝出たら「Next」をクリックします。

6.インストール完了です。引き続き MySQL の設定を行うので「Configure the MySQL Server now」にチェックを入れたまま「Finish」をクリックします。

004

 

■MySQLの設定

1.インストールに続いて、そのまま設定を行います。「MySQL Server Instance Configuration Wizard」が表示されたら「Next」をクリックします。

101

2.「Standard Configuration」 を選択し、「Next」をクリックします。

102

3.Server Nameは「MySQL」のまま、「Install As Windows Service」「[Launch the MySQL Server automatically」「Include Bin Directory in Windows PATH」全てにチェックし、「Next」をクリックします。

103

4.rootアカウントのパスワード設定。パスワードを入力し「Modify Security Settings」だけにチェックを入れたまま「Next」をクリックします。

104

5.設定完了です。設定を反映させるため「Execute」をクリックします。

105

6.設定が正常に終了すると下記のような画面になるので「Finush」をクリックし設定完了です。

106

IIS で PHP を使用する

December 24, 2009

環境:IIS7.5 (Windows Server 2008 R2), PHP5.3.1

IIS7.5 で PHP 5.3.x を使用するための設定です。php.ini の修正部分が 5.2.xと少々違っています。

※事前に「Webサーバー(IIS)」の役割サービスであるCGIをインストールする必要があります。

 

■PHPのインストールと設定

1.下記のサイトからWindows Binaries のzip packageをダウンロードします。
http://www.php.net/downloads.php
※今回はVC6 x86 Non Thread Safe 版 の PHP 5.3 (5.3.1) zip package をダウンロードしています。

2.ダウンロードしたファイルを解凍し、「c:\php53」にコピーします。

3.「php.ini-production」 をコピーして 「php.ini」 を作成します。

4.「php.ini」を notepad などで開いて 下記の値を修正します。

extension_dir = "ext"
fastcgi.impersonate = 1
cgi.force_redirect = 0
date.timezone = Asia/Tokyo

※extension に関しては使用するソフトなどに合わせて修正する必要があります。

 

■IISの設定

1.インターネットインフォメーションサービス(IIS)マネージャを起動します。

2.左側の「コンピュータ名」をクリックし、真ん中の「コンピュータ名 ホーム」にある「ハンドラマッピング」をダブルクリックします。

4.右側の「モジュールマップの追加」をクリックします。

5.「モジュールマップの追加」で下記のように「*.php」を登録します。 

001

要求パス *.php
モジュール FastCgiModule
実行可能パス C:\php53\php-cgi.exe
名前 PHP/FastCGI

「OK」をクリックすると、CGIを許可済みにして良いか?とダイアログが表示されるので「はい」をクリックします。

 

■動作確認

1.動作確認のため、「C:\Inetpub\wwwroot」に、以下の内容でtest.phpを作成します。

<?php phpinfo() ?>

2.ブラウザでアクセスすると、下記のような感じになっていればインストール完了です。

002

Windows Server 2008 R2 は 初期状態ではIISはインストールされていません。IISを使用する場合は、別途インストールする必要があります。Server Core へIISをインストールする場合は、Server CoreでPHPを使う をご覧ください。

1.「サーバマネージャ」を起動 します。

 101s

2.左側から「役割」を選択し、右側の「役割の追加」をクリックします。

3.「開始する前に」で「次へ」をクリックします。

4.「サーバーの役割の選択」で「Webサーバー(IIS)」にチェックをつけて、「次へ」をクリックします。

 103s

5.「Web サーバー(IIS)」で注意事項などを読みましたら、「次へ」をクリックします。

 104s

6.「役割サービスの選択」で、使用する役割サービスにチェックをつけて、「次へ」をクリックします。

106s 
役割サービスの詳細は、ヘルプ又はTechNetをご覧ください。
http://technet.microsoft.com/ja-jp/library/cc753473(WS.10).aspx

7.「インストールオプションの確認」で「インストール」をクリック します。

 105s

8.「インストールの結果」が表示されたら「閉じる」をクリックし、インストール終了です。

 107s1

環境:Windows 7, Visual Studio 2008

System.Management.Automation.dll を使用するため、Microsoft Windows SDK をインストールする必要があります。

Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en

 

前回、PowerShellでハッシュ値を計算してみましたが、今回はファイルのハッシュ値を取得するコマンドレット(Get-Hash)を作成してみます。コマンドレットの作成については、CodeZineを参考にさせていただきました。

CodeZine - Windows PowerShell 独自コマンドレットの開発
http://codezine.jp/article/detail/3191

 

1.新しいプロジェクト(Gine.PowerShell.Cmdlets)を作成、クラス(GetHash.cs)を追加し、System.Management.Automation.dll, System.Configuration.Install.dll を参照に追加します。

0001

 

2.GetHash.cs にコマンドレット実行時のコードを記載します。

using System;
using System.Management.Automation;
using System.Security.Cryptography;
using System.IO;

namespace Gine.PowerShell.Cmdlets
{
    [Cmdlet(VerbsCommon.Get, "Hash")]
    public class AddEventEntry : Cmdlet
    {
        private string _Path;

        [Parameter(Mandatory = true, Position = 0)]
        public string Path
        {
            get
            {
                return _Path;
            }
            set
            {
                _Path = value;
            }
        }

        protected override void ProcessRecord()
        {
            StreamReader stream = new StreamReader(_Path);
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

            byte[] hash = md5.ComputeHash(stream.BaseStream);
            string result = BitConverter.ToString(hash).ToLower().Replace("-", "");

            WriteObject(result);
        }
    }
}

 

3.インストールとスナップイン登録を行うスナップインクラスを作成します。新しい項目の追加で、クラス(GinePSSnapIn.cs)を追加しコードを記載します。

using System.ComponentModel;
using System.Management.Automation;

namespace Gine.PowerShell.Cmdlets
{
    [RunInstaller(true)]
    public class GinePSSnapIn : PSSnapIn
    {
        public override string Name
        {
            get
            {
                return "Gine.PowerShell.Cmdlets";
            }
        }

        public override string Description
        {
            get
            {
                return "はじめてのコマンドレット";
            }
        }

        public override string Vendor
        {
            get
            {
                return "CodeZine";
            }
        }
    }
}

 

4.作成したコマンドレットをインストールします。

ビルドして出来たdll(Gine.PowerShell.Cmdlets.dll)を「C:\Windows\System32\WindowsPowerShell\v1.0」にコピーし、InstallUtilを実行してインストールします。

コマンド例)

InstallUtil.exe C:\Windows\System32\WindowsPowerShell\v1.0\Gine.PowerShell.Cmdlets.dll
0002

※InstallUtil.exeは、デフォルトでは、
「C:\Windows\Microsoft.NET\Framework64\v2.0.50727」 や
「C:\Windows\Microsoft.NET\Framework\v2.0.50727」にあります。

 

5.実行

PowerShellを起動しスナップインの登録を行えば準備は完了です。Get-Hashコマンドレットの実行が可能になります。

Add-PSSnapin "Gine.PowerShell.Cmdlets"
Get-Hash C:\Users\xxxx\Downloads\xxxxx.zip