スクリプトの実行禁止を解除しておく。
PowerShell を管理者として実行
スタート (右クリック) から「Windows PowerShell(管理者)(A)」を選択
>_ 管理者: Windows PowerShell
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6 PS C:\WINDOWS\system32> Get-ExecutionPolicy # スクリプトの実行ポリシーを確認 Restricted # スクリプトの実行が制限されている PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned # ローカルファイルのスクリプトを実行可能にする 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_E xecution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"):Y # Y を入力する PS C:\WINDOWS\system32> Get-ExecutionPolicy RemoteSigned # ローカルファイルのスクリプトが実行可能になった PS C:\WINDOWS\system32> exit
ファイル名: pinglog.ps13. 実行する
# ファイル名: pinglog.ps1 if ($Args.length -le 0) { # 引数なしで実行された場合は使い方を表示して終了する "'ping_HOST_YYYYMMDD 曜日.csv' を作成するスクリプト。" "使い方: PowerShell.exe pinglog.ps1 HOST" " 例: PowerShell.exe pinglog.ps1 www.example.com" exit } $pingTo = $Args[0] # ICMP パケットの送信先 $getdate = Get-Date -format "yyyyMMddHH:mm:ssddd" $date = $getdate.Substring(0,8) # 日付 YYYYMMDD ログファイル名に使用する $time = $getdate.Substring(8,8) # 時刻 HH:MM:SS $wday = $getdate.Substring(16,1) # 曜日 日月火水木金土 $logFile = "ping_" + $pingTo + "_" + $date + " " + $wday + ".csv" # ログファイルを指定する # ログファイルの最初の行に項目名を入れる if ((Test-Path $logFile) -eq $false) { Write-Output "$pingTo,時刻,パケットロス(%),遅延(ms)" | Add-Content $logFile } $pingResult = ping -n 10 $pingTo # ping を 10 回実行する # ping の実行結果から パケットロス率、平均時間 を取り出す $pktLoss = $null $avrTime = $null foreach ( $line in $pingResult ) { if ($line -match "\((?<PktLoss>.*?)% の損失\)") { $pktLoss = $Matches.PktLoss } if ($line -match "平均 = (?<AvrTime>.*?)ms") { $avrTime = $Matches.AvrTime } } # 送信先、時刻、パケットロス率、平均時間 をログファイルに追記する Write-Output "$pingTo,$time,$pktLoss,$avrTime" | Add-Content $logFile
PowerShell を実行 (管理者でなくても可)
スタート (右クリック) から「Windows PowerShell(I)」を選択
※ powershell.exe のフルパスは C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
>_ Windows PowerShell
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6 PS C:\WINDOWS\system32> powershell.exe .\pinglog.ps1 www.example.com PS C:\WINDOWS\system32> exit
※タスクスケジューラーに登録する場合はフルパスを指定する。