COMスクリプティングが貧弱

ExcelファイルをHTMLファイルにコンバートするスクリプト」を作成しようと試みましたが、
Excelファイルのオープンに失敗してうまくいきません。


ExcelオブジェクトのWorkBooksプロパティを取得してもNullになってしまいます。
理由は、http://oka326.blogspot.com/2005/09/msh-new-object-com-is-fake.htmlにある通りのようです。


MSHの仕組み上、「COMで取得可能なプロパティを全て扱える」ようにはならないのかもしれません。

ExcelファイルをHTMLファイルにコンバートする(Beta2では動作しません)
param([string] $xlsFilePath)

# Excelファイルをオープンする
$excel    = new-object -com Excel.Application
$workbook = $excel.Workbooks.Open($xlsFilePath) #←WorkBooksがNullのためエラー

# 出力するHTMLファイル名が存在する場合は削除する
$htmlPath  = [System.IO.Path]::ChangeExtension($xlsFilePath,".html")
$filesPath = $htmlPath + ".files"
remove-item $htmlPath  -ea SilentlyContinue
remove-item $filesPath -ea SilentlyContinue

# ExcelファイルをHTMLファイルにコンバートする
# Const xlHtml = 44 (&H2C)
$workbook.SaveAs($htmlPath, 44)

# HTMLファイルが出力されるまでウェイト
while(test-path $htmlPath -eq $False)
{
    start-sleep -m 100
}

# Excelファイルをクローズし、Excelを終了する
$workbook.Close
$excel.Quit

# オブジェクト破棄
$excel = $null
$workbook = $null