Я пытаюсь заставить PowerShell отправлять веб-запрос на наш сервер SSRS и фиксировать результаты. Я ударил стену, используя параметр rs:FORMAT=EXCEL
в строке URL-адреса SSRS. У меня есть следующие:SSRS и PowerShell: Получить отчет как Excel
Во-первых, инициализации учетных данных:
$User = "MYDOMAIN\MyUser"
$PWord = ConvertTo-SecureString -String "WooHooStringP$W0rd" -AsPlainText -Force
$c = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $User, $PWord
Теперь запросить отчет:
Invoke-WebRequest `
-UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer) `
-Credential $c `
-Uri "http://myserver/ReportServer_DEV/Pages/ReportViewer.aspx?/folder+path/report+name"
Это прекрасно работает. Я даже могу получить результаты (включая этот запрос и используя() .Content). Затем укажите формат вместо обычного рендеринга:
Invoke-WebRequest `
-UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer) `
-Credential $c `
-Uri "http://myserver/ReportServer_DEV/Pages/ReportViewer.aspx?/folder+path/report+name&rs:format=HTML4.0"
Обратите внимание на rs:Format
спецификации? Работает как шарм.
Тогда для гранд-финале, дайте мне файл Excel:
Invoke-WebRequest `
-UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer) `
-Credential $c `
-Uri "http://myserver/ReportServer_DEV/Pages/ReportViewer.aspx?/folder+path/report+name&rs:format=EXCEL"
Нет может сделать, бутон:
Invoke-WebRequest : The remote server returned an error: (401) Unauthorized.
At line:1 char:11
+ $bytez = (Invoke-WebRequest `
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Почему вариант rs:format=EXCEL
бросить несанкционированном исключение где все остальные URL-адреса обслуживаются SSRS?