当我尝试使用以下PowerShell命令读取此网址时,无法打开页面
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中打开该网址并下载json输出?
请对此提供帮助,感谢您的帮助,请发布代码
答案 0 :(得分:2)
您在这里有两个问题。我想你自己回答了第一个。如何在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
,那么如果您的站点使用客户端访问证书,则可以使用certificate
或certificatethumbprint
参数,如果您的站点使用客户端访问证书,则可以使用UseDefaultCredentials
参数您当前的凭据在该网站上工作,或者您可能需要创建标头集合并使用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
除非您确实试图将内容保存到文件中以供以后使用。