Milyen LDAP szerver? Active Directory vagy valami más?
Alapvetően a PowerShell (és a Windows magában is, beleértve az Active Directory-t) a sztringeket karakterenként két byte-on, UCS-2 karakterkódolással kezeli (vagy mondhatjuk UTF-16-nak is, bár nem teljesen ugyanazt jelenti). Ez igaz az environment változókra is, a tárolásuk a memóriában karakterenként két byte. Az egybyte-os kódlapok Windows alatt inkább csak egyfajta kompatibilitási réteget jelentenek, és erősen szuboptimális a használatuk bármire is. Az UTF-8 pedig a PowerShell világában egy külsőbb tárolási forma, ha file-ba vagy hálózatra írsz sztringből eredő adatot, akkor értelmezhető, hogy UTF-8-ban lesz, de a PowerShell memóriában mint sztring változó biztosan nem.
Ezért kérdéses, hogy mit is értesz az alatt, hogy "PowerShellben, ami egy UTF8 stringet ad eredményül". Ha PowerShell-ben már van egy sztring változó, és ott helyesen vannak az ékezetek, tehát pl. egy Write-Host hívás jól jeleníti meg a változó értékét, akkor ott már nincs semmi UTF-8, ott UCS-2 van. Ha viszont a Write-Host már "furcsa" karakterekkel jeleníti meg az ékezetek értékét, akkor már eleve a PowerShell-be rosszul került bele, onnan ne is dolgozz vele tovább.
Mit jelent azt, hogy cmd.exe -ből dolgozod fel az eredményt? Ott kezd problémássá válni a dolog, ha valami olyan .exe file-nak akarod mondjuk paraméterként átadni, ami nem UCS-2 alapú, hanem egybyte-os kódlap alapú. Pl. ha C nyelven írt programnak adod át, ami nem wchar_t, hanem char típussal fogadja a parancssori paramétereket, az az ilyen esetekre erősen szuboptimális. Ott könnyen elvesznek az ékezetes karakterek.