Powershell - 遍历 json 文件

Powershell - iterating through json file

我的 json 文件如下所示:

[
    {
        "OU":  "ABC",
        "OUDN":  "OU=x,OU=x,DC=x,DC=x,DC=x"
    },
    {
        "OU":  "XYZ",
        "OUDN":  "OU=x,OU=x,DC=x,DC=x,DC=x"
]

“OU”是 AD 组织单位的名称

“OUDN”是 AD 组织单位的关联可分辨名称

我想获取 json 文件中每个组织单位的描述(AD 属性):

Get-ADOrganizationalUnit -Identity "DistinguishedName of the OU"|FT description

我该怎么做?如何遍历我的 json 文件?

我的做法:

$OU = (Get-Content -path "C:\file.json"|ConvertFrom-JSON).OU
$OUDN = (Get-Content -path "C:\file.json"|ConvertFrom-JSON).OUDN

foreach ($item in $OU) {
Get-ADOrganizationalUnit -Identity ????? }

非常感谢!

你已经很接近了,你可以用 foreach 循环遍历 Json 对象的元素,就像你已经在做的那样:

$json = Get-Content 'C:\file.json' | ConvertFrom-Json

$ous = foreach($item in $json) {
    Get-ADOrganizationalUnit $item.OUDN -Properties Description
}

$ous | Select-Object Name, Description

请注意,您不需要为每个 属性 两次 Get-Content,Json 的每个对象都包含两个属性的值(OUOUDN):

PS /> $json[0]

OU  OUDN
--  ----
ABC OU=x,OU=x,DC=x,DC=x,DC=x

PS /> $json[0].OUDN

OU=x,OU=x,DC=x,DC=x,DC=x