以前のブログで「PowerShellを使ってアプリの自動実行」という記事を書いたんだが、実はUI Automationのdllをインポートするという前準備が必要なことを書くのを忘れてました。以下の手順ッスねぇ。
前準備として、http://uiautomation.codeplex.com/ に行き、Downloadボタンを押してzipをダウンロード、 Documents\WindowsPowerShell\Modules\UIAutomation に展開する。
次にPowerShellを開いて、上記のディレクトリに移動し、下のコマンドを実行。
PS > Import-Module .\UIAutomation.dll
Get-Moduleして以下のようにでてくればOK。
PS > Get-Module UIA* ModuleType Version Name ExportedCommands ————————————- Binary 0.8.7.79 UIAutomation {Add-UiaBannerText…
そこで、前回の記事の通り、テキストエディタでスクリプトを書いて保存し、実行するんだが、保存されたスクリプトを実行するとセキュリティ警告が出て実行できない。そこいら辺の話はコチラに詳しく載ってるんで譲るとして、実際スクリプトを実行するには…
- スクリプト実行のポリシーを変更し、権限を緩める。
- 目的のスクリプトを実行する。
- スクリプト実行のポリシーを元に戻す。
スクリプト実行権限を元に戻すのは、セキュリティ上の穴を開けないためねぇ。
で、これをバッチプログラムにすると以下の様になる。
echo off
powershell Set-ExecutionPolicy RemoteSigned
powershell .\目的のスクリプト.ps1
powershell Set-ExecutionPolicy Restricted
powershell Set-ExecutionPolicy RemoteSigned
powershell .\目的のスクリプト.ps1
powershell Set-ExecutionPolicy Restricted
で、このバッチプログラムを管理者権限で行わなきゃならないんだが、実はこのバッチプログラムをPython等の別のプログラムからコールしようと思ってるんだが、それがけっこう厄介なんだなぁ。 とりあえず今日はここまで。次回は管理者権限でバッチプログラムを他のPythonやphpなんかの別のプログラムから呼び出すにはどうするかについて書いてみる。