前回は、ベーシック認証が使われているルータの管理WebページをPowerShellから開く方法を紹介した。今回はこのルータの管理Webページからログデータを取得するPowerShellスクリプトを作成する。ログデータの収集は管理の基礎だ。PowerShellスクリプトで自動化して定期的に収集する仕組みを作っておくと便利になる。

→連載「意外と知らないMicrosoft Edgeの便利な使い方」の過去回はこちらを参照。

管理Webページのログデータ

まず、Microsoft Edgeからルータの管理Webページにアクセスする。

  • ルータの管理Webページ

    ルータの管理Webページ

  • オープンされたルータの管理Webページ

    オープンされたルータの管理Webページ

今回取得したいログが掲載されているページを開く。

  • 取得したいログが掲載されているWebページを開く

    取得したいログが掲載されているWebページを開く

このページの構造を調べると、ページは左のメニュー部分と右の表示部分がフレームで分かれていることがわかる。欲しいのはログデータなので、ログデータのページのみをMicrosoft Edgeで表示させてみる。

  • ログページのみを表示させる

    ログページのみを表示させる

このページのログデータを取得したいものとする。Microsoft Edgeの開発者ツールを起動して、対象となる要素のXPathを取得する。

  • ログデータの掲載されている要素のXPathを調査

    ログデータの掲載されている要素の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

基本的な処理の流れはこれで完了だ。

動作を確認

では上記の処理をスクリプト(router_showlog.ps1)にまとめる。

# Microsoft Edge Webドライバを起動
webdriver_edge_start.ps1

# ルータログページをオープン
'ルータログページをオープンします。'
Set-SeUrl -Url http://ユーザ名:パスワード@192.168.1.1/ntt/information/troubleLog

# ログデータを取得
'ログデータを取得します。'
$Element = Get-SeElement -By XPath -Value '/html/body/div[3]/pre'
$Element.Text

# Microsoft Edge Webドライバを終了
Stop-SeDriver
webdriver_edge_stop.ps1

シンプルなPowerShellスクリプトだが、機能としてはこれで十分だ。実行すると次のようになる。

