собирать самаккаунт PowerShell - PullRequest
3 голосов
/ 25 марта 2020

У меня есть список пользователей в CSV, но мне нужно собрать атрибут SamAccount у каждого пользователя по имени в объявлении.

CSV модель

enter image description here

Сценарий

Get-ADObject -Filter 'ObjectClass -eq "user" -and userAccountControl -eq "512"' -Properties * | Select-Object SamAccountName,CN,DisplayName, | Export-CSV -Path C:\Temp\UserAccounts.csv -Encoding UTF8 -NoTypeInformation

Я немного растерян, я не знаю, как сделать foreach, используя имя

Я пытаюсь, но безуспешно.

Попытка получить имя samaccount на основе имени в файле CSV.

Import-Csv -Path C:\Temp\userteste.csv | foreach-Object {Get-ADUser -Filter {Name -like $_.name} -Properties Name | Select-Object samAccountName}

и экспортировать в файл CSV.

1 Ответ

5 голосов
/ 25 марта 2020

Зачем использовать Get-ADObject, а не Get-ADUser для этого? Последний дает вам больше требуемых свойств, которые вам нужны в CSV.

Помимо этого, расточительно делать -Properties *, если вам нужен только небольшой набор пользовательских атрибутов.

Примерно так должно работать:

Get-ADUser -Filter "Enabled -eq $true" -Properties DisplayName, CN | 
    Select-Object SamAccountName, CN, DisplayName | 
    Export-Csv -Path C:\Temp\UserAccounts.csv -Encoding UTF8 -NoTypeInformation

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

Import-Csv -Path C:\Temp\userteste.csv | ForEach-Object {
    Get-ADUser -Filter "Name -like '$($_.Name)'" -Properties DisplayName, CN | 
    Select-Object SamAccountName, CN, DisplayName
} | Export-Csv -Path C:\Temp\UserAccounts.csv -Encoding UTF8 -NoTypeInformation

Надеюсь, что поможет

...