none
Win 2008R2 PS: NULL значение RRS feed

  • Вопрос

  • $filter = "(&(objectcategory=user)(Name=$env:username))"

    $ds = New-object System.DirectoryServices.DirectorySearcher([ADSI]"",$filter) $user = ($ds.Findone()).properties.memberof foreach ($grouppath in $user) { $group = ([adsi]"LDAP://$($grouppath.tostring())").sAMAccountname switch ($group) { "domain admins" {net use v: \\server1\share1} "special group" {net use k: \\server2\share2} } }

    Получаю ошибку:

    Нельзя вызвать метод для выражения со значением NULL.
    C:\temp\PSmegamap2.ps1:5 знак:20
    + $grouppath.tostring <<<< ()
        + CategoryInfo          : InvalidOperation: (tostring:String) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

    Пользователь на сервере входит в группу локальных админов и входит в несколько доменных групп, при этом значение $user из скрипта пустое.

    В чем проблема?

    • Перемещено osr_MVP, Moderator 18 мая 2012 г. 11:40 (От:Windows server 2008R2/2008)

Ответы

  • >$filter = "(&(objectcategory=user)(Name=$env:username))"

    Фильтр неправильный, IMHO. Наверное должно быть так:

    $filter = "(&(objectcategory=user)(samaccountname=$env:username))"


    my blog: http://shserg.ru/

    • Помечено в качестве ответа Legioner 28 мая 2012 г. 9:05

Все ответы

  • Вывод команды:

    ([adsisearcher]"(&(objectcategory=user)(Name=$env:username))").FindOne()

    Отвечающий
  • >$filter = "(&(objectcategory=user)(Name=$env:username))"

    Фильтр неправильный, IMHO. Наверное должно быть так:

    $filter = "(&(objectcategory=user)(samaccountname=$env:username))"


    my blog: http://shserg.ru/

    • Помечено в качестве ответа Legioner 28 мая 2012 г. 9:05
  • >$filter = "(&(objectcategory=user)(Name=$env:username))"

    Фильтр неправильный, IMHO. Наверное должно быть так:

    $filter = "(&(objectcategory=user)(samaccountname=$env:username))"


    my blog: http://shserg.ru/


          Спасибо большое , сразу не заметил, т.к. username и samaccountname были одинаковые у админа, из под которого все работало ок.