If statement 在脚本中创建具有特定属性的Active Directory用户

If statement 在脚本中创建具有特定属性的Active Directory用户,if-statement,active-directory,powershell-ise,If Statement,Active Directory,Powershell Ise,我正在编写一个PowerShell脚本,以便更轻松地创建包含一些属性的Active Directory用户。现在我需要处理Manager字段。我们有4个部门,4个经理。我想用这样的逻辑来创建它,比如如果部门是4个部门中的1个,那么就给4个经理中的1个 我如何处理这个问题 Import-Module activedirectory #Store the data from ADUsers.csv in the $ADUsers variable $ADUsers = Import-csv "c:

我正在编写一个PowerShell脚本,以便更轻松地创建包含一些属性的Active Directory用户。现在我需要处理Manager字段。我们有4个部门,4个经理。我想用这样的逻辑来创建它,比如如果部门是4个部门中的1个,那么就给4个经理中的1个

我如何处理这个问题

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
像这样的

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帐户名。

我用下面的开关解决了这个问题

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"}