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.

