Синтаксис Powershell, новое подразделение AD и сценарий пользователя / группы (длинный) - PullRequest
0 голосов
/ 05 августа 2020

Прежде всего, я хочу указать, что я здесь новичок и довольно новичок в PowerShell (3 недели обучения), поэтому мой код и вопрос могут быть трудными для чтения ..

В любом случае, я сделал этот сценарий, и я часто проверял, действительно ли он работает, затем я забегал вперед и соединял несколько частей вместе без тестирования. Я тестировал многие части скрипта по отдельности, и мне показалось, что go неверно, когда он принимает ввод из моего CSV-файла. Цель состоит в том, чтобы автоматизировать создание пользователей (массовых пользователей) из файла csv. У вас должна быть возможность написать путь к OU с макс.1 родительским OU и, наконец, создать или добавить пользователя в существующие группы

Моя первая ошибка - это синтаксическая ошибка при попытке создать новый ou

$Users = Import-Csv -Delimiter "," -Path "C:\Users\DOA\Documents\csv.csv"            
foreach ($User in $Users){
 
    # ----------OU----------
    # if OU is empty they get placed in default location
    if($OU -ne "") {
        $OU = $User.OU
        if((Get-ADOrganizationalUnit -Filter * | Where-Object DistinguishedName -eq $OU).count -eq 0){
            $OUArray1 = $OU.Split(",")
            $OUArray2 = $OUArray1.Split("=")
            $contain = 0
            # Counts the amount of OU's in the path defined in csv
            foreach ($blah in $OUArray2){
                if($blah -eq "OU"){
                    $contain++
                }
            }
            # If there is one parent OU
            if($contain -eq 2){
                $NewOUpath = "$($OUArray1[2]),$($OUArray1[3])"
                New-ADOrganizationalUnit -Name $OUArray2[3] -Path $NewOUpath
                $Domainpath = "$($OUArray1[2]),$($OUArray1[3])"
                $NewOUpath = "$($OUArray1[1]),$($OUArray1[2]),$($OUArray1[3])"
                New-ADOrganizationalUnit -Name $OUArray2[1] -Path $NewOUpath
            } else {
            # 
                $NewOUpath = "$($OUArray1[1]),$($OUArray1[2])"
                $Domainpath = "$($OUArray1[1]),$($OUArray1[2])"
                New-ADOrganizationalUnit -Name $OUArray2[1] -Path $NewOUpath
            }
        }
    } else { $OU = "OU=Users,DC=Company,DC=local" }

Вторая ошибка - синтаксическая ошибка при попытке создать нового пользователя

$Password = ConvertTo-SecureString $User.Password -AsPlainText -Force
    $UserProps =@{
    Name = $User.Firstname + " " + $User.Lastname
    GivenName = $User.Firstname
    Surname = $User.Lastname
    SamAccountName = $User.SAM
    AccountPassword = $Password
    Path = $OU
    Enabled = $true
    ChangePasswordAtLogon = $false
    PasswordNeverExpires = $true
    }
    New-ADUser @UserProps -PassThru

Вот файл CSV (пока не удается вставить изображения) Файл CSV

Полный сценарий для справки https://pastebin.com/JumJKZDr

Любая помощь приветствуется

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