PowerShellでcurlを使う方法|Invoke-WebRequestとの違いも解説

目次

スポンサードリンク

PowerShellでは、Linuxのように curl コマンドを使うことができます。ただし、シンプルに curl と入力した場合と、curl.exe と入力した場合で動作するコマンドが異なる可能性がある点が注意点です。

curl は PowerShellでは Invoke-WebRequest の「エイリアス」

PowerShellでは、シンプルに curl だけを入力すると、Invoke-WebRequest のエイリアスと認識されることがあります。Get-Command コマンドで curl の実体を調べると、Invoke-WebRequest のエイリアスであることが分かります。

PS C:\Users\username> Get-Command curl

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           curl -> Invoke-WebRequest

一方、本来のcURL(curl.exe)を明示的に指定すると、「C:\Windows\system32\curl.exe」が利用できることが分かります。

PS C:\Users\username> Get-Command curl.exe

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     curl.exe                                           8.12.1.0   C:\Windows\system32\curl.exe

なお、Invoke-WebRequest についても同様に調べると、PowerShell組み込みのユーティリティ機能として提供されていることが分かります。

PS C:\Users\username> Get-Command  Invoke-WebRequest

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Invoke-WebRequest                                  3.1.0.0    Microsoft.PowerShell.Utility

curl.exe と Invoke-WebRequest の違い

curl.exe と Invoke-WebRequest では、出力形式や利用可能な環境が異なります。Linuxライクに curl を利用したい場合は、curl.exe を使った方が良いでしょう。また、PowerShellの各種コマンドと組み合わせて利用したい場合は、Powershell と親和性が高い Invoke-WebRequest も候補になります。

項目 curl.exe Invoke-WebRequest
出力 プレーンテキスト(HTML/JSONなど) .NETオブジェクト(ParsedHtml等)
利用可能 Windows 10以降(curl.exe同梱) PowerShell 3.0以降
機能の豊富さ 豊富(HTTP/FTP/SSL等) 比較的シンプル、PowerShellと親和性高い
JSONとの相性 良い(手動で ConvertFrom-Json 出力形式によって扱いやすさが異なる

まとめ

PowerShellで curl を使う際には、「エイリアス」に注意が必要です。本来の curlを使いたいなら、.exe を明示して利用しましょう。必要に応じて使い分け、PowerShellでのネットワーク操作を快適に行いましょう。


コマンドプロンプトのポケットリファレンス:Windows11対応版
Windows環境で開発やシステム管理を行うエンジニアにとって、コマンドプロンプトの知識は非常に重要なスキルセットです。こちらの書籍は初心者にもわかりやすく網羅的です。手元に置いておきたい一冊です。

PowerShellの基礎を一通り学べるおすすめ書籍