2012-04-23 4 views
1

OUをADにクエリしてファイルに出力し、グループを作成するスクリプトを作成しました新しいグループ名を少し変更したファイル。その部分は次のコードで動作します:Powershellスクリプトを使用してOUの一覧から新しいグループを作成し、OUのユーザーオブジェクトをグループに追加します

## Load Quest ActiveRoles ADManagement PSSnapin if not already loaded 
if ((Get-PSSnapin -Name "Quest.ActiveRoles.ADManagement" -ErrorAction SilentlyContinue) -eq $null) { 
    Add-PsSnapin "Quest.ActiveRoles.ADManagement" } 

cd \ 
cls 

$Type = "Security" 
$Scope = "Global" 
$Domain = "abc.org" 


## Get Organizational Units 

Get-QADObject -Type OrganizationalUnit ` 
| Select-Object Name, Path, DN, CanonicalName ` | Export-Csv -Path "c:\scripts\test\ou.csv" -NoTypeInformation 

## Create Security Groups from Organizational Units 
$Pre = "123abc" 
$ou = "ou=123abc,ou=Groups,ou=User Accounts,dc=abc,dc=org" 
Import-Csv -Path "c:\scripts\test\ou.csv" | foreach {New-QADGroup -name ($Pre+$_.name) -parent $ou -sam ($Pre+$_.name)} 

私が問題を抱えている問題はこれです。各OUのユーザーオブジェクトを取得して別々のcsvファイルに配置するにはどうすればよいですか。私は単一のOUのために働くこの少しのコードを持っています。

$OuDomain = "OU=123abc,OU=Users,OU=User Accounts,DC=abc,DC=org" 
Get-QADUser -SizeLimit 0 -searchRoot $OuDomain ` 
| Select-Object name, SamAccountName, UserPrincipalName ` 
| Export-Csv -Path "c:\scripts\test\123abc.csv" -NoTypeInformation 

その後、私は新しいグループにユーザーを追加できるはずです。

答えて

0

最初にPowerShell V2.0を使用している場合は、Microsoft ActiveDirectoryモジュールをW2K8R2で使用できます。

Add-ADGroupMember -Identity MonGroupe -Member massin 

セカンドあなたがOUからユーザーを持ったら、あなたはdistinguishedName属性に興味があるだろう。新しいグループの属性memberに各ユーザーのdistinguishedNameを割り当てるだけで済みます。私はここに、ないクエストADManagement PSSnapinコマンドがインストールされてい

は簡単なADSIの例である:

# Starting OU 
$MonOU = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://192.168.234.200:389/ou=Monou,dc=dom,dc=fr","[email protected]","admin") 

# Group creation 
$MonGroupe = $Monou.Create("Group", "cn=MonGroupe") 
$ADS_GROUP_TYPE_GLOBAL_GROUP = 0x00000002 
$ADS_GROUP_TYPE_SECURITY_ENABLED = 0x80000000 
$groupeType = $ADS_GROUP_TYPE_SECURITY_ENABLED -bor $ADS_GROUP_TYPE_GLOBAL_GROUP 

$MonGroupe.put("groupType",$groupeType) 
$MonGroupe.setinfo() 

# Add a user to the group 
$MonGroupe.add('LDAP://cn=Marc Assin,ou=Monou,dc=dom,dc=fr') 
$MonGroupe.setinfo() 

# List members of a group 
$UnGroupe = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://192.168.234.200:389/cn=Mongroupe,ou=Monou,dc=dom,dc=fr","administrate[email protected]","admin") 
$Membres = $UnGroupe.Member 
$Membres