DSGET evita segni hash (#) nei nomi distinti (DN) s in output, ma prevede segni di hash non identificati per l'input

Diciamo che voglio fare la query molto semplice in AD

dsquery user -name "John Smith" | dsget user -memberof -expand 

Questo esegue i DN dei gruppi AD che questo utente appartiene. Posso farlo printingre il nome del gruppo amichevole tramite:

 dsquery user -name "John Smith" | dsget user -memberof -expand | dsget group -samid 

Tuttavia, se un gruppo dispone di un tag hash (ad esempio "CN = # Kentucky Office, OU = # Elenchi di distribuzione, DC = myenterprise, DC = local" ) non riesce con il seguente errore:

 dsget failed:Value for 'Target object for this command' has incorrect format. 

Il modo per risolvere questo problema è quello di distriggersre gli hash (cioè "CN = # Kentucky Office, OU = # Elenchi di distribuzione, DC = myenterprise, DC = local" ). Posso farlo in powerhell via il oneliner:

 dsquery user -name "John Smith" | dsget user -memberof -expand | ForEach-Object { $_.Replace('\#', '#') } | dsget group -samid 

C'è una soluzione che non coinvolge powershell.exe o anche aggiungere un file eseguibile al pipe oltre a dsquery o dsget?

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.