【问题标题】:How to read an odata url and save it as a json file using PowerShell script如何使用 PowerShell 脚本读取 odata url 并将其保存为 json 文件
【发布时间】:2018-12-09 09:33:00
【问题描述】:

当我尝试使用以下 PowerShell 命令读取此 url 时,我无法打开页面

Start-Process "iexplore.exe" "https://sitename//odata/ScheduledJobs?$format=json&$expand=Application($select=Id,Name,AssetId;$expand=Asset($select=Id,Name)),JobType,JobInstances($filter=StartTime+eq+null;$orderby=NextRunTime+asc;$top=1),CompletedJobs($orderby=StartTime+desc;$top=1;$expand=State;$select=Id,StateId,StartTime,EndTime)&$top=20&$orderby=ScheduleStart&$filter=Enabled+eq+true&$count=true"

Get-Process | Out-File -filepath C:\Users\S.Papolu\Downloads\ScheduledJobs1.json

如何在 IE 中打开该 url 并下载 json 输出?

请帮助我,感谢您的帮助,请发布代码

【问题讨论】:

  • Start-Process 启动一个进程和一个 IE 实例。它不会读取页面上的数据。你应该使用Invoke-WebRequestInvoke-RestMethod 来做到这一点。获取数据后,在使用 Out-File 之前将其通过管道传输到 ConvertTo-Json

标签: json powershell odata powershell-2.0 powershell-3.0


【解决方案1】:

您有两个问题。我想你自己回答了第一个。如何在 Internet Explorer 中打开 URL?您的 start-process 声明就是这样做的。

第二个问题可能与第一个无关:如何将 JSON 下载到文件中。

您可以查看 invoke-webrequest cmdlet 以将 URL 的内容下载到文件中。 你想要类似的东西

$uri = "https://sitename//odata/ScheduledJobs?`$format..."
iwr -Uri $uri -OutFile C:\Users\S.Papolu\Downloads\ScheduledJobs1.json -UseBasicParsing

注意url的内容使用双引号和内容中$之前的反引号。您需要这样的东西来告诉 powershell 将 $ 作为文字传递,而不是尝试在此处替换名为 FORMAT 的变量。

如果您需要凭据来访问https://sitename,那么如果您的站点使用客户端访问证书,您可以使用certificatecertificatethumbprint 参数,如果您当前的凭据在站点上有效,则可以使用UseDefaultCredentials 参数,或者您可能需要创建一个 headers 集合和一个 Authorization 标头并传入一个有效的令牌。

$headers=@{"Authorization"="Bearer Your_BearerTokenHere"}
iwr -Uri $uri -OutFile 'C:\Users\S.Papolu\Downloads\ScheduledJobs1.json' -UseBasicParsing -Headers $headers

如果 uri 是纯 REST 端点,您也可以尝试 invoke-restmethod cmdlet。

最后,您可以尝试一种变体,将 JSON 转换为类似于

的局部变量
$response = iwr ....
$json = $response.Content | ConvertFrom-JSon

除非您真的想将内容保存到文件中以备后用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多