收集 samaccount powershell

Tás*_*ini 3 powershell active-directory

我有一个 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
Run Code Online (Sandbox Code Playgroud)

我有点迷茫我不知道如何使用名称进行 foreach

我正在尝试但没有成功。

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

Import-Csv -Path C:\Temp\userteste.csv | foreach-Object {Get-ADUser -Filter {Name -like $_.name} -Properties Name | Select-Object samAccountName}
Run Code Online (Sandbox Code Playgroud)

并导出到 csv 文件。

The*_*heo 5

为什么使用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
Run Code Online (Sandbox Code Playgroud)

根据您的评论,您需要获取 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
Run Code Online (Sandbox Code Playgroud)

希望有帮助