Создание пользователей Active Directory с определенными атрибутами в сценарии

Я работаю над сценарием PowerShell, чтобы упростить создание пользователей Active Directory, включая некоторые атрибуты. А пока мне нужно обработать поле «Менеджер». У нас 4 отдела, 4 менеджера. Я хочу создать это, используя логику типа «если отдел является 1 из 4 отделов, дайте 1 из 4 менеджеров».

Как я могу это обработать?

Import-Module activedirectory

#Store the data from ADUsers.csv in the $ADUsers variable
$ADUsers = Import-csv "c:\temp\scripts\ADUsers.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

    $Firstname  = $User.firstname
    $Lastname   = $User.lastname
    $Username   = $User.username
    $Password   = $User.password
    $OU         = $User.ou #This field refers to the OU the user account is to be created in
    $userprincipalname = $user.userprincipalname
    $displayname = $user.displayname
    $title = $user.jobtitle
    $department = $user.department

    #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
    {
        Write-host 
        #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 -Name $displayname -SamAccountName $Username -UserPrincipalName $userprincipalname  -GivenName $Firstname -Surname $Lastname -Enabled $True -DisplayName $displayname -AccountPassword (convertto-securestring $Password -AsPlainText -Force) 
    }
} #end function

person supra_indo    schedule 19.11.2014    source источник


Ответы (2)


Что-то вроде этого?

if ($department -eq "A")
{
    $manager = "ManagerA"
}
else if ($department -eq "B")
{
    $manager = "ManagerB"
}
else if ($department -eq "C")
{
    $manager = "ManagerC"
}
else if ($department -eq "D")
{
    $manager = "ManagerD"
}

New-ADUser -Name $displayname -SamAccountName $Username -UserPrincipalName $userprincipalname  -GivenName $Firstname -Surname $Lastname -Enabled $True -DisplayName $displayname -AccountPassword (convertto-securestring $Password -AsPlainText -Force) -Manager $manager

«ManagerA/B/C/D» — это имя учетной записи SAM пользовательских объектов менеджеров.

person baldpate    schedule 20.11.2014

Я решил проблему с коммутатором, как показано ниже.

Switch ($department) {
    "dept 1" {$manager = "cn=jim smith,ou=west,dc=domain,dc=com"}
    "dept 2" {$manager = "cn=sally wilson,ou=east,dc=domain,dc=com"}
    "dept 3" {$manager = "cn=frank johnson,ou=east,dc=domain,dc=com"}
    "dept 4" {$manager = "cn=mary tutle,ou=west,dc=domain,dc=com"}
person supra_indo    schedule 20.11.2014