我有一个用户的全名列表,我想要他们的SAMaccount名称,但是当我运行我的代码时,我没有得到任何结果。有人有主意吗?获取用户SAMaccount姓名全名
$users = Get-Content C:\users\admin\Desktop\move.txt
foreach ($user in $users){
Get-ADUser -Filter {Name -eq "$user"} |Select-Object name, samaccountname
}
我有一个用户的全名列表,我想要他们的SAMaccount名称,但是当我运行我的代码时,我没有得到任何结果。有人有主意吗?获取用户SAMaccount姓名全名
$users = Get-Content C:\users\admin\Desktop\move.txt
foreach ($user in $users){
Get-ADUser -Filter {Name -eq "$user"} |Select-Object name, samaccountname
}
可能是$ user在脚本块内为空。尝试使用双引号,而不是大括号,把变量单引号,使有效的查询(名称包含空格):
Get-ADUser -Filter "Name -eq '$user'" | Select-Object name, samaccountname
这样做了,谢谢! – JoeRod
单独使用姓氏和名字。
foreach ($user in $users){
$SplitName = -split $user
Get-ADUser -Filter {(GivenName -eq $SplitName[0]) -and (Surname -eq $splitName[1])} |Select-Object name, samaccountname
}
这里是一个PowerShell脚本应该为你工作。你会想要去链接阅读细节,http://wbarena.com/2015/01/powershell-find-ad-user-full-name.html。
Import-Module ActiveDirectory
$aResults = @()
$List = Get-Content “.\List.txt”
ForEach($Item in $List){
$Item = $Item.Trim()
$User = Get-ADUser -Filter{displayName -like $Item -and SamAccountName -notlike “a-*” -and Enabled -eq $True} -Properties SamAccountName, GivenName, Surname, telephoneNumber, mail
$hItemDetails = New-Object -TypeName psobject -Property @{
FullName = $Item
UserName = $User.SamAccountName
Email = $User.mail
Tel = $User.telephoneNumber
}
#Add data to array
$aResults += $hItemDetails
}
$aResults | Export-CSV “.\Results.csv”
究竟是$用户,是域\用户名?您是否尝试过使用名称 - “$ user” – malexander
$ users是用户全名,即Jon Doe – JoeRod
检查输入文件中是否存在空格:$ users = Get-Content C:\ users \ admin \ Desktop \ move.txt | %{$ _。trim()} – mjolinor