w ramach ciekawostek – żeby ładnie obsłużyć błędy korzysta się z try-catch-finally… ALE. jak zwykle jest jakieś ale. pisząc skrypty do AD straciłem sporo czasu nie rozumiejąc o co c’mon, ponieważ polecenia get-ad* inaczej zachowują się, jeśli korzysta się z ’-identity’ a inaczej jeśli ’-filter’. w sumie jest to całkiem logiczne – ponieważ identity oczeqje istniejącej nazwy więc zwraca błąd jeśli jej nie ma. filter to prostu filtr, więc jeśli takiej nazwy nie ma, to po prostu zwraca $null. a więc trzeba uważać 'co jest błędem’ …
try { $comp=get-ADComputer -Identity SOMECOMP -ErrorAction STOP echo $comp.distinguishedname } catch { echo $_.Exception.Message } $comp=get-ADComputer -filter {name -eq "SOMECOMP"} if($comp -ne $null) { echo $comp.distinguishedname } else { echo "not found" }
eN.