none
Странное поведение count в AD RRS feed

  • Вопрос

  • Доброго времени суток!

    Суть - получить список пользователей по определенным критериям, для простоты сократим до минимума:

    $usr = ADUser -Filter *
    $usr.count
    2433


    все правильно, но когда пользователь всего один, начинаются странности:

    $usr = Get-ADUser admin
    $usr.count

    count ничего не выдает:

    PS C:\> $usr -eq $null
    False
    PS C:\> $usr.count -eq $null
    PS C:\> $usr.count -ne $null
    PS C:\> $usr.count | gm
    gm : Укажите объект для командлета Get-Member.
    строка:1 знак:14
    + $usr.count | gm
    +              ~~
        + CategoryInfo          : CloseError: (:) [Get-Member], InvalidOperationException
        + FullyQualifiedErrorId : NoObjectInGetMember,Microsoft.PowerShell.Commands.GetMemberCommand
    
    PS C:\>
    
    Я даже не могу в скрипте отловить это состояние, когда пользователь один. Подскажите, как можно решить этот вопрос.

    2 сентября 2019 г. 14:32

Ответы

  • count это свойство массива. массив состоит из минимум 2х обьектов.

    если вам нужно что либо посчитать то у вас есть замечательный коммандлет для этого - Measure-Object

    Ваш пример должен выглядеть приблизительно так

    (Get-AdUser Admin | Measure-Object).Count
    в таком случа вы получите правильно значение в любом из возможных вариантов: 0, 1, >1


    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа Rinat Moustafin 2 сентября 2019 г. 15:47
    2 сентября 2019 г. 14:37
    Модератор

Все ответы

  • count это свойство массива. массив состоит из минимум 2х обьектов.

    если вам нужно что либо посчитать то у вас есть замечательный коммандлет для этого - Measure-Object

    Ваш пример должен выглядеть приблизительно так

    (Get-AdUser Admin | Measure-Object).Count
    в таком случа вы получите правильно значение в любом из возможных вариантов: 0, 1, >1


    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа Rinat Moustafin 2 сентября 2019 г. 15:47
    2 сентября 2019 г. 14:37
    Модератор
  • PS C:\> $usr = Get-ADUser -Filter 'Name -eq "noname"'
    PS C:\> $usr.count
    0
    PS C:\>

    Странная логика в powershell :) но спасибо за помощь!

    2 сентября 2019 г. 15:55