从全名获取用户SAMaccountname

时间:2013-11-25 15:19:05

标签: powershell active-directory

我有一个用户名称列表,我想获得他们的SAMaccount名称但是当我运行我的代码时,我没有得到任何结果。有人有什么想法吗?

$users = Get-Content C:\users\admin\Desktop\move.txt

foreach ($user in $users){
Get-ADUser -Filter {Name -eq "$user"} |Select-Object name, samaccountname
}

3 个答案:

答案 0 :(得分:3)

可能是$ user在脚本块中是null。尝试使用双引号而不是大括号,并将变量放在单引号中以生成有效查询(名称包含空格):

Get-ADUser -Filter "Name -eq '$user'" | Select-Object name, samaccountname

答案 1 :(得分:2)

这是一个适合你的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”

答案 2 :(得分:0)

分别使用名字和姓氏。

foreach ($user in $users){
    $SplitName = -split $user
    Get-ADUser -Filter {(GivenName -eq $SplitName[0]) -and (Surname -eq $splitName[1])} |Select-Object name, samaccountname
}