You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:PowerShell调用Emsisoft API创建工作区时遇解析错误

解决Emsisoft API创建工作区的PowerShell脚本解析错误问题

错误原因

你碰到的ValidationFailed错误,核心问题是PowerShell不会自动把哈希表序列化为JSON。即使你在请求里指定了Content-Type: application/json,直接把哈希表传给Invoke-RestMethod的-Body参数时,它会把哈希表编码成表单数据(比如name=xxx&securityManagementLevel=xxx),而不是API需要的JSON格式,导致解析失败。

修复后的脚本

把哈希表通过ConvertTo-Json转换成JSON字符串后再传给-Body,同时避免重复设置Content-Type:

# Define your API endpoint URL
$apiUrl = "https://api.emsisoft.com/v1/workspaces"

# Set your API key
$apiKey = "XXXXXXXXXXXXXXXXXXXXXXX"

# Create headers with API-KEY and ACCEPT
$headers = @{
    "API-KEY" = $apiKey
    "ACCEPT" = "application/json"
}
$body = @{
        "name"="XXXXXXXXXXXXXXXXXXXXXXX"
        "securityManagementLevel"="LocalAndRemote"
        "licenseKey"="ABC-XXX-XXX-123"
} | ConvertTo-Json  # 将哈希表转为JSON格式

# Make the API request
try {
    $response = Invoke-RestMethod -Uri $apiUrl -Headers $headers -Method Post -Body $body -ContentType 'application/json'

    Write-Host "API request successful!"
} catch {
    Write-Host "Error: $_"
}

关键说明

  • ConvertTo-Json是核心:它会把PowerShell的哈希表结构转换成符合标准的JSON字符串,确保API能正确解析请求体。
  • 移除了Headers中的Content-Type:因为Invoke-RestMethod的-ContentType参数已经指定,重复设置没必要,也可能引发潜在的配置冲突。

内容的提问来源于stack exchange,提问作者user23704376

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 15:27:44