Допустим, я хочу сделать очень простой запрос в AD
dsquery user -name "John Smith" | dsget user -memberof -expand
Это выведет DN групп AD, к которым принадлежит этот пользователь. Я могу заставить его распечатать дружественное имя группы через:
dsquery user -name "John Smith" | dsget user -memberof -expand | dsget group -samid
Однако, если в группе есть хэш-тег (например, "CN = # Офис в Кентукки, OU = # Списки рассылки, DC = myenterprise, DC = local") выйдет из строя со следующей ошибкой:
dsget failed:Value for 'Target object for this command' has incorrect format.
Способ исправить это - отменить экранирование хэшей (т.е. "CN = # Офис в Кентукки, OU = # Списки рассылки, DC = myenterprise, DC = local"). Я могу сделать это в PowerShell через oneliner:
dsquery user -name "John Smith" | dsget user -memberof -expand | ForEach-Object { $_.Replace('\#', '#') } | dsget group -samid
Есть ли решение, которое не включает powershell.exe или даже не добавляет исполняемый файл в канал, кроме dsquery или dsget?