2016-10-24 1 views
0

Active Directory内でユーザーアカウントを作成または変更するときには絶対にコピーしないでください。PowerShellはCSV除外リストに基づいて "MemberOf"をコピーしません

securityGroup 
"CN=Security Group 1,OU=Security Groups,DC=domain,DC=com", "CN=Security Group 2,OU=Security Groups,DC=domain,DC=com", "CN=Security Group 3,OU=Security Groups,DC=domain,DC=com", "CN=Security Group 4,OU=Security Groups,DC=domain,DC=com" 

ADグループをコピーする場合、我々は次のメソッドを使用します:私たちが見たい何

$userName = [User which security groups are copied TO] 
$modelUser = [User which security groups are copied FROM] 
$modelMember = Get-ADUser $modelUser -Properties MemberOf 
$modelMember.MemberOf | Add-ADGroupMember -Members $userName 

は、上記のCSVファイルからのグループがモデルからコピーされていないということです。これは、このようになりますユーザを別のユーザに割り当てる。私はスクリプトで "-and"と "-not contains"を使ってセキュリティグループを何度も手動で入力することで成功しましたが、代わりにCSVを使うことを好むでしょう。

$modelMember.MemberOf | Where{$_ -notcontains "CN=Security Group 1,OU=Security Groups,DC=domain,DC=com" -and $_ -notcontains "CN=Security Group 2,OU=Security Groups,DC=domain,DC=com" -and $_ -notcontains "CN=Security Group 3,OU=Security Groups,DC=domain,DC=com" -and $_ -notcontains "CN=Security Group 4,OU=Security Groups,DC=domain,DC=com"} | Add-ADGroupMember -Members $userName 

私はどこから始めるべきかわかりません。どんな助けでも大歓迎です!

答えて

0

あなたが表示するファイルは、カンマ区切りではなく1行に1つのグループです。

それは限り、あなたは上記のPowerShell v3のか持っているように十分に簡単です:

  • Get-ADUser:私のコードブロック(使用可能な場合)から

    $modelMember = Get-ADUser $modelUser -Properties memberOf 
    
    $forbiddenGroups = Get-Content groupList.txt 
    $modelGroups = $modelMember.MemberOf | Where-Object { $_ -notin $forbiddenGroups } 
    
    $modelGroups | Add-ADGroupMember -Members $userName 
    

    自動生成されたPSのヘルプリンクを(モジュールActiveDirectory

  • Get-Content(mo CSV約dule Microsoft.PowerShell.Management
  • Where-Object
  • Add-ADGroupMember()モジュールActiveDirectory
+0

良い点。私はその質問に正しく書式を設定しておらず、それを修正します。 Get-Contentが.TXTと同じようにCSVで動作するかどうか知りませんか? – jdubs

+0

@jdubsあなたが本当にCSVを持っているなら、Get-Contentは内容を読むでしょうが、スクリプトロジックは意味をなさないでしょう。 'Import-CSV'と適切なコードを使ってCSVヘッダー行(もしあれば)を扱い、あなたのグループが入っている列を取得するようにコードを書く必要があります。しかし' Import-CSV'をonあなたが示した内容は、それが4列だと思っているコンマ区切りのグループ識別名を壊してしまいます。 – TessellatingHeckler

+0

$レポート=インポート、CSV \\ \ report.txtという $ modelMember =は、Get-ADUser $ modelUser -PropertiesのmemberOf $ modelGroups =にreport.txtという – jdubs

関連する問題