Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

20230520




なかなか期待通りにはなりません。


OneNote + 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起動時のパラメータ設定の相違から、呼び出せるライブラリが異なっているのだろうが、その原因特定までする気力はない。

ここにたどり着くために一日を費やした。ここからやっとスタートライン。

learn.microsoft.com