2011-11-09 4 views
0

次のPSコマンドは、ADUsersの後にADグループのリストがあるcsvファイルに対して実行されます。add-adgroupmemberのNUL値は可能ですか?

すべてのフィールドが入力されている限り、スクリプトは正常に実行されます。非値を無視するようなコマンド/スイッチはありますか?

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 

答えて

1

チェックメンバー*特性の一つは、何も値がない場合:

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

を私はあなたにも含む行のメンバーを追加したいと仮定しています(たとえば、Minnie、Mickey、DonaldをAD-Test2に追加したい場合)。その場合、私はcsvファイルをADGroup(文字列)とMembers(文字列[])の2つのプロパティを持つオブジェクトの集合に彫り込みます。それから、このコレクションをadd-groupmemberにフィードします。

コレクションは、次のようなものになります-adgroupmemberを追加するコレクションを給餌

# 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 
    } 
} 

:このコレクションを作成する方法

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

$groupmembers | %{Add-ADGroupMember -Identity $_.AdGroup -Members $_.members} 
関連する問題