В основном, я пытаюсь извлечь всех пользователей из Active Directory и сохранить их в CSV-файле, используя сценарий PowerShell. Кроме того, мне нужны только атрибуты «имя» и «samaccountname». Так вот код:Экспорт массива с настраиваемыми объектами
$strFilter = "somefilter"
$objCollection = @()
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colProplist = "name", "samaccountname"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults) {
$objItem = $objResult.Properties
$object = New-Object PSObject
$object | Add-Member -MemberType NoteProperty -Name Name -Value $objItem.name
$object | Add-Member -MemberType NoteProperty -Name SAMAccountname -Value $objItem.samaccountname
$objCollection+=$object
}
$objCollection # this gives me the output as wished
$objCollection | Export-CSV -NoTypeInformation -Path C:\temp\exportfile.csv # this doesn't work
Консоль Вывод выглядит следующим образом:
Name SAMAccountname
---- --------------
{IUSR_PFTT-DC1} {IUSR_PFTT-DC1}
{IUSR_PFVM-DC1} {IUSR_PFVM-DC1}
{IUSR_PFXX-DC1} {IUSR_PFXX-DC1}
Но экспортируемого .csv выглядит следующим образом:
"Name","SAMAccountname"
"System.DirectoryServices.ResultPropertyValueCollection","System.DirectoryServices.ResultPropertyValueCollection"
"System.DirectoryServices.ResultPropertyValueCollection","System.DirectoryServices.ResultPropertyValueCollection"
"System.DirectoryServices.ResultPropertyValueCollection","System.DirectoryServices.ResultPropertyValueCollection"
"System.DirectoryServices.ResultPropertyValueCollection","System.DirectoryServices.ResultPropertyValueCollection"
Любые идеи/решения для этого?
Я не могу поверить, что я не сделал споткнувшись об этом, во время поиска в Интернете решения ... Большое спасибо. – Michael
Рад помочь :) – Richard