2014-02-05 4 views
0

Я пытаюсь запросить AD для списка пользователей и конкретной переменной, как так:Побег ActiveDirectory атрибуты с особым характером

get-aduser -filter * -Properties * | select Samaccountname,vasco-LinkUserToDPToken | Export-Csv U:\test.csv -NoTypeInformation 

Однако это возвращает SAMAccountName и Microsoft.ActiveDirectory.Management.ADPropertyValueCollection.

Глядя на веб-я удостоверится, что это свойство является сбор и мне нужно что-то вдоль линий этого, чтобы расширить его и позволить ему быть экспортированы в CSV:

get-aduser -filter * -Properties * | select @{name="vasco";expression={$_.vasco-LinkUserToDPToken -join}},samaccountname | Export-Csv U:\test.csv -NoTypeInformation 

Однако я получаю следующее сообщение об ошибке:

Unexpected token '-LinkUserToDPToken' in expression or statement. 

Я предполагаю, что читает PowerShell на «-», как некоторые формы оператора и обрекая вне. К сожалению, я не могу найти способ обойти его. Я понимаю, что это символ побега, но использование его тупой силы не принесло никаких полезных результатов. Я надеялся, что кто-то сможет помочь мне в правильном направлении. Вполне может быть, что мой бешеный блог чтение привел меня недопонимание синтаксис использования хэш-таблицы, а также ...

ответ

1

Я столкнулся с этим, прежде чем в нашей среде и хитрость заключается в том, что использование двойных кавычек после переменной $_. знака, как это. $_."vasco-LinkDPToUserToken"

get-aduser -filter * -Properties * | select @{name="vasco";expression={$_."vasco-LinkUserToDPToken" -join}},samaccountname | Export-Csv U:\test.csv -NoTypeInformation 
+0

совершенный работал как очарование. Имейте это в виду для будущих запросов! –

0

Вы должны быть в состоянии получить доступ к свойству по имени, как это:

$UserObject.Properties.Item("vasco-LinkUserToDPToken") 

Так ваше выражение Хэш таблица приходит выглядеть следующим образом:

@{name="vasco";expression={$_.Properties.Item("vasco-LinkUserToDPToken") -join}} 
Смежные вопросы