PS C:\Users\daichi> router_showlog.ps1
Microsoft Edge WebDriverを起動します。
Microsoft Edge WebDriverの起動処理完了。
ルータログページをオープンします。
ログデータを取得します。
ELOG.LOG : There are 100 entries.

  1. 2023/01/13 19:57:16 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
  2. 2023/01/13 17:06:01 PPPoE セッション開放(正常切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
  3. 2023/01/13 17:06:01 PPPoE セッション開放(サーバ切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
  4. 2023/01/13 17:06:01 PPPの認証失敗[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
  5. 2023/01/13 17:06:01 PPP-LCPの確立[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
  6. 2023/01/13 17:06:00 PPPoEセッション開始成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
  7. 2023/01/13 17:06:00 PPPoE AC発見成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
  8. 2023/01/13 17:03:00 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
  9. 2023/01/13 17:01:40 JavaVM起動
     SEQ=00              20202020  20202020  20202020  20202020
 10. 2023/01/13 17:01:18 自動無線チャネル設定 チャネル:116 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000    116/ 0..........
 11. 2023/01/13 17:01:09 自動無線チャネル設定 チャネル:  1 AP数: 3
     SEQ=00              XXXXXXXX  00003320  00000000  00000000      1/ 3..........
 12. 2023/01/13 17:01:04 PPP-IPCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 13. 2023/01/13 17:01:04 PPPの認証成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 14. 2023/01/13 17:01:03 PPP-LCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 15. 2023/01/13 17:01:03 PPPoEセッション開始成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 16. 2023/01/13 17:01:03 PPPoE AC発見成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 17. 2023/01/13 17:00:57 電話サーバ接続成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
 18. 2010/01/01 09:00:28 回線取得情報
     SEQ=00              XXXXXXXX  00000044  00000000  00000000    NGNPD...........
 19. 2023/01/13 17:00:13 JavaVM正常停止
     SEQ=00              20202020  20202020  20202020  20202020
 20. 2023/01/13 17:00:13 機器再起動
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    WebReboot[Force]
 21. 2023/01/06 19:31:33 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
 22. 2023/01/06 17:10:13 PPPoE セッション開放(正常切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 23. 2023/01/06 17:10:13 PPPoE セッション開放(サーバ切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 24. 2023/01/06 17:10:13 PPPの認証失敗[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 25. 2023/01/06 17:10:13 PPP-LCPの確立[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 26. 2023/01/06 17:10:13 PPPoEセッション開始成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 27. 2023/01/06 17:10:13 PPPoE AC発見成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 28. 2023/01/06 17:03:37 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
 29. 2023/01/06 17:01:35 JavaVM起動
     SEQ=00              20202020  20202020  20202020  20202020
 30. 2023/01/06 17:01:15 自動無線チャネル設定 チャネル:100 AP数: 0
     SEQ=00              2F303031  00003020  00000000  00000000    100/ 0..........
 31. 2023/01/06 17:01:06 自動無線チャネル設定 チャネル:  1 AP数: 3
     SEQ=00              XXXXXXXX  00003320  00000000  00000000      1/ 3..........
 32. 2023/01/06 17:01:01 PPP-IPCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 33. 2023/01/06 17:01:01 PPPの認証成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 34. 2023/01/06 17:01:01 PPP-LCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 35. 2023/01/11 08:01:01 PPPoEセッション開始成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 36. 2023/01/06 17:01:01 PPPoE AC発見成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 37. 2023/01/06 17:00:53 電話サーバ接続成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    Register OK
 38. 2010/01/01 09:00:27 回線取得情報
     SEQ=00              XXXXXXXX  00000044  00000000  00000000    NGNPD...........
 39. 2023/01/06 17:00:11 JavaVM正常停止
     SEQ=00              20202020  20202020  20202020  20202020
 40. 2023/01/06 17:00:11 機器再起動
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    WebReboot[Force]
 41. 2023/01/04 04:30:09 自動無線チャネル設定 チャネル:100 AP数: 0
     SEQ=00              2F303031  00003020  00000000  00000000    100/ 0..........
 42. 2023/01/03 02:31:03 自動無線チャネル設定 チャネル:100 AP数: 0
     SEQ=00              2F303031  00003020  00000000  00000000    100/ 0..........
 43. 2023/01/02 01:30:58 自動無線チャネル設定 チャネル:100 AP数: 0
     SEQ=00              2F303031  00003020  00000000  00000000    100/ 0..........
 44. 2023/01/01 01:30:54 自動無線チャネル設定 チャネル:100 AP数: 0
     SEQ=00              2F303031  00003020  00000000  00000000    100/ 0..........
 45. 2022/12/31 02:30:49 自動無線チャネル設定 チャネル:100 AP数: 0
     SEQ=00              2F303031  00003020  00000000  00000000    100/ 0..........
 46. 2022/12/30 19:18:47 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    Register OK
 47. 2022/12/30 17:07:08 PPPoE セッション開放(正常切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 48. 2022/12/30 17:07:08 PPPoE セッション開放(サーバ切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 49. 2022/12/30 17:07:08 PPPの認証失敗[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 50. 2022/12/30 17:07:08 PPP-LCPの確立[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 51. 2022/12/30 17:07:08 PPPoEセッション開始成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 52. 2022/12/30 17:07:08 PPPoE AC発見成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 53. 2022/12/30 17:02:36 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    Register OK
 54. 2022/12/30 17:01:41 JavaVM起動
     SEQ=00              20202020  20202020  20202020  20202020
 55. 2022/12/30 17:01:20 自動無線チャネル設定 チャネル:100 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000    100/ 0..........
 56. 2022/12/30 17:01:11 自動無線チャネル設定 チャネル: 11 AP数: 3
     SEQ=00              XXXXXXXX  00003320  00000000  00000000     11/ 3..........
 57. 2022/12/30 17:01:06 PPP-IPCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 58. 2022/12/30 17:01:06 PPPの認証成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 59. 2022/12/30 17:01:05 PPP-LCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 60. 2022/12/30 17:01:05 PPPoEセッション開始成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 61. 2022/12/30 17:01:05 PPPoE AC発見成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 62. 2022/12/30 17:00:59 電話サーバ接続成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    Register OK
 63. 2010/01/01 09:00:27 回線取得情報
     SEQ=00              XXXXXXXX  00000044  00000000  00000000    NGNPD...........
 64. 2022/12/30 17:00:15 JavaVM正常停止
     SEQ=00              20202020  20202020  20202020  20202020
 65. 2022/12/30 17:00:15 機器再起動
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    WebReboot[Force]
 66. 2022/12/30 02:30:56 自動無線チャネル設定 チャネル:116 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000    116/ 0..........
 67. 2022/12/29 01:30:49 自動無線チャネル設定 チャネル:116 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000    116/ 0..........
 68. 2022/12/23 19:32:50 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
 69. 2022/12/23 17:06:18 PPPoE セッション開放(正常切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 70. 2022/12/23 17:06:17 PPPoE セッション開放(サーバ切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 71. 2022/12/23 17:06:17 PPPの認証失敗[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 72. 2022/12/23 17:06:17 PPP-LCPの確立[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 73. 2022/12/23 17:06:17 PPPoEセッション開始成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 74. 2022/12/23 17:06:17 PPPoE AC発見成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 75. 2022/12/23 17:04:42 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
 76. 2022/12/23 17:01:37 JavaVM起動
     SEQ=00              20202020  20202020  20202020  20202020
 77. 2022/12/23 17:01:17 自動無線チャネル設定 チャネル: 52 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000     52/ 0..........
 78. 2022/12/23 17:01:08 自動無線チャネル設定 チャネル:  1 AP数: 2
     SEQ=00              XXXXXXXX  00003220  00000000  00000000      1/ 2..........
 79. 2022/12/23 17:01:02 PPP-IPCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 80. 2022/12/23 17:01:02 PPPの認証成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 81. 2022/12/23 17:01:02 PPP-LCPの確立[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 82. 2022/12/23 17:01:02 PPPoEセッション開始成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 83. 2022/12/23 17:01:02 PPPoE AC発見成功[メインセッション]
     SEQ=10              00000000  00000000  00000000  00000000    ................
 84. 2022/12/23 17:00:55 電話サーバ接続成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    Register OK
 85. 2010/01/01 09:00:27 回線取得情報
     SEQ=00              XXXXXXXX  00000044  00000000  00000000    NGNPD...........
 86. 2022/12/23 17:00:12 JavaVM正常停止
     SEQ=00              20202020  20202020  20202020  20202020
 87. 2022/12/23 17:00:12 機器再起動
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    WebReboot[Force]
 88. 2022/12/19 04:30:52 自動無線チャネル設定 チャネル: 52 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000     52/ 0..........
 89. 2022/12/18 03:30:48 自動無線チャネル設定 チャネル: 52 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000     52/ 0..........
 90. 2022/12/17 02:30:43 自動無線チャネル設定 チャネル: 52 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000     52/ 0..........
 91. 2022/12/16 20:41:40 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
 92. 2022/12/16 18:03:19 PPPoE セッション開放(正常切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 93. 2022/12/16 18:03:19 PPPoE セッション開放(サーバ切断)[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 94. 2022/12/16 18:03:19 PPPの認証失敗[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 95. 2022/12/16 18:03:19 PPP-LCPの確立[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 96. 2022/12/16 18:03:19 PPPoEセッション開始成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 97. 2022/12/16 18:03:19 PPPoE AC発見成功[IPv6セッション]
     SEQ=30              00000000  00000000  00000000  00000000    ................
 98. 2022/12/16 17:59:08 BNE-OpS端末管理部 端末情報登録成功
     SEQ=00              XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX    REGIST OK
 99. 2022/12/16 17:57:34 JavaVM起動
     SEQ=00              20202020  20202020  20202020  20202020
100. 2022/12/16 17:57:14 自動無線チャネル設定 チャネル: 52 AP数: 0
     SEQ=00              XXXXXXXX  00003020  00000000  00000000     52/ 0..........
PS C:\Users\daichi\Documents\powershell\20230119\sources>

PowerShellスクリプトからログデータが取得できていることを確認できる。

例えば、このスクリプトをさらに加工して日付別にファイルに保存するような仕組みにする。そうすると日ごとにログファイルが生成されていくので、今度はログファイルをチェックして問題を検出するPowerShellスクリプトを作成し、こちらも自動的に動作するように仕掛けておけばよい。

一つ一つのスクリプトはシンプルで簡単なものだが、作成してタスクマネージャ経由で動作させることで手軽に業務を実行できる。これがPowerShellの真骨頂の一つだ。

付録

webdriver_edge_start.ps1

#!/usr/bin/env pwsh

#========================================================================
# Microsoft Edge WebDriverを起動する
#========================================================================

#========================================================================
# 動作しているMicrosoft Edge WebDriverをすべて終了
#========================================================================
webdriver_edge_stop.ps1

#========================================================================
# Seleniumモジュールがない場合にはインストール
#========================================================================
if (-Not (Get-InstalledModule -Name Selenium 2> $Null)) {
    'Seleniumモジュールをインストールします。'
    Install-Module -Name Selenium -AllowPrerelease -Force
    Get-InstalledModule -Name Selenium
}

#========================================================================
# Microsoft Edge WebDriverを起動
#========================================================================
'Microsoft Edge WebDriverを起動します。'
$Size = '1200,800'
if  (-Not (Start-SeDriver -Browser Edge -Size $Size 2> $Null 3> $Null))
{
    #================================================================
    # Microsoft EdgeとMicrosoft Edge WebDriverのバージョンが一致して
    # いないためにドライバが動作しなかった可能性がある。
    #================================================================

    #================================================================
    # 不要なドライバプロセスを終了
    #================================================================
    webdriver_edge_stop.ps1

    #================================================================
    # Microsoft Edgeのバージョン番号
    #================================================================
    $EdgeDir='C:\Program Files (x86)\Microsoft\Edge\Application\'
    $EdgeVersion=(  Get-ChildItem -Name $EdgeDir                    | 
                    Where-Object { $_ -NotMatch "[a-zA-Z]+" }       |
                    Select-Object -First 1                          )
                    # ↑ 【Select-Object -First 1の理由】
                    # 更新前のバージョンと更新後のバージョンが同時に
                    # 存在するタイミングがあるので、更新後のバージョン
                    # のみを取得するためにSelect-Objectを実行している。

    #================================================================
    # Microsoft Edge WebDriverダウンロードURLとデプロイ先パス
    #================================================================
    $DriverURL="https://msedgedriver.azureedge.net/$EdgeVersion/edgedriver_win64.zip"

    $SeModVer=(Get-InstalledModule -Name Selenium).Version -replace "-.+$",""
    $DriverDir="$env:HOME\Documents\powershell\Modules\Selenium\$SeModVer\assemblies"
    $DriverDownloadDir="$DriverDir\_download"

    #================================================================
    # WebDriverダウンロード用の一時ディレクトリを作成
    #================================================================
    New-Item        $DriverDownloadDir -ItemType Directory -Force

    #================================================================
    # Microsoft Edgeと同じバージョンのMicrosoft Edge WebDriverを
    # ダウンロード
    #================================================================
    "Microsoft Edge WebDriver version $EdgeVersion をダウンロードします。"
    curl            -get                                            `
                    -o      $DriverDownloadDir\edgedriver_win64.zip `
                    $DriverURL

    #================================================================
    # Microsoft Edge WebDriverをデプロイ
    #================================================================
    "Microsoft Edge WebDriver version $EdgeVersion をインストールします。"
    Expand-Archive  -Path $DriverDownloadDir\edgedriver_win64.zip   `
                    -Destination $DriverDownloadDir                 `
                    -Force

    Copy-Item       -Path $DriverDownloadDir\msedgedriver.exe       `
                    -Destination $DriverDir\msedgedriver.exe        `
                    -Force

    #================================================================
    # WebDriverダウンロード用の一時ディレクトリを削除
    #================================================================
    Remove-Item     $DriverDownloadDir -Recurse -Force

    #================================================================
    # Microsoft Edge WebDriverを起動する
    #================================================================
    if      (-Not (Start-SeDriver -Browser Edge -Size $Size 2> $Null 3> $Null)) 
    {
            #========================================================
            # 原因不明の起動不能
            #========================================================

            #========================================================
            # 不要なドライバプロセスを終了
            #========================================================
            webdriver_edge_stop.ps1

            Exit
    }
}
'Microsoft Edge WebDriverの起動処理完了。'

webdriver_edge_stop.ps1

#!/usr/bin/env pwsh

#========================================================================
# Microsoft Edge WebDriverを終了する
#========================================================================

#========================================================================
# WebDriverプロセスを終了
#========================================================================
if  (Get-Process -Name msedgedriver 2> $Null) 
{
    '動作しているMicrosoft Edge WebDriverを終了します。'
    Get-Process -Name msedgedriver 2> $Null

    # Microsoft Edge WebDriverを終了
    Stop-SeDriver 2> $Null

    # まだ動作しているほかのMicrosoft Edge WebDriverを終了
    if      (Get-Process -Name msedgedriver 2> $Null) 
    {
            Get-Process -Name msedgedriver 2> $Null | Stop-Process
    }

    '動作しているMicrosoft Edge WebDriverの終了処理完了。'
}