如果該組的成員數量少于 3,我想像下面這樣匯出這些成員。順便說一句,也有嵌套組。
我想要的輸出:
Members,Group Name,Members Count,Members
NO,Group01,10
NO,Group02,1,user01
YES,Group03,2,user01;user02
這是我的腳本:
Import-Csv -Path "C:\tmp\unused.csv" | ForEach-Object {
$out = @{ 'Group Name' = $_.Name }
if((Get-ADGroup $_.Name -Properties Member).Member) {
$out['Members'] = 'YES'
}
else {
$out['Members'] = 'NO'
}
[pscustomobject] $out
} | Export-Csv "C:\tmp\export.csv" -NoTypeInformation -Encoding UTF8
uj5u.com熱心網友回復:
這應該會給您預期的結果,請注意,Get-ADGroupMember將為每個組遞回回傳所有成員,如果這不是您想要的,請洗掉該-Recursive引數。
另請注意,這可能會回傳任何物件類作為組的成員(計算機、其他組、用戶、服務帳戶...),您只想將用戶定位為成員,請使用以下命令:
$members = @(Get-ADGroupMember $_.Name -Recursive).where{ $_.objectClass -eq 'user' }
代碼
Import-Csv -Path "C:\tmp\unused.csv" | ForEach-Object {
$out = [ordered]@{
'HasMembers' = ''
'Group Name' = $_.Name
'Members Count' = ''
'Members' = ''
}
# using `-Recursive` since there can be nested groups
$members = @(Get-ADGroupMember $_.Name -Recursive)
# if count is 0
if(-not $members.Count) {
$out['HasMembers'] = 'NO'
}
# if count is lower than 3 and greater than 0
elseif($members.Count -lt 3) {
$out['HasMembers'] = 'YES'
$out['Members'] = $members.Name -join ';'
}
# if count is greater than 2
else {
$out['HasMembers'] = 'YES'
}
$out['Members Count'] = $members.Count
[pscustomobject] $out
} | Export-Csv "C:\tmp\export.csv" -NoTypeInformation -Encoding UTF8
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478644.html
標籤:电源外壳
上一篇:輸入視窗關閉時關閉應用程式,如果輸入為空或不對應值則回傳啟動
下一篇:獲取兩個標簽之間的資料
