Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Массив, подсчет кол-ва одинаковых значений и вывод таблицы (http://forum.oszone.net/showthread.php?t=324899)

God-of-Chaos 16-03-2017 02:02 2719850

Массив, подсчет кол-ва одинаковых значений и вывод таблицы
 
Есть небольшая задачка, составить топ 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 2719876

Цитата:

Цитата God-of-Chaos
а надо еще добавить табличку
для примера: »

Уберёте Measure-Object — и увидите.

Код:

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



Время: 14:31.

Время: 14:31.
© OSzone.net 2001-