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バージョンを設定
⚠️ エラー: アクセス拒否
対処: ヘッダーや認証情報を確認
⚠️ エラー: JSON処理が面倒
対処: 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の方が便利です。

🔗 詳しくはこちら