【问题标题】:Get users SAMaccount name from Full name从全名获取用户 SAMaccountname
【发布时间】:2013-11-25 15:19:05
【问题描述】:

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

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

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

【问题讨论】:

  • $users 中到底是什么,是域\用户名吗?您是否尝试过使用 Name -Like "$user"
  • $users 是用户的全名,即 Jon Doe
  • 检查您的输入文件是否有尾随空格:$users = Get-Content C:\users\admin\Desktop\move.txt |% {$_.trim()}
  • 没有尾随空格,但可以肯定的是我添加了|% {$_.trim()} 仍然没有输出

标签: powershell active-directory


【解决方案1】:

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

Get-ADUser -Filter "Name -eq '$user'" | 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”
    

    【讨论】:

      【解决方案3】:

      分别使用名字和姓氏。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-04
        • 2015-01-23
        • 2019-10-22
        • 1970-01-01
        • 1970-01-01
        • 2014-04-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多