none
get-qaduser и переменные RRS feed

  • Вопрос

  • собственно сеть вот такая проблема не идет подстановка переменной

     

    PS C:\Users\Administrator.CORP-GROUP> foreach ($arad in $arradd | % {$_.username}) {Get-QADUser -SamAccountName "$arad"}

     

    PS C:\Users\Administrator.CORP-GROUP> $arad

    zaxar

    PS C:\Users\Administrator.CORP-GROUP> Get-QADUser -SamAccountName $arad

    PS C:\Users\Administrator.CORP-GROUP> Get-QADUser -SamAccountName zaxar

     

    Name                           Type            DN

    ----                           ----            --

    Захаров Антон Павлович         user            CN=Захаров Антон Павлович,OU=migrateusers,DC=corp-group,DC=ru

     как лечить?

     

    что-то в типе переменной так как такое работает 

    PS C:\Users\Administrator.CORP-GROUP> $dddf = "zaxar"

    PS C:\Users\Administrator.CORP-GROUP> $dddf

    zaxar

    PS C:\Users\Administrator.CORP-GROUP> Get-QADUser -SamAccountName $dddf

     

    Name                           Type            DN

    ----                           ----            --

    Захаров Антон Павлович         user            CN=Захаров Антон Павлович,OU=migrateusers,DC=corp-group,DC=ru

     

    это как бы продолжение другого вопроса - http://social.technet.microsoft.com/Forums/ru-RU/scrlangru/thread/032e08a3-f7e8-4101-bfdf-687bdc7ec3c4
    25 марта 2011 г. 7:08

Ответы

Все ответы

  • Воспроизвести не смог.

     

    PS # $arr
    
    username
    --------
    Kazun
    Administrator
    
    
    PS # foreach ($i in $arr | %{$_.username}) {Get-QADUser -SamAccountName "$i"}
    
    Name    Type  DN
    ----    ----  --
    kazun    user  CN=kazun,OU=Test,DC=contoso,DC=com
    Administrator   user  CN=Administrator,CN=Users,DC=contoso,DC=com
    

     

    PowerShell V2.0 ,ActiveRoles Management Shell 1.4.0

     

    Возможно присутствуют пробелы в именах,попробовать {Get-QADUser -SamAccountName $($i.trim())}
    • Изменено KazunEditor 25 марта 2011 г. 7:25
    25 марта 2011 г. 7:18
    Отвечающий
  • PS C:\Users\Administrator.CORP-GROUP> $arradd | Get-Member
       TypeName: System.Data.DataRowView
    Name            MemberType            Definition
    ----            ----------            ----------
    BeginEdit       Method                System.Void BeginEdit()
    CancelEdit      Method                System.Void CancelEdit()
    CreateChildView Method                System.Data.DataView CreateChildView(System.Data.DataRelation relation), Syste...
    Delete          Method                System.Void Delete()
    EndEdit         Method                System.Void EndEdit()
    Equals          Method                bool Equals(System.Object other)
    GetHashCode     Method                int GetHashCode()
    GetType         Method                type GetType()
    ToString        Method                string ToString()
    Item            ParameterizedProperty System.Object Item(int ndx) {get;set;}, System.Object Item(string property) {g...
    username        Property              System.String username {get;set;}
    видимо у вас массив какой-то другой...
    25 марта 2011 г. 7:24
  • Вывод покажите: foreach ($arad in $arradd | % {$_.username}) {"$arad"}
    25 марта 2011 г. 7:27
    Отвечающий
  • PS C:\Users\Administrator.CORP-GROUP>  foreach ($arad in $arradd | % {$_.username}) {"$arad"}
    administrator
    anton
    zaxar
    25 марта 2011 г. 7:30
  • я уже пробовал и в другой массив вносить - все равно результат один и тот же

     

    PS C:\Users\Administrator.CORP-GROUP> $arad2 = $arradd | % {$_.username}

    PS C:\Users\Administrator.CORP-GROUP>  foreach ($arad in $arad2 | % {$_.username}) {"$arad"}

     

     

     

    PS C:\Users\Administrator.CORP-GROUP>  foreach ($arad in $arad2) {"$arad"}

    administrator

    anton

    zaxar

    PS C:\Users\Administrator.CORP-GROUP>  foreach ($arad in $arad2) {Get-QADUser -SamAccountName "$arad"}

    PS C:\Users\Administrator.CORP-GROUP>

    25 марта 2011 г. 7:31
  • Вывод:

    foreach ($arad in $arradd | % {$_.username}) { Trace-Command -Name ParameterBinding -exp {Get-QADUser -SamAccountName "$arad".trim()} -PSHost}



    • Помечено в качестве ответа KazunEditor 25 марта 2011 г. 7:49
    25 марта 2011 г. 7:34
    Отвечающий
  • сработало впринципе и только такое

    PS C:\Users\Administrator.CORP-GROUP> foreach ($arad in $arradd | % {$_.username}) {Get-QADUser -SamAccountName "$arad".trim()}

     

    Name                           Type            DN

    ----                           ----            --

    Administrator                  user            CN=Administrator,CN=Users,DC=corp-group,DC=ru

    Черняев Антон Алексеевич       user            CN=Черняев Антон Алексеевич,OU=migrateusers,DC=corp-group,DC=ru

    Захаров Антон Павлович         user            CN=Захаров Антон Павлович,OU=migrateusers,DC=corp-group,DC=ru

    собственно вопрос решен - а что за trim()} ?

    25 марта 2011 г. 7:44
  • System.String метод Trim() - Удаляет все начальные и конечные знаки пробела из текущего объекта String.


    25 марта 2011 г. 7:46
    Отвечающий
  • Спасибо!
    25 марта 2011 г. 7:48