前提・実現したいこと
SSRSを用いてSQLサーバーのデータを帳票を作成しました。
これを以下のURLアクセスによりPDFにエクスポートしたものを、ダウンロードし名前を付けて保存したいです。
http://<server_name>/ReportServer/Pages/Pages/ReportViewer.aspx?/test/無題&rs:Format=PDF
このURLアクセスは正常に動作しており、これをブラウザに貼り付けると"名前を付けて保存"のダイアログが表示されます。
※今回はダイアログの表示もさせずにPCのフォルダに保存することが目的です。
そこでWindos PowerShellのInvoke-WebRequestを使うことを考えましたが以下のエラーが発生しました。
発生している問題・エラーメッセージ
承認に関するエラーであることは調べてわかりましたが、いろいろ試してみてもうまくいきません。
Invoke-WebRequest : リモート サーバーがエラーを返しました: (401) 許可されていません 発生場所 C:\Users\name\Desktop\無題1.ps1:16 文字:1 + Invoke-WebRequest -Uri "http://<server_name>/ReportServer/Pages/Pages/Rep ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest]、WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
該当のソースコード
PowerShell
1$USER = "user_name" 2$PASS = "password" 3$secpasswd = ConvertTo-SecureString $PASS -AsPlainText -Force 4$cred = New-Object System.Management.Automation.PSCredential($USER, $secpasswd) 5Invoke-WebRequest -Uri "http://<server_name>/ReportServer/Pages/Pages/ReportViewer.aspx?/test/無題&rs:Format=PDF" -OutFile C:\Users\name\Desktop\新しいフォルダー\test.pdf -Credential $cred
試したこと
試しにWebポータルのURLに対してInvole-WebRequest を行ってみるとエラーは発生しませんでした。
WebポータルとWebサービスのユーザー名及びパスワードは別物ということなのでしょうか...?
PowerShell
1Invoke-WebRequest -Uri "http://<server_name>/Reports/" -Credential $cred
補足情報(FW/ツールのバージョンなど)
SQLServer2019
Windows10
あなたの回答
tips
プレビュー