首页 > 解决方案 > 收集 samaccount powershell

问题描述

我在 CSV 中有一个用户列表,但我需要按广告中的名称从每个用户那里收集 SamAccount 属性。

CSV 模型

在此处输入图像描述

脚本

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

我正在尝试但没有成功。

试图根据 csv 文件上的名称获取 samaccountname。

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

并导出为 csv 文件。

标签: powershellactive-directory

解决方案


为什么使用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

希望有帮助


推荐阅读