Войти

Показать полную графическую версию : [решено] Массив, подсчет кол-ва одинаковых значений и вывод таблицы


God-of-Chaos
16-03-2017, 02:02
Есть небольшая задачка, составить топ 10 имен пользователей в AD

Наваял скрипт, который подсчитывает всего кол-во имен в массиве, и сколько уникальных имен в массиве.
Требуется посчитать сколько раз эти уникальные имена встречаются в массиве
Что-то ни как не могу сообразить:(


# в какой OU ищем пользователей
$org="OU=Users,DC=domen,DC=local"

# получаем список пользователей у которых заполнен атрибут GivenName
$users = Get-ADUser -Filter {GivenName -like '*'} -SearchBase $org

#создаем пустой массив
$result_mas=@()

foreach ($User in $users)
{
#заполняем массив именами пользователей
$result = New-Object -TypeName PSObject -Property @{
Name = $user.GivenName
}

$result_mas += $result

}

#вывод результата
write-output "Всего имен: " ($result_mas).count
write-output "Уникальных имен: " ($result_mas | Group-Object name | measure).count


получается следующим образом
Всего имен:
85
Уникальных имен:
16

а надо еще добавить табличку
для примера:

Имя | кол-во
----------------------------------
Имя1 | встречается 15 раз
Имя2 | встречается 1 раз
Имя3 | встречается 7 раз

Iska
16-03-2017, 08:14
а надо еще добавить табличку
для примера: »
Уберёте Measure-Object — и увидите.

"Ваня", "Петя", "Ваня", "Петя", "Ваня", "Коля" | Group-Object | Sort-Object -Property "Count" -Descending | ForEach-Object -Process {
Write-Host "$($_.Name)`t$($_.Count)"
}




© OSzone.net 2001-2012