Страница 1 из 1

Посчитать количество пользователей из списка групп

Добавлено: Пт янв 15, 2021 2:00 pm
Scrat2005
День добрый! Снова пришлось к Вам обратиться. Стоит задача посчитать количество активных юзеров(неотключенных) в нескольких группах.
Есть вот такой скрипт, работает, НО....
cls
$someFile = "C:\Reports\IN-USER_Group.txt" # в списке 104 группы
$Groups = Get-Content -Path $someFile -Encoding UTF8
foreach ($Group in $Groups) {
(Get-ADGroup $Group -Properties *).Member.Count # Get-Aduser -Filter {Enabled -eq $True} - как его добавить в скрипт???
}

результат выводит вот такой:
13
234
18
104
и т.д.
как сделать,чтобы показывало вот так:
Группа1 - 13
Группа2 - 234
Группа3 - 18
Группа4 - 104
Заранее благодарен за ответ.

Re: Посчитать количество пользователей из списка групп

Добавлено: Вс янв 17, 2021 3:46 pm
Scrat2005
День добрый! Вот готовый скрипт. Рабочий проверенный.
В текстовом файле группы построчно:
in-ca
in-cw
in-bd
=================================================================================================================
# посчитать количество пользователей в группах....
cls
$Groups = Get-Content c:\Reports\IN-USER_Group.txt -Encoding UTF8
$Results = ForEach ($Group in $Groups)
{
[PSCustomObject]@{
Name = $Group
Count = Get-ADGroupMember $Group -Recursive | Select Name -Unique | Measure-Object | Select -ExpandProperty Count
}
}
$Results | Export-Csv c:\script\Results_inuser.csv -NoTypeInformation -Encoding UTF8 -Delimiter ";"

==================================================================================================================
на выходе получаем:
in-ca - 146
in-cw - 82
in-bd - 0
==================================
не смог отсечь пустые группы и отключенных пользователей в группах....

Re: Посчитать количество пользователей из списка групп

Добавлено: Ср апр 14, 2021 4:58 pm
sanglyb
По идее вот так должно работать:

Код: Выделить всё

# посчитать количество пользователей в группах....
cls
$Groups = Get-Content c:\Reports\IN-USER_Group.txt -Encoding UTF8
$Results = ForEach ($Group in $Groups)
{
[PSCustomObject]@{
Name = $Group
Count = Get-ADGroupMember $Group -Recursive | get-aduser | where-object {$_.Enabled -eq $true} | select Name | measure-object | select -ExpandProperty Count
}
}
$results = $results | where-object {$_.Count -gt 0}
$Results | Export-Csv c:\script\Results_inuser.csv -NoTypeInformation -Encoding UTF8 -Delimiter ";"