如何在没有中间首字母的情况下使用PowerShell将全名转换为samaccountname?

时间:2016-04-27 18:59:33

标签: powershell

我现在拥有的是一个解析文本文件的PS脚本。 文本文件的结构如下:

John Smith
Anna Jones
John Brown

问题是,AD中的显示名称是这样的:

John C. Smith
Anna G. Jones
John A. Brown

我不知道中间的缩写。我已经粘贴了我的剧本。如果我在文本文件中包含中间的首字母,它将给我正确的samaccountname。但同样,我不知道所有这些用户的中间名首字母。如果我不知道中间的首字母,有没有办法获得samaccountname?也许将通配符传递给查询?

$users = Get-Content C:\Temp\UserList.txt

foreach ($user in $users){
Get-ADUser -Filter "Name -like '$user'" | Select-Object samaccountname
}

1 个答案:

答案 0 :(得分:1)

这样的事情可能会起作用

$users = Get-Content C:\Temp\UserList.txt

foreach ($user in $users) {
    $split = $user.split()
    $first = $split[0]
    $last = $split[-1]
    Get-ADUser -Filter "Name -like '$first*$last'" | Select-Object samaccountname
}