UIAutomationについて(2)

PowerShellからUIAutomationが上手く動かせねぇー、って割とポピュラーな疑問だったらしく、ちゃんと検索したらいくつか出てきた。ここではBruce Payetteさんが答えておられる……。
問題は二つあり、

  1. UIAutomationはSTAでしか動かないけど、PowerShellスクリプトはMTAで動く
  2. PowerShellvalue types(値型のこと?)の扱い方に問題がある

1.はあのClipBoardが使えない問題と同じでとりあえず簡単な解決策はない。2.は何が問題なのかすらよくわからない……。最後に掲載されてるスクリプトも、インラインで埋め込んだC#コンパイルして、その上でSTAで動かせるならちゃんと動くよ!! って感じ。
中途半端には動くのが気持ち悪いところで、昨日のスクリプトを作ってる間も、AutomationElement.Current.LocalizedControlTypeが、C#で書いたコードとか、UISpyで観察すると"ボタン"になっているのに、PowerShellで取得すると、なぜか全て"第2ウィンドウ"という謎の文字列になっていたりしていた。
ちゃんとやるなら、PSProviderでウィンドウからコントロールまできちっと持ってきて、それを扱うCmdletも作ってって感じかなぁ。PowerShellの値型の扱いに関する問題、ってのも気になる。