PowerShellにはネットワーク操作のための強力なコマンドレットが揃っています。疎通確認からWeb API呼び出しまで、バッチファイルよりはるかに簡単に実装できます。
疎通確認(Test-Connection)
# pingに相当
Test-Connection -ComputerName "google.com" -Count 3
# シンプルに成否だけ確認
if (Test-Connection -ComputerName "8.8.8.8" -Quiet) {
Write-Host "接続OK"
} else {
Write-Host "接続NG"
}
# ポートの疎通確認(TCP)
Test-NetConnection -ComputerName "hobbyshift.com" -Port 443HTTPリクエスト(Invoke-WebRequest)
# ページの取得
$res = Invoke-WebRequest -Uri "https://example.com"
$res.StatusCode # 200
$res.Content # HTMLの中身
# ファイルのダウンロード
Invoke-WebRequest -Uri "https://example.com/file.zip" -OutFile "C:\temp\file.zip"REST API呼び出し(Invoke-RestMethod)
# GETリクエスト(JSONが自動でオブジェクトに変換される)
$data = Invoke-RestMethod -Uri "https://api.github.com/users/microsoft"
Write-Host $data.name, $data.public_repos
# POSTリクエスト
$body = @{ name="Taro"; age=25 } | ConvertTo-Json
$res = Invoke-RestMethod -Uri "https://api.example.com/users" `
-Method POST `
-Body $body `
-ContentType "application/json" `
-Headers @{ Authorization="Bearer YOUR_TOKEN" }まとめ
- Test-ConnectionはpingのPS版、Test-NetConnectionでポート確認もできる
- Invoke-WebRequestでHTMLやファイルを取得できる
- Invoke-RestMethodでREST APIのJSONを自動でオブジェクトに変換して取得できる



コメント