2017-02-02 2 views
-1

У меня есть SearchResultCollection из ActiveDirectory называется $results:конкатенация элементов в коллекции

$results = $directorySearcher.FindAll() 

Есть два SearchResult объектов в этой коллекции, представляющих компьютеры. Я хочу иметь строку с именами компьютеров, разделенных запятыми:

$computerNames = $results | Select-Object { $_.Properties.name } 
$computerNamesCommaSeparated = $computerNames -join "," 

Однако это дает мне только ",", без имен компьютеров внутри.

я могу видеть в $computerNames, что она имеет следующие:

$_.Properties.name 
------------------ 
ComputerName1 
ComputerName2 

Как я могу получить эту работу?

+1

'$ ComputerNames.Properties.name -join ""' или 'вместо $ computerNames = $ Результаты | ForEach-Object {$ _. Properties.name} ", затем присоедините. – TessellatingHeckler

+0

Это работает. Спасибо. –

+0

@TessellatingHeckler Почему бы не написать ответ вместо комментария, чтобы я мог отметить его как принятый ответ? –

ответ

-2

Попробуйте это:

$computerNamesCommaSeparated = $results.Properties.name -join "," 
+1

всегда глупый человек, который голосует без объяснения причин, этот код работает! – Esperento57

+0

Я думаю, что ваш код не будет работать, потому что свойство Properties присутствует только на каждом элементе в $ results, а не на самом объекте $ results. –

+0

этот код работает, я протестировал ... Подтвердите свое утверждение раньше ... Попробуйте пример этого кода "(get-childitem -recurse) .FullName" – Esperento57