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:

  • Come posso impostare Redmine => Autenticazione Active Directory?
  • Winbind / AD: Utenti locali con nomi utente identici AD
  • Bloccare il computer da unire a un dominio se ha lo stesso nome di un altro object di computer in ADUC
  • Powerbroker aperto: imansible automodicare la condivisione CIFS, where è il biglietto kerberos?
  • La mia fiducia a due vie con authorization selettiva sembra comportrsi in contrasto con una fiducia unidirezionale
  • Sovrascrivere il shell di model sul sistema Linux nel dominio di Active Directory?
  •  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.