1. ホーム
  2. rest

[解決済み] Powershellです。アウトファイル - パスへのアクセスは拒否されました

2022-02-09 13:16:34

質問内容

PDFファイルをダウンロードするためのRESTコール(POST)を持っています。APIコールは、PDFファイルのバイナリバージョンで応答します。私は自分のマシンにファイルを.pdfとして保存したいのです。しかし、私はエラーを受け取っています。

Out-File : Access to the path 'C:\Usersmy-name⇄Documents⇄Tests' is denied.
At C:\Usersmy-name﹑Documents﹑Test﹑WITH-LOOP.ps1:132 char:149
+ ... questBody | Out-File -FilePath ("C:\Usersmy-name
    + CategoryInfo : OpenErrorです。(:) [アウトファイル], UnauthorizedAccessException
    + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

POSTMANからのレスポンスボディヘッダーです。

Content-Disposition →attachment; filename="Report-01_29_14-28.pdf"
コンテンツタイプ →application/octet-stream
DataServiceVersion →2.0
日付 →Mon, 29 Jan 2018 21:51:31 GMT
日付 →2018年1月29日(月) 21:51:31 GMT
Server →Jetty(9.3.7.v20160115NeotysEdition.30)
転送エンコード →chunked

コマンドです。

$DownloadReportResponse = Invoke-RestMethod -Method Post -Uri $DownloadReportUrl -ContentType "application/json" -Body $DownloadReportRequestBody |
    Out-File -FilePath ("C:\Users\my-name\Documents\Tests") -Force

質問です。 これを自分のマシンに.pdfとして保存したり、場合によってはメールに添付するにはどうしたらよいでしょうか?

解決方法は?

さて、このエラーは少し誤解を招くものです。あなたは、出力ファイルを C:\Users\my-name\Documents\Tests しかし、それはすでにディレクトリとして存在しているため、アクセス違反となります。フルパスでファイルを作成してください。

Invoke-RestMethod ... |
    Out-File "C:\Users\my-name\Documents\Tests\Report-01_29_14-28.pdf"