Отфильтровать нулевые значения параметров в командлетах Get - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь выяснить правильный синтаксис и использовать ли Select-Object или Where-Object для достижения того, что я хочу.

В основном, если я запускаю базовый командлет Get, который возвращает объектсписок параметров и их значений в табличном формате. Я хочу скрыть параметры с нулевыми значениями.

Например, я хочу этот вывод: (вывод является примером)

AmirOU            Count
----------------- -----
tegdg               0
wfw                 0
Amir                7
wtw                 58
wretret             0
ergre               2
iubuibfr            0
User                593
wetwe               0
wdqdd               50
wetwe               0
Groups              0
wtw                 0
ddewe               17
wetwe               0
wetwe               72
wf                  11
fdgd                1
fdbd                53
rete                0
sf4t                0
4tg                 0
sgsdt               0
dsfet               0
ergre               0

Смотретькак это:

AmirOU            Count
----------------- -----

Amir                7
wtw                 58
ergre               2
User                593
5t5                 50
grtg                17
wetwe               72
wf                  11
fdgd                1
fdbd                53

Это мой код:

$total = $null
Get-ADOrganizationalUnit -filter * -SearchBase 'OU=Amir,OU=test,DC=sina,DC=local' | 

foreach {

    if($_.distinguishedname -notmatch 'DisabledUsers|Exchange'){



        $users=Get-ADUser -filter * -searchbase $_.distinguishedname -searchscope Onelevel | where-object enabled -eq true 

        $test=($users | measure-object).count

        $total += $test



        New-Object psobject  -Property @{

            Count= $test

            AmirOU = $_.Name;

        }

    }

}

Write-Host "`nTotalt: $total"

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете просто добавить туда тест, чтобы увидеть, не является ли .count 0, как это:

$total = 0

Get-ADOrganizationalUnit -filter * -SearchBase 'OU=Amir,OU=test,DC=sina,DC=local' | 
    ForEach-Object {
         if ($_.distinguishedname -notmatch 'DisabledUsers|Exchange') {
            $users = Get-ADUser -filter * -searchbase $_.distinguishedname -searchscope Onelevel | Where-Object { $_.Enabled -eq $true }
            $test = ($users | Measure-Object).count

            if ($test) {
                $total += $test

                New-Object psobject -Property @{
                    Count = $test
                    AmirOU = $_.Name
                }
            }
        }
    }

Write-Host "`nTotal: $total"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...