2013-11-25 36 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」 – malexander

+0

$ users是用戶全名,即Jon Doe – JoeRod

+0

檢查輸入文件中是否存在空格:$ users = Get-Content C:\ users \ admin \ Desktop \ move.txt | %{$ _。trim()} – mjolinor

回答

3

可能是$ user在腳本塊內爲空。嘗試使用雙引號,而不是大括號,把變量單引號,使有效的查詢(名稱包含空格):

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

這裏是一個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」