从全名获取Samid。 get-aduser -identity $ DN with spaces

时间:2014-07-20 22:59:34

标签: powershell

我正在尝试设置一些变量。我有一个全名可以使用。

我可以运行它来获取DN:

        $DN= dsquery user -name $Name

然后这个:

        $Samid= $DN | dsget user -samid 

但输出看起来像这样

         PS C:\Windows\system32> $samid
         samid     
         bclinton  
         dsget succeeded
而不是            $ Samid = Bclinton

此命令失败,因为我认为$ DN有空格但变量用引号显示。

        PS C:\Windows\system32> $DN
       "CN=Bill Clinton,OU=Employees,OU=External,OU=XXX Accounts,DC=XXXX,DC=local"

        $Samid = get-aduser -identity $DN

        get-aduser : Cannot find an object with identity: '"CN=Bill Clinton,OU=Employees,OU=External,OU=XXX Accounts,DC=XXX,DC=local"'     under: 'DC=XXX,DC=local'.
        At line:1 char:11
        +  $Samid = get-aduser -identity $DN
        +           ~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: ("CN=Bill Clinto...=XXX,DC=local":ADUser) [Get-                  ADUser], ADIdentityNotFoundException
        + FullyQualifiedErrorId :    ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Microsoft.ActiveDirectory.Management.Commands.GetADUser

当我全部输入时,它会返回正确的信息。

    PS C:\Windows\system32> $Samid = get-aduser -Identity "CN=Bill Clinton,OU=Employees,OU=External,OU=XXX Accounts,DC=XXX,DC=local"

    PS C:\Windows\system32> $samid

     DistinguishedName : CN=Bill Clinton,OU=Employees,OU=External,OU=Accounts,DC=XXX,DC=local
     Enabled           : True
     GivenName         : Bill
     Name              : Bill Clinton
     ObjectClass       : user
     ObjectGUID        : f4514c3c-4496-44b0-a0b7-25b32d52cd7b
     SamAccountName    : bclinton
     SID               : S-1-5-21-1129724065-2108094634-3465950418-8044
     Surname           : Clinton
     UserPrincipalName : bclinton@XXX.local

      PS C:\Windows\system32> $samid.SamAccountName
      bclinton

我已经阅读了大量的页面,但没有一个我发现谈论这个。谢谢!

2 个答案:

答案 0 :(得分:1)

PS C:\> $samid = get-aduser -filter { Name -eq "Bill Clinton" } |
  select-object -expandproperty SamAccountName
PS C:\> $samid
bclinton

答案 1 :(得分:1)

如果您已经知道名称,可以使用过滤器通过Get-AdUser

进行搜索
get-aduser -filter {name -eq "Bill Clinton"} | Select DistinguishedName,SamAccountName

根据需要使用结果。

或另一个例子

(get-aduser -filter {name -eq "Matt Cameron"}).SamAccountName
mcameron