我正在尝试使用 Powershell cmdlet Invoke-RestMethod 从 ServiceNow 检索超过 250 条记录。
是否有我可以使用的 powershell 脚本?
问问题
4482 次
1 回答
1
老话题,但也许这个答案仍然有帮助。
我发现如果我请求超过一定数量的结果,似乎什么都不会返回。这对我有用(将 300 更改为您想要的任何数字并删除&符号后的任何条件):
$restapiuri = "https://yourserver.service-now.com/api/now/table/incident?sysparm_limit=300&sysparm_query=active=true^ORDERBYDESCnumber"
使用您喜欢的任何方法来获取凭据:
$SNowUser = “account username”
$SNowPass = ConvertTo-SecureString –String “Password” –AsPlainText -Force
$SNowCreds = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $SNowUser, $SNowPass
接下来应该比较熟悉了。我们正在构建请求,调用它并将结果分配给一个变量($completeticket)。如果不添加“| out-string”,您可能看不到任何结果。
我还通过在结果的第一行中查找唯一文本并将其分配给变量 ($separatetickets) 然后遍历每个事件 ($separateticket) 来将结果拆分为单个事件。
$i = 0
$headers = Get-HttpBasicHeader $Credentials
Invoke-RestMethod -uri $restapiuri -Headers $headers -Method GET -ContentType "application/json" |
% {
$completeticket = $_.result | Out-String
$separatetickets = $completeticket -split "whatever the first line of your record is"
foreach ($separateticket in $separatetickets) {
$i++
Write-Host
Write-Host "$i" -ForegroundColor White
Write-Host "$separateticket" -ForegroundColor Magenta
}
}
于 2015-04-23T21:18:00.060 回答