UI Automation with PowerShell 奮戦記 はじめるにあたって

UI Automation*1で遊びます。

 

UI Automationでは以下の事が容易に実現出来るようになります。

 

  • 画面情報の取得
  • 画面操作の自動化
  • 画面操作の捕捉

 

UI Automationが登場する前は,上の事を実現させるには

ゴリゴリ、プログラムを書く必要がありました。

便利な世の中になったものです♪

バッチも進化してPowerShellに! .Net frameworkもWin32APIも使えるし!

 

ということでPowerShell上でUI Automationを動作させることを目指します

 

ちまたではPowerShellUI Automationは動かない?

という情報もあるのでそれを検証しつつ

以下の機能を実現してみようかと。

1.画面ハードコピーの自動化

 Windowsで標準提供されている「ステップ記録ツール」がありますがこれと同等、それ以上の機能を実現しよう! UI Automation画面操作の捕捉で出来るんじゃない?

 自動画面ハードコピーはフリーや有料でソフトが提供されていますが、別途インストールが必要な為、敷居が高くなっています。

 それをPowerShellで作ってWindowsの標準機能だけで実現しちゃおう。

2.設定書自動生成

 OSの設定書って作成するのめんどいよね。

 画面から設定書を自動生成しちゃう? UI Automation画面情報の取得で出来るんじゃない?

 とりあえず「コンピュータ名」設定のとこの画面で設定書の自動生成を実現しちゃおう。

3.自動設定

 OSを自動設定をするのにWindowsではDSC,ちまたではAnsibleが使われてる。

 でもDSCにしろAnsibleにしろ現在標準?で提供されているモジュール?だけでは全ての設定は網羅されていません。新しい設定モジュールを作るにはレジストリ、コマンド等、方法を調査する必要があり手間!!。

 それならそのまんま画面を操作して設定すればいいんじゃない? UI Automation画面操作の自動化で出来るんじゃない? OSの設定書の入力からOSの自動設定を画面操作の自動化で実現しちゃおう。

 1000台とかディスプレイ上で画面が自動操作されてる様は圧巻じゃない?

 

では、皆さんいっしょにあそびましょう!

*1:ここでのUI AutomationはSystem.Windows.Automationのことです