调用 ResMethod Rest API
Invoke-ResMethod Rest API
这是我第一次接触这里。
我正在尝试使用 json code powershell 为 Ivanti Appsense 创建脚本,但我遇到了一个问题
我不断收到 return 消息“请求无效”,我希望能得到一些帮助
所以在 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
但是当我 运行 它并使用正确的凭据时,这是我的输出
这可能不是您问题的全部答案,但一个问题是您将无效的 json 发送到 API。
您可以使用 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 是有效的。
这是我第一次接触这里。
我正在尝试使用 json code powershell 为 Ivanti Appsense 创建脚本,但我遇到了一个问题
我不断收到 return 消息“请求无效”,我希望能得到一些帮助 所以在 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
但是当我 运行 它并使用正确的凭据时,这是我的输出
这可能不是您问题的全部答案,但一个问题是您将无效的 json 发送到 API。
您可以使用 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 是有效的。