なかなか期待通りにはなりません。
OneNote + PowerShell
この話題をまとめて今日の投稿にするはずだったのに、全く想定外のところで詰まった。問題個所は分かるものの、何が問題なのかは分からず、情報があっても解決には至らず。諦めかけていたところで閃いた。結局これが解決策だった。
- PowerShellのバージョン
Windows TerminalのデフォルトはPowerShell 7.3.4。一方、"Windows PowerShell"、DEveloper PowerShell"のバージョンは5.1。
次のスクリプトは、5.1では動作するのだが、7.3.4では動作しない。
$OneNote = New-Object -ComObject OneNote.Application #$OneNote = New-Object Microsoft.Office.Interop.OneNote.ApplicationClass Add-Type -assembly Microsoft.Office.Interop.OneNote #Add-Type -path "C:\Program Files\PowerToys\modules\launcher\Interop.Microsoft.Office.Interop.OneNote.dll" [xml]$Hierarchy = "" $OneNote.GetHierarchy("", [Microsoft.Office.InterOp.OneNote.HierarchyScope]::hsPages, [ref]$Hierarchy) Write-Host $Hierarchy.Notebooks.Notebook.Count
問題の原因は、PowerShell起動時のパラメータ設定の相違から、呼び出せるライブラリが異なっているのだろうが、その原因特定までする気力はない。
ここにたどり着くために一日を費やした。ここからやっとスタートライン。