我正在尝试使用Powershell cmdlet Invoke-RestMethod从ServiceNow检索250多条记录。
是否有我可以使用的powershell脚本?
答案 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
}
}