Invoke-WebRequest の使い方(PowerShell完全ガイド)
Invoke-WebRequest は、PowerShellでHTTP/HTTPSリクエストを送信し、 WebページやAPIからデータを取得するためのコマンドレットです。
🌐 ポイント: curl のように使えるが、PowerShellオブジェクトとして結果を扱えるのが強みです。
基本構文
Invoke-WebRequest -Uri "https://example.com"
レスポンスはオブジェクトとして返され、HTMLやヘッダーにアクセスできます。
主な用途
- Webページの取得
- API呼び出し(REST)
- ファイルダウンロード
- フォーム送信
レスポンスの扱い
返されるオブジェクトには以下が含まれます:
.Content→ HTML本文.StatusCode→ HTTPステータス.Headers→ ヘッダー情報
ファイルダウンロード例
Invoke-WebRequest -Uri "https://example.com/file.zip" -OutFile "file.zip"
指定したURLからファイルをダウンロードできます。
API呼び出し(GET)
Invoke-WebRequest -Uri "https://api.example.com/data" -Method GET
POSTリクエスト例
Invoke-WebRequest -Uri "https://api.example.com" -Method POST -Body @{key="value"}
フォームデータやJSON送信にも対応しています。
ヘッダーの指定
Invoke-WebRequest -Uri "https://api.example.com" -Headers @{Authorization="Bearer TOKEN"}
よくある問題と対処法
⚠️ エラー: TLS/SSLエラー
対処: TLSバージョンを設定
対処: TLSバージョンを設定
⚠️ エラー: アクセス拒否
対処: ヘッダーや認証情報を確認
対処: ヘッダーや認証情報を確認
⚠️ エラー: JSON処理が面倒
対処: Invoke-RestMethod を使用
対処: Invoke-RestMethod を使用
Invoke-WebRequest vs Invoke-RestMethod
📌 違い:
- Invoke-WebRequest → HTMLやレスポンス全体
- Invoke-RestMethod → JSONを自動変換
実践例
スクリプトで定期的にAPIを取得:
- データ収集の自動化
- 監視ツールとの連携
- CI/CDパイプラインで使用
ベストプラクティス
- タイムアウト設定を使う
- 例外処理を実装する
- ログを記録する
- 認証情報を安全に管理する
🧠 dir.mdによる専門家の見解
Invoke-WebRequestは単なるHTTPツールではなく、PowerShellの自動化の中核です。
👉 特にAPI連携やDevOpsでは必須スキルです。
FAQ(Invoke-WebRequest)
Invoke-WebRequestとは何ですか?
PowerShellでHTTPリクエストを送信するコマンドです。
curlとの違いは?
PowerShellオブジェクトとして結果を扱える点です。
JSON APIには何を使うべき?
Invoke-RestMethodの方が便利です。