Используйте GetEnumerator () для экспорта таблицы ha sh в csv с помощью powrshell - PullRequest
1 голос
/ 27 января 2020

Я здесь с другим вопросом о powershell. Я написал функцию поиска, которая ищет некоторые атрибуты Active Directory. Теперь я хочу экспортировать содержимое в .csv-файл. Если я правильно вижу, весь вывод будет ha sh -table. Но когда я пытаюсь использовать функцию getenumerator, она ничего не делает. Может кто-то помочь и, возможно, объяснить, что я сделал не так? Код ниже. Заранее спасибо!

Import-Module ActiveDirectory
$users = Get-ADUser -Filter { employeeNumber -notlike '*' } -Properties memberOf, samAccountName | ForEach-Object -Process { @{ $_.samAccountName = $_.memberOf | Where-Object { $_ -like '*DAT*' } } }
$users.GetEnumerator() |
    Select-Object -Property @{N='AD1';E={$_.Key}},
    @{N='AD2';E={$_.Value}} |
        Export-Csv -NoTypeInformation -Path H:\test123.csv

1 Ответ

1 голос
/ 27 января 2020

Если вы посмотрите на свой код, вы создаете список хеш-таблиц, который содержит ваше SamAccountName и группы. Но когда вы используете перечислитель, вы думаете только о хеш-таблице, а не о созданном вами списке.

Именно так вы можете перебирать хеш-таблицу. Сначала вы создаете таблицу ha sh и добавляете в нее все элементы.

$hash = @{}
Get-ADUser -Filter { employeeNumber -notlike '*' } -Properties memberOf, samAccountName | ForEach-Object -Process { $hash.Add($_.samAccountName, ($_.memberOf | Where-Object { $_ -like '*DAT*' }))  }
$hash.GetEnumerator() |
    Select-Object -Property @{N='AD1';E={$_.Key}},
    @{N='AD2';E={$_.Value}} |
        Export-Csv -NoTypeInformation -Path H:\test123.csv

Или вы можете продолжить работу со списком хеш-таблиц, но изменить способ доступа к данным. Каждый элемент вашего списка представляет собой одну хеш-таблицу с ключами (только один в ней).

$users = Get-ADUser -Filter { employeeNumber -notlike '*' } -Properties memberOf, samAccountName | ForEach-Object -Process { @{ $_.samAccountName = $_.memberOf | Where-Object { $_ -like '*DAT*' } } }
$users.GetEnumerator() |
    Select-Object -Property @{N='AD1';E={$_.Keys[0]}},
    @{N='AD2';E={$_.Values[0]}} |
        Export-Csv -NoTypeInformation -Path H:\test123.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...