Powershell检索用户登录名,而不是samAccountname

时间:2017-12-24 00:42:17

标签: powershell authentication active-directory ldap

在下文中,我可以非常轻松地获得AD组成员资格:

Get-ADGroupMember -identity "GROUP" | select samaccountname |Export-csv -path "c:\temp\out.csv" -NoTypeInformation

输出csv用作另一个无法安全执行LDAP查询的应用程序的输入,因此我必须通过PS管道ACL。但是,应用程序取决于用户AD登录名是区分大小写的。我没有编写应用程序,因此更改其行为不在卡中。例如,当PS管道处于“bigfoot”时,用户“BigFoot”将作为BigFoot进行身份验证,并被拒绝访问。我需要的是PS在UPN名称部分“BigFoot”中管道。

问题是,某些用户的用户登录名与samAccount名不同,例如“BigFoot”与bigfoot。应用程序将仅使用“BigFoot”进行身份验证...换句话说,UPN的第一部分。

使用Powershell,什么AD属性将返回用户登录名(例如“BigFoot”)而不是samAccountname(“bigfoot”)?

2 个答案:

答案 0 :(得分:1)

该属性称为名称。要检索所有属性,请使用-Properties *示例限定任何AD cmdlet示例Get-AdGroupmember -Properties *

此外,如果Get-AdGroupMember未返回UPN属性,则可能需要后续调用Get-AdUser示例Get-AdGroupMember ABX | %{Get-AdUser $ _}

答案 1 :(得分:1)

@Alberto Vargas你的解决方案大部分都有效......我必须过滤掉我正在呼叫的组内的任何嵌套组....

 Get-ADGroupMember -identity "group"  | Where { $_.objectClass -eq "user" }|%{Get-ADUser $_.SamAccountName | select UserPrincipalName} |Export-c
sv -path "c:\temp\out.csv" -NoTypeInformation