【发布时间】:2021-07-15 13:45:08
【问题描述】:
第一次发帖,但网站过去帮了我很多。
我们是 MSP,经常收到客户的请求,要求他们从他们发送给我们的用户列表中提取各种详细信息。不幸的是,尽管他们的列表很少(如果有的话)包含 AD 的任何唯一标识符,例如 samAccountName 甚至电子邮件。
因此,通常我只获取他们的名字和姓氏、职位等,并在下面使用轻微的变化来尝试获取所需的 samAccountNames 以在批量修改脚本中工作。
Get Samaccountname from display name into .csv
当我尝试将该输出放回表中以与显示名称对齐时,问题出现了(最近引起了很大的麻烦)。就好像脚本找不到显示名称一样,它只是移动到列表中的下一个并将 samAccountName 直接放在它找到的最后一个下方。使它与我放在旁边的 displayname 列不符。
我的问题是我可以在下面的脚本中添加一些内容,当发生错误时,它只需将 null 或类似内容输入到 samAccountName 输出 csv 中,这样我就可以在 Excel 工作表中轻松发现它。
类似地,一些用户有多个帐户,例如管理员和非管理员帐户,它们具有相同的显示名称但不同的 samAccountName,因此它会同时提取它们,这不是问题,但如果有任何方法可以让脚本我知道什么时候会发生?这对未来非常有用。
Import-Module activedirectory
$displayname = @()
$names = get-content "c:\temp\users.csv"
foreach ($name in $names) {
$displaynamedetails = Get-ADUser -filter { DisplayName -eq $name } -server "domain.local"| Select name,samAccountName
$displayname += $displaynamedetails
}
$displayname | Export-Csv "C:\temp\Samaccountname.csv"
【问题讨论】:
-
您的 users.csv 文件真的只是显示名称的单列列表吗?
标签: powershell active-directory