Powershell; Массовый пользовательский импорт с использованием другого UO - PullRequest
0 голосов
/ 21 апреля 2020

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

У меня есть 3 вопроса относительно этого кода.

  1. Как мне изменить $ User.username на первую букву «Voornaam» и 2 буквы «Achternaam» "

  2. Как настроить чтение OU из" Werkgever ".

Проще говоря; если переменная является выходом O = 1 ....

Иначе, если переменная является выходом O = 2 ....

Как связать менеджера с пользователем? Находится на вкладке «Организация» - «Менеджер - Имя».

Если есть какие-либо вопросы, пожалуйста, дайте мне знать, я остро нуждаюсь в помощи! Я извиняюсь за плохой английский sh, так как это не мой родной язык. Вот мой файл .csv.

Werkgever, Mdw., Naam, Roepnaam, Voorletters, Voorvoegsel, Voornaam, Achternaam, Afdeling, OE , Funct ie, Mobiel Werk, Telnr. werk, Locat ie werkzaam, Leidinggevende, In dienst, Uit dienst, код Soort medewerker, Soort medewerker GP G root bv, ---, Джон Борг, Джон, Дж., Джон, Борг, Алжимен: GPG algemeen , Algemeen: ИКТ mdw, stagiair, ---, Inzameling Alkmaar, ---, 1/13/2020,, 6, Stagiair

https://imgur.com/a/lv0zrKb

Вот мой код:

Import-Module activedirectory

#Store the data from ADUsers.csv in the $ADUsers variable
$ADUsers = Import-csv C:/Eigen_poging_tot_bulkimport.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

    $Voornaam         = $User.firstname
    $Achternaam       = $User.lastname  
    $Voornaam,$Achternaam = $User.username
    $email            = $User.email
    $streetaddress    = $User.streetaddress
    $city             = $User.city
    $zipcode          = $User.zipcode
    $state            = $User.state
    $country          = $User.country
    $Mobiel_werk      = $User.telephone
    $Functie          = $User.jobtitle
    $Werkgever        = $User.company
    $Locatie_werkzaam = $User.department
    $Password         = $User.Password

 if ($Werkgever -eq "GP_Groot_bv")
     {-Path = "OU=01. GP GROOT BV,OU=GP GROOT ORGANISATIE,DC=testomgeving,DC=nl"}      
   ElseIf ($Werkgever  -eq 'GP Groot brandstoffen en oliehandel bv')  
           { $User.OU = 'OU=04. BRANDSTOFFEN EN OLIEHANDEL,OU=GP GROOT ORGANISATIE,DC=testomgeving,DC=nl' }
    ElseIf ($Werkgever  -eq 'NNRD')  
           { -Path = 'OU=07. NNRD,OU=GP GROOT ORGANISATIE,DC=testomgeving,DC=nl' }

             Else {

  'The OU Is not defined properly'

}


    #Check to see if the user already exists in AD
    if (Get-ADUser -F {SamAccountName -eq "$Firstname $Lastname"})
    {
         #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
        New-ADUser `
            -SamAccountName $Username `
            -UserPrincipalName "$Username@testomgeving.nl" `
            -Name "$Firstname $Lastname" `
            -GivenName $Firstname `
            -Surname $Lastname `
            -Enabled $True `
            -DisplayName "$Lastname, $Firstname" `
            -Path `
            -City $city `
            -Company $company `
            -State $state `
            -StreetAddress $streetaddress `
            -OfficePhone $telephone `
            -EmailAddress $email `
            -Title $jobtitle `
            -Department $department `
            -AccountPassword (convertto-securestring "TempPass123!" -AsPlainText -Force) -ChangePasswordAtLogon $True `
     }       
    }

1 Ответ

1 голос
/ 21 апреля 2020

Поместите сопоставления «Werkgever-to-OU» в хеш-таблицу - таким образом, их легко «перевести» позже:

$mapping = @{
    'GP_Groot_bv' = "OU=01. GP GROOT BV,OU=GP GROOT ORGANISATIE,DC=testomgeving,DC=nl"
    'GP Groot brandstoffen en oliehandel bv' = 'OU=04. BRANDSTOFFEN EN OLIEHANDEL,OU=GP GROOT ORGANISATIE,DC=testomgeving,DC=nl'
    'NNRD' = 'OU=07. NNRD,OU=GP GROOT ORGANISATIE,DC=testomgeving,DC=nl'
}

Теперь вы можете заменить if/else/elseif logi c с:

if(-not $mapping.ContainsKey($Werkgever)){
  Write-Warning 'The OU Is not defined properly'
  continue
}

и передачей $mapping[$Werkgever] параметру -Path:

New-ADUser -Path $mapping[$Werkgever] ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...