我有一個用戶的全名列表,我想要他們的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