所以我试着解决这个问题已经有几天了,只是找不到有用的东西,所以我希望你能帮我或者指出正确的方向。
我正在创建一个powershell脚本,它在Active Directory中创建服务帐户,在脚本的末尾创建用户名和密码,然后存储在企业密码库中。REST Api用于在此库中存储凭据。我有点小问题,把我的powershell转换成嵌套的Json,没有嵌套的它工作得很好.
我需要了解的JSON输出如下:
{
"account":{
"safe":"Test_safe",
"platformID":"WindowsDomainAccount",
"address":"ad.local",
"password":"password",
"username":"test",
"disableAutoMgmt":"true",
"disableAutoMgmtReason":"test",
"properties":
[
{"Key":"Title", "Value":"Test Account"},
{"Key":"Description", "Value":"REQ0000001"},
]
}
}这是我的Powershell,不包括“属性”嵌套,它工作得很好。
$hash = [ordered]@{
account = [ordered]@{
safe="ServiceAccounts";
platformID="WindowsDomainAccount";
address="ad.local";
password="Password1";
username="svc-test";
disableAutoMgmt="true";
disableAutoMgmtReason="testing";
}
}
$json = $hash | ConvertTo-Json
$invoke = Invoke-Webrequest -Uri $url -Method "POST" -Body $json -ContentType "application/json" -Header @{"Authorization" = $header} -ErrorAction Stop -ErrorVariable WebError当我尝试添加我的powershell时,问题就开始了。
"properties":
[
{"Key":"Title", "Value":"Test Account"},
{"Key":"Description", "Value":"REQ0000001"},
]我认为我的第一个问题是,关键字也是一个powershell关键字。
我尝试过许多不同的组合,并尝试了我发现的其他文章中的很多东西,但我发现的大多数事情都是通过Powershell解析嵌套的Jason返回。
希望这一切都有意义。
发布于 2016-09-01 14:48:07
下面的代码适用于我(PS,v4),并且似乎以您想要的格式返回json。
$hash = [ordered]@{
account = [ordered]@{
safe="ServiceAccounts";
platformID="WindowsDomainAccount";
address="ad.local";
password="Password1";
username="svc-test";
disableAutoMgmt="true";
disableAutoMgmtReason="testing";
properties = @(
@{"Key"="Title"; "Value"="Test Account"},
@{"Key"="Description"; "Value"="REQ0000001"}
)
}
}
$json = $hash | ConvertTo-Json -Depth 99
$json上面的输出..。
{
"account": {
"safe": "ServiceAccounts",
"platformID": "WindowsDomainAccount",
"address": "ad.local",
"password": "Password1",
"username": "svc-test",
"disableAutoMgmt": "true",
"disableAutoMgmtReason": "testing",
"properties": [
{
"Key": "Title",
"Value": "Test Account"
},
{
"Key": "Description",
"Value": "REQ0000001"
}
]
}
}https://stackoverflow.com/questions/39273545
复制相似问题