Добавление новых пользователей в Active Directory и возможность разделения ячейки с несколькими значениями для добавления отдельных групп к пользователям - PullRequest
0 голосов
/ 25 июня 2019

У меня есть скрипт, который создает нового пользователя в Active Directory. Я хочу иметь возможность включить значение групп в мой шаблон CSV и разделить их на отдельные значения, которые будут добавлены пользователем.

В настоящее время я запускаю второй сценарий для назначения групп пользователям путем выделения имени группы.

# Import active directory module for running AD cmdlets
Import-Module activedirectory

#Store the data from ADUsers.csv in the $ADUsers variable
$ADUsers = Import-csv C:\upload\batman.csv

#Loop through each row containing user details in the CSV file 
foreach ($User in $ADUsers)
{
    #Read user data from each field in each row and assign the data to a variable as below

    $Username       = $User.username
    $Password       = $User.password
    $Firstname      = $User.firstname
    $Lastname       = $User.lastname
    $OU             = $User.ou #This field refers to the OU the user account is to be created in
    $email          = $User.email
    $Password       = $User.Password
    $groups         = $User.groups

    #Check to see if the user already exists in AD
    if (Get-ADUser -F {SamAccountName -eq $Username})
    {
         #If user does exist, give a warning
         Write-Warning "A user account with username $Username already exist in Active Directory."
    }
    else
    {
        #User does not exist then proceed to create the new user account

        #Account will be created in the OU provided by the $OU variable read from the CSV file
        New-ADUser `
            -SamAccountName $username `
            -UserPrincipalName "$username@lon.deloitterisk.cloud" `
            -Name "$Firstname $Lastname" `
            -GivenName $Firstname `
            -Surname $Lastname `
            -Enabled $True `
            -DisplayName "$Lastname, $Firstname" `
            -Path $OU `
            -AccountPassword (convertto-securestring $Password -AsPlainText - 
    Force) -ChangePasswordAtLogon $False -PasswordNeverExpires:$True `
            -group 
            {
            foreach($groups in $ADUsers)

    {
    $Username          = $User.username
    $groups            = $User.groups -split ","

    foreach ($group in $groups)
    }
            }  

    }
}

Это код, который у меня есть в настоящее время (я добавил в предложение groups, которое я пытаюсь добавить, однако этот раздел вызывает ошибки. Имя столбца в моем шаблоне - "groups")

1 Ответ

0 голосов
/ 25 июня 2019

Отказ от ответственности: это не проверено

Я бы использовал то, что у вас уже есть, и добавил бы в команду Add-ADPrincipalGroupMembership. Я изменил форматирование, чтобы использовать сплаттинг с командой New-ADUser только для удобства чтения.

# Import active directory module for running AD cmdlets
Import-Module activedirectory

#Store the data from ADUsers.csv in the $ADUsers variable
$ADUsers = Import-csv C:\upload\batman.csv

#Loop through each row containing user details in the CSV file 
foreach ($User in $ADUsers)
{
    #Read user data from each field in each row and assign the data to a variable as below

    $NewUser = @{
        'SamAccountName'        = $User.username
        'UserPrincipalName'     = "{0}@domain.com" -f $User.username
        'Name'                  = "{0} {1}" -f $user.firstname,$user.lastname
        'Enabled'               = $true
        'DisplayName'           = "{1}, {0}" -f $user.firstname,$user.lastname
        'AccountPassword'       = ConvertTo-SecureString $User.password -AsPlainText -Force
        'ChangePasswordAtLogon' = $false
        'PasswordNeverExpires'  = $true
        'GivenName'             = $User.firstname
        'Surname'               = $User.lastname
        'Path'                  = $User.ou #This field refers to the OU the user account is to be created in
        'Password'              = $User.Password
    }
    $groups         = $User.groups -split ","
    $email          = $User.email

    #Check to see if the user already exists in AD
    if (Get-ADUser -Filter "SamAccountName -eq '$($NewUser.SamAccountName)'")
    {
         #If user does exist, give a warning
         Write-Warning "A user account with username $Username already exist in Active Directory."
    }
    else
    {
        #User does not exist then proceed to create the new user account

        #Account will be created in the OU provided by the $OU variable read from the CSV file
        New-ADUser @NewUser
    Add-ADPrincipalGroupMembership -Identity $NewUser.SamAccountName -MemberOf $groups
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...