Поиск по сайту:

Счет с помощью PowerShell


Сколько файлов хранится на вашем компьютере? Сколько пользователей не входили в систему в течение года? Сколько пользователей используют Active Sync? Сколько изображений и музыкальных файлов хранится? На все эти вопросы можно ответить одним единственным однострочным кодом в PowerShell. И есть много способов сделать это. Выберите свой любимый.

Подсчет с использованием Measure-Object

Measure-Object создает статистику. (количество, среднее, сумма, минимальные и максимальные значения). Мы ищем количество.

Пример: Поиск числа файлов в конкретной папке

Get-ChildItem -Path C:\Data | Measure-Object

Чтобы получить только количество, используйте Select-Object.

Get-ChildItem -Path C:\Data | Measure-Object | Select-Object Count

Подсчет с помощью .count

Я использую тот же пример, что и выше. Но теперь я помещаю команду в скобки и использую метод .count.

(Get-ChildItem -Path C:\Data).count

Подсчет с использованием Group-Object

Более продвинутый вариант - использовать Group-Object. Команда Group-Object отображает вывод в группах на основе заданных критериев. Возвращается таблица. Это круто, теперь мы можем искать по свойствам и показывать количество файлов по этому свойству.

Get-ChildItem -Path C:\Data | Group-Object Extension

Если вас интересует только количество и тип файлов, выполните команду Group-Object с параметром -NoElement.

Get-ChildItem -Path C:\Data | Group-Object Extension -NoElement

Более полезные примеры для администраторов

Мухаммед Али однажды великолепно ответил в 70-х, когда его спросили: «Сколько раз вы качаете пресс?» Он ответил: «Я не считаю свои скручивания, я начинаю считать только тогда, когда начинает болеть, потому что тогда это действительно имеет значение.»

Если вы испытываете боль, видя увеличивающееся количество сиротских учетных записей пользователей в вашей организации, тогда вы должны начать уборку. Тогда это действительно имеет значение. 😉

Сколько пользователей Active Directory не заходили в домен в течение года?

(Get-ADUser -Filter * -Properties LastLogonDate | ? {$_.lastlogondate -ne $null -and $_.lastlogondate -le ((get-date).adddays(-365))}).count

Посчитайте количество активных пользователей Sync.

(Get-CASMailbox -Filter {hasactivesyncdevicepartnership -eq $true -and -not displayname -like "CAS_*"} | Get-Mailbox).count

Подсчитайте свои контроллеры домена.

Get-ADDomainController -Filter * | Measure-Object | Select Count