add-adgroupmember Возможны ли значения NUL? - PullRequest
0 голосов
/ 09 ноября 2011

Я запускаю приведенную ниже команду PS для файла csv, в котором есть список групп AD, за которыми следуют ADUsers.

Сценарий работает нормально, если все поля заполнены. Есть ли команда / переключатель, котораябудет игнорировать не значение как таковое?

import-csv c:\admin\powershell\ADGroupMembers.csv | foreach {add-adgroupmember -Identity $_.ADGroup $_.member1,$_.member2,$_.member3,$_.member4,$_.member5}

Содержимое файла CSV

ADGroup,Member1,Member2,Member3,Member4,Member5
AD-Test1,Minnie,Mickey,Donald,Daisy,Goofy
AD-Test2,Minnie,Mickey,Donald,,
AD-Test3,Minnie,Mickey,Donald,Pete,Spike

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Проверьте, не имеет ли одно из свойств элемента * значение:

Import-Csv c:\admin\powershell\ADGroupMembers.csv | Foreach-Object {

    $values = $_.PSObject.Properties | Where-Object {$_.Name -clike "Member*" -and [string]::IsNullOrEmpty($_.Value) }

    if($values)
    {
       Write-Warning 'missing values'
    }
    else
    {
       Add-ADGroupMember -Identity $_.ADGroup $_.member1,$_.member2,$_.member3,$_.member4,$_.member5
    }
}
0 голосов
/ 10 ноября 2011

Я предполагаю, что вы также хотите добавить членов строк, содержащих пропущенные значения (например, вы хотите добавить Минни, Микки и Дональда в AD-Test2). В этом случае я бы вылепил наш csv-файл в коллекцию объектов с двумя свойствами: ADGroup (строка) и Members (строка []). Тогда я бы скормил эту коллекцию группе add-group.

Коллекция будет выглядеть примерно так:

<#
ADGroup          Members        
-------          -------        
AD-Test1         {Minnie, Mickey, Donald, Daisy...}
AD-Test2         {Minnie, Mickey, Donald}
AD-Test3         {Minnie, Mickey, Donald, Pete...}
#>

Как создать эту коллекцию:

# collection creation
$groupmembers = `
import-csv .\ADGroupMembers.csv | 
select AdGroup, @{
  Name = "Members"
  Expression = { 
    $members = @() 
    $_.psobject.properties |  
    Where-Object {$_.Name -clike "Member*" -and (-not [string]::IsNullOrEmpty($_.Value))} | 
    Foreach-Object {$members += $_.value}
    $members 
  }
}

Подача коллекции в группу add-admember:

$groupmembers | %{Add-ADGroupMember -Identity $_.AdGroup -Members $_.members}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...