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

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

  • Добавить пользователя в несколько активных групп каталогов
  • Установите статический IP для пользователя (обычно на вкладке Dial-In)
  • Установите пароль пользователя

Вот мой текущий сценарий до сих пор

'***Active Directory User Creation***'
$firstname = Read-Host 'First Name:'
$lastname = Read-Host 'Last Name:'
$email = Read-Host 'E-mail:'
$username = Read-Host 'Windows Username:'
$userDefaultPass = Read-Host 'Use Default Password(y/n):'
while($userDefaultPass -ne 'n' -and $userDefaultPass -ne 'y')
{
    $userDefaultPass = Read-Host 'Use Default Password(y/n)'
}

if($userDefaultPass -eq 'y')
{
    $password = 'password012'
}
elseif($userDefaultPass -eq 'n')
{
$password = '/'
$tempPass = '\'

    while($tempPass -ne $password)
    {
        if($password -ne '/')
        {
            'Passwords do not match!'
        }
        $password = ConvertTo-SecureString Read-Host 'Enter Password'
        $tempPass = ConvertTo-SecureString Read-Host 'Re-enter Password' 
    }
}

New-ADUser
-AccountPassword $password
-ChangePasswordAtLogon $true
-DisplayName $lastname + ', ' + $firstname
-Enabled $true
-Name $lastname + ', ' + $firstname
-SamAccountName smithj
-Path “OU=Users,OU=Company,DC=home,DC=local”
-givenname $firstname
-surname $lastname
-userprincipalname ($username + “@test.local”)
-PasswordNeverExpires $true
}

Add-ADGroupMember -Identity TestGroup -Member $Username

Редакция: вот мой последний сценарий

import-module ActiveDirectory
# This script creates a user to the active directory
#'***Active Directory User Creation***'
$firstname = $args[0] 
$lastname = $args[1] 
$username = $args[2] 
$password = ConvertTo-SecureString $args[3] -AsPlainText -Force
$passwordExpires = $args[4]  
$domain = $args[5]
$userPrincipal = ($username + $domain)

New-ADUser `
-AccountPassword $password `
-DisplayName ($username) `
-Enabled $true `
-Name ($firstname + " " + $lastname) `
-SamAccountName $username `
-Path “CN=Users,DC=myDomain,DC=myCompany,DC=com” `
-givenname $firstname `
-surname $lastname `
-ChangePasswordAtLogon $true `
-userprincipalname ($userPrincipal) `

0