這是我第一次接觸這里。
我正在嘗試使用 json 代碼 powershell 為 Ivanti Appsense 創建一個腳本,但我遇到了問題
我不斷收到一條回傳訊息“te request is invalid”我希望我能得到一些幫助,所以在PowerShell中這是我的代碼
$url = "http://server/path/api/ImmediateTask"
$cred = Get-Credential
$body = @"
{
"id":"the ID",
"operations" = [
{
"windowsSettingsGroupDisplayName": "_Active Setup",
"operation":{
"liveSettingsDelete":{
"deleteRegistry": true,
"deleteFiles": true,
"preserveArchives": true
}
}
}
"@
$request = Invoke-RestMethod -Method post -Credential $cred -Uri $url -Body $body -ContentType "application/json"
$request
但是,當我運行它并使用正確的憑據時,這是我的輸出

uj5u.com熱心網友回復:
這可能不是您問題的全部答案,但一個問題是您正在向 API 發送無效的 json。
您可以使用 PowerShell 的功能以編程方式生成 json 字串,而不是自己手動生成。這樣,如果您的語法無效,PowerShell 將為您提供更有意義的錯誤訊息,而不是等待 API 給您一個通用的“發生錯誤”訊息:
$data = [ordered] @{
"id" = "the ID"
"operations" = @(
[ordered] @{
"windowsSettingsGroupDisplayName" = "_Active Setup"
"operation" = [ordered] @{
"liveSettingsDelete" = [ordered] @{
"deleteRegistry" = $true
"deleteFiles" = $true
"preserveArchives" = $true
}
}
}
)
};
$json = ConvertTo-Json $data -Depth 99;
write-host $json
#{
# "id": "the ID",
# "operations": [
# {
# "windowsSettingsGroupDisplayName": "_Active Setup",
# "operation": {
# "liveSettingsDelete": {
# "deleteRegistry": true,
# "deleteFiles": true,
# "preserveArchives": true
# }
# }
# }
# ]
#}
$data基本上是在構建一個嵌套的哈希表結構,PowerShell(和您的 IDE)會警告您是否缺少括號、未閉合的引號等。
ConvertTo-Json將此結構化物件轉換為 json 字串。
執行此操作后,您可能仍會從 API 中收到錯誤,但至少您會知道您的 json 是有效的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/476550.html
