获取ServiceNow Records Powershell - 超过250个

时间:2014-09-08 17:39:16

标签: json powershell servicenow

我正在尝试使用Powershell cmdlet Invoke-RestMethod从ServiceNow检索250多条记录。
是否有我可以使用的powershell脚本?

1 个答案:

答案 0 :(得分: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)。没有添加" |出字符串"你可能看不到任何结果。

我还通过在结果的第一行中查找唯一文本并将其分配给变量($ 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
    }
}