WindowsPowerShell

PowerShellのネットワーク操作【Test-Connection・Invoke-WebRequest・REST API呼び出し】

WindowsPowerShell
記事内に広告が含まれています。

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 443

HTTPリクエスト(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を自動でオブジェクトに変換して取得できる

コメント

タイトルとURLをコピーしました