prosty search po obiektach w AD, które mają włączoną flagę niewygasania hasła:

$searcher = New-Object DirectoryServices.DirectorySearcher([ADSI]"LDAP://OU=PL,OU=Country,DC=domain,DC=test")
$searcher.filter = "(&(objectCategory=User)(userAccountControl:1.2.840.113556.1.4.803:=65536))"
$searcher.propertiesToLoad.add("sAMAccountName")
$searcher.propertiesToLoad.add("displayname")
$searcher.propertiesToLoad.add("sn")
$searcher.propertiesToLoad.add("distinguishedname")
$s=$searcher.findall()
echo *************************

foreach($a in $s) {
    $i=$a.Properties
    echo "[$($i.sAMAccountname)] , $($i.displayName) , $($i.sn), $($i.distinguishedName)"
}

i okazuje się, ze na ekranie pustka… wyświetlają się tylko pola ‘sn’. WTF?

problemem jest pedanteria i używanie małych/wielkich znaków – okazuje się, że PS przyjmuje wyłącznie małe literki:

echo "[$($i.samaccountname)] , $($i.displayname) , $($i.sn), $($i.distinguishedname)"

pffff…

eN.

Spread the love

Comments (2)

  1. Odpowiedz

    adfind -b “OU=PL,OU=Country,DC=domain,DC=test” -s subtree -f “(&(objectClass=user)(objectCategory=Person)(userAccountControl:1.2.840.113556.1.4.803:=65536)” samaccountname displayname, cn -adcsv

    Jakoś tak szybciej i mniej pisania :)

    A jak już PS – a nie lepiej użyci cmdletów QUesta na przykład albo tych z MSFT jak jest odpowiedni poziom DC?

  2. nExoR

    Odpowiedz

    nie jest odpowiedni i czy one przypadkiem nie wymagaja WS*?

    jesli chodzi o adfind – może i szybciej, ale od tego są skrypty, żeby mieć jedno narzędzie do wszystkiego (: korzystając z niego uczę się właśnie takich ciekawostek, składni, i ogólnie PowerShella – więc choćby dla sportu wolę powalczyć z PS (:

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.