我通过使用以下方法从PowerShell脚本中创建用户:将从AD收集的数据发布到启用REST API的Web门户,
$response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -Body $body
其中$ body是JSON格式的proper有效负载,如下所示:
{
"email" : "klaus.mueller@domain.com",
"firstname" : "Klaus",
"lastname" : "Müller",
"active" : "true",
"superadmin" : "false"
}
如果名称中没有德语字母,则全部为OK。并创建用户。当出现德语字符时,我收到来自服务器的400:错误请求响应。
我是否可以通过设置编码来更改Invoke-RestMethod的行为,或者可以将其服务器配置为不接收字符?
答案 0 :(得分:2)
This is similar to this question.
如@Keith Hill所说
PowerShell中的字符串是Unicode,但是您已经指定了UTF8编码,所以我认为您需要对UTF8有所帮助。
虽然链接的线程引用了Invoke-WebRequest,但是该编码对于Invoke-RestMethod仍然应该有效。
您的请求应如下所示
$response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($body))