2014-01-14 285 views
0

我有一个工作正常的脚本,它创建了一个新的Active Directory用户。我需要修改脚本以将用户添加到他们的安全组。PowerShell:将用户添加到AD并在组中添加它们

这里是我的CSV文件的内容是什么样子:

Firstname,Lastname,Password,Sam,Group 
Alice,Gadbois,azerty+123,a.gadbois,GG1 
Quincy,Lagueux,azerty+123,q.lagueux,GG1 

,这里是我的PowerShell脚本:

$objOU = [ADSI]"LDAP://OU=TestOU,DC=Domain,DC=local"; 
$dataSource = import-csv -Path "c:\users.csv"; 

foreach($dataRecord in $datasource) { 
    $cn = $dataRecord.FirstName + " " + $dataRecord.LastName 
    $sAMAccountName = $dataRecord.Sam 
    $givenName = $dataRecord.FirstName 
    $Password = $dataRecord.Password 
    $sn = $dataRecord.LastName 
    $sAMAccountName = $sAMAccountName.ToLower()  
    $displayName = $sn + ", " + $givenName 
    $userPrincipalName = $sAMAccountName + “@domain.local"  
    $objUser = $objOU.Create("user","CN="+$cn)  
    $objUser.Put("sAMAccountName",$sAMAccountName) 
    $objUser.Put("userPrincipalName",$userPrincipalName)  
    $objUser.Put("displayName",$displayName)  
    $objUser.Put("givenName",$givenName)  
    $objUser.Put("sn",$sn)  
    $objUser.SetInfo() 
    $objUser.psbase.InvokeSet(“AccountDisabled",$false) 
    $objUser.SetInfo() 
} 

我需要在脚本中添加一个新的命令,要添加每个用户到他的小组。

回答

1

在这里你去:

正如特雷弗说,你需要在你的脚本的顶部导入Active Directory模块。

Import-module ActiveDirectory 

然后在你的foreach循环中,你可以添加Add-ADGroupMember命令。

foreach($dataRecord in $datasource) { 
    $cn = $dataRecord.FirstName + " " + $dataRecord.LastName 
    $sAMAccountName = $dataRecord.Sam 
    $givenName = $dataRecord.FirstName 
    $Password = $dataRecord.Password 
    $sn = $dataRecord.LastName 
    $sAMAccountName = $sAMAccountName.ToLower()  
    $displayName = $sn + ", " + $givenName 
    $userPrincipalName = $sAMAccountName + “@domain.local"  
    $objUser = $objOU.Create("user","CN="+$cn)  
    $objUser.Put("sAMAccountName",$sAMAccountName) 
    $objUser.Put("userPrincipalName",$userPrincipalName)  
    $objUser.Put("displayName",$displayName)  
    $objUser.Put("givenName",$givenName)  
    $objUser.Put("sn",$sn)  
    $objUser.SetInfo() 
    $objUser.psbase.InvokeSet(“AccountDisabled",$false) 
    $objUser.SetInfo() 

    Add-ADGroupMember -Identity $dataRecord.Group -Member $sAMAccountName 
} 

故障排除

验证每个用户都有正确分配组:

$users = Import-Csv "Path_To_File.csv" 
$users | % { 
    $_.Group 
} 
+0

谢谢,但它不工作,它增加用户群,我需要添加组到用户。 您现在给我的Cmdles如果我使用它,我会将同一组添加到我的CSV文件中的所有用户。 – WildBunch

+0

websch01ar你在吗? – WildBunch

+0

我的歉意。为了更容易,我更新了我的帖子。 – websch01ar

相关问题