如果您可以创建一个 CSV 文件,其中包含您想要获取其卡号的学生的相关用户数据,如下所示:
"SamAccountName", "PossibleOtherData"
"jdoe", "something worth knowing"
"jtrump", "no. 1 snooker player"
您可以使用它来执行以下操作:
$users = Import-Csv -Path 'PathToYourCsvFile' | Select-Object -ExpandProperty SamAccountName
# or shorter: $users = (Import-Csv -Path 'PathToYourCsvFile').SamAccountName
$students = Get-ADUser -Filter "extensionAttribute11 -like '*'" -Properties DisplayName, extensionAttribute11 |
Where-Object { $users -contains $_.SamAccountName } |
Select-Object DisplayName, @{Name = 'CardNumber'; Expression = { $_.extensionAttribute11}}
# display on screen
$students
# write to new CSV file
$students | Export-Csv -Path 'PathToYourOutputCsvFile' -UseCulture -Encoding UTF8 -NoTypeInformation
值得知道的是,Get-ADUser cmdlet 默认将返回具有以下属性的对象:DistinguishedName、Enabled、GivenName、Name、ObjectClass、ObjectGUID、SamAccountName、@ 987654331@,Surname,UserPrincipalName。您需要使用-Properties 参数要求的所有额外属性。
此外,如果您有一个搜索库 OU 来查找学生,您可以使代码更快。如果所有学生都在一个专用的 OU 中,您可以将此 -SearchBase "OU=Students,OU=UserAccounts,DC=YourCompany,DC=org" 添加到 Get-ADUser cmdlet
如果您已将所有学生都定位在一个专用的 OU 或组中,则无需先创建 CSV 文件,然后在下面创建:
如果您的所有学生都可以在同一个 OU 中找到:
# put the DistinguishedName of the OU here
$ouDN = "OU=Students,OU=UserAccounts,DC=YourCompany,DC=org"
$students = Get-ADUser -Filter "extensionAttribute11 -like '*'" -SearchBase $ouDN -Properties DisplayName, extensionAttribute11 |
Select-Object DisplayName, @{Name = 'CardNumber'; Expression = { $_.extensionAttribute11}}
# display on screen
$students
# write to new CSV file
$students | Export-Csv -Path 'PathToYourOutputCsvFile' -UseCulture -Encoding UTF8 -NoTypeInformation
如果所有学生都是 AD 组的成员,例如“学生”,您可以这样做:
$students = Get-ADGroupMember -Identity "Students" -Filter "objectClass -eq 'user'" |
Get-ADUser -Properties DisplayName, extensionAttribute11 |
Where-Object { $_.extensionAttribute11 -like '*' }
Select-Object DisplayName, @{Name = 'CardNumber'; Expression = { $_.extensionAttribute11}}
# display on screen
$students
# write to new CSV file
$students | Export-Csv -Path 'PathToYourOutputCsvFile' -UseCulture -Encoding UTF8 -NoTypeInformation