2013-11-25 5 views
3

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 
} 
+0

정확하게 $ user에 무엇입니까? domain \ username입니까? "$ user"와 같은 이름을 사용 해본 적이 있습니까? – malexander

+0

$ users는 사용자 성명입니다. Jon Doe – JoeRod

+0

입력 파일에서 공백이 있는지 확인하십시오. $ users = Get-Content C : \ users \ admin \ Desktop \ move.txt | % {$ _. trim()} – mjolinor

답변

3

스크립트 블록 내에서 $ user가 null 일 수 있습니다. (이름은 공백을 포함) 대신 중괄호의 큰 따옴표를 사용하고 유효한 쿼리를 만들기 위해 작은 따옴표로 변수를 넣어보십시오 :

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

감사합니다. – JoeRod

0

성과 이름을 별도로 사용하십시오.

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

당신을 위해 작동해야 파워 쉘 스크립트입니다. 세부 정보 (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” 
관련 문제