我有一個關于從data.jsonpowershell 中的檔案讀取 LDAP 基礎的問題。我希望 memberOf 欄位只列印像groupname它自己這樣的組名,而不是像CN=groupname,OU=Groups,DC=domain,DC=local.
我的代碼:
cls
$data = Get-Content C:\data.json | ConvertFrom-Json
$entries = $data.entries
$users = $entries.attributes
$i = 1
foreach ($user in $users){
$sAMAccountName = $user.sAMAccountName
$memberOf = $user.memberOf
echo $i
echo $sAMAccountName
echo $memberOf
echo "-----------------------"
$i
}
$i = $null
輸出:
1
batman
CN=Gotham,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
CN=DC-comics,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
CN=Justice-League,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
-----------------------
2
superman
CN=Metropolis,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
CN=DC-comics,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
CN=Justice-League,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
-----------------------
3
ironman
CN=New-York,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
CN=Marvel,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
CN=Avengers,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local
-----------------------
我想得到:
1
batman
Gotham
DC-comics
Justice-League
-----------------------
2
superman
Metropolis
DC-comics
Justice-League
-----------------------
3
ironman
New-York
Marvel
Avengers
-----------------------
uj5u.com熱心網友回復:
應該做的伎倆:
$memberOf = ($user.memberOf -split ',')[0] -replace 'cn='
example:
("CN=Gotham,OU=Groups,OU=UNIVERSUM,DC=universum,DC=local" -split ',')[0] -replace 'cn='
#Output:
Gotham
但$user.memberOf可能是一個陣列,你可以這樣做:
$memberOf = $user.memberOf | %{($_ -split ',')[0] -replace 'cn='}
$memberOf | %{
write-host $_
}
或僅替換:
$memberOf = $user.memberOf | %{$_ -replace 'cn=|,.*'}
$memberOf | %{
write-host $_
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521952.html
標籤:电源外壳解析LDAP
下一篇:從陣列中洗掉最后一個逗號
