Я впервые обращаюсь сюда.
Я пытаюсь создать скрипт для Ivanti Appsense, используя json code powershell, но столкнулся с проблемой
я продолжаю получать ответное сообщение «запрос недействителен», я надеюсь, что смогу получить некоторую помощь так что в 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
однако, когда я запускаю его и использую правильные учетные данные, это мой вывод
🤔 А знаете ли вы, что...
С помощью PowerShell можно выполнять удаленное управление компьютерами и серверами по сети.
Это может быть не весь ответ на вашу проблему, но одна из проблем заключается в том, что вы отправляете недопустимый 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 действителен.