前回は、ベーシック認証が使われているルータの管理WebページをPowerShellから開く方法を紹介した。今回はこのルータの管理Webページからログデータを取得するPowerShellスクリプトを作成する。ログデータの収集は管理の基礎だ。PowerShellスクリプトで自動化して定期的に収集する仕組みを作っておくと便利になる。
→連載「意外と知らないMicrosoft Edgeの便利な使い方」の過去回はこちらを参照。
管理Webページのログデータ
まず、Microsoft Edgeからルータの管理Webページにアクセスする。
今回取得したいログが掲載されているページを開く。
このページの構造を調べると、ページは左のメニュー部分と右の表示部分がフレームで分かれていることがわかる。欲しいのはログデータなので、ログデータのページのみをMicrosoft Edgeで表示させてみる。
このページのログデータを取得したいものとする。Microsoft Edgeの開発者ツールを起動して、対象となる要素のXPathを取得する。
対象となる要素のXPathは次のようになっていた。
ログデータのXPath |
---|
/html/body/div[3]/pre |
これで準備は完了だ。対象となるページのURLも要素のXPathも明らかになったので、後はこれまで通りに操作していけばよい。
PowerShellからルータのログデータを取得する
では、一つ一つ動作を確認していく。まず、Microsoft Edgeを操作するためにWebDriverを起動する。スクリプトは稿末に付録として掲載しておくので、参考にしてもらえればと思う。
webdriver_edge_start.ps1
ルータの管理Webページのログページをオープンする。ベーシック認証もここで認証してしまう。
Set-SeUrl -Url http://ユーザー名:パスワード@192.168.1.1/ntt/information/troubleLog
ページを開いたのでログが記載されている要素をGet-SeElementコマンドレットで取得する。
$Element = Get-SeElement -By XPath -Value '/html/body/div[3]/pre'
要素が取得できたらログデータを出力する。
$Element.Text
これで必要な処理は終わったので、Microsoft EdgeとWebDriverを終了する。
Stop-SeDriver
webdriver_edge_stop.ps1
基本的な処理の流れはこれで完了だ。