@Knorke_02

Как правильно составить скрипт PowerShell?

Суть такова, нужно написать скрипт, чтобы при помощи него создавались пользователи в Active Directory:
1. Количество пользователей
2. Имена пользователей
3. Пароль для пользователей
Я написал такой скрипт, вижу в нем ошибку, но не получается сделать, прошу помощи
Import-Module ActiveDirectory

# Переменные
$number= Read-Host "Enter the number of users"
$input = Read-Host 'Enter a name'
$pass = Read-Host 'Enter the password'
$count=1..$number

# Cоздаем OU
New-ADOrganizationalUnit -Name "DemoOffice" -Path “DC=demo,DC=lab”
New-ADOrganizationalUnit -Name "Users" -Path “OU=DemoOffice,DC=demo,DC=lab”
New-ADOrganizationalUnit -Name "Computers" -Path “OU=DemoOffice,DC=demo,DC=lab”

# Цикл с пользователями
foreach ($i in $count) {

$Users = @{

Name = "$input"
GivenName = "$input"
UserPrincipalName = "$input@demo.lab"
Path = "OU=Users,OU=DemoOffice,DC=demo,DC=lab"
ChangePasswordAtLogon = $true
AccountPassword = "$pass" | ConvertTo-SecureString -AsPlainText -Force
Enabled = $true

}

New-ADUser @Users

}
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@Knorke_02 Автор вопроса
Вопрос решен, Спасибо Евгений
Import-Module ActiveDirectory

# Cоздаем OU
New-ADOrganizationalUnit -Name "DemoOffice" -Path “DC=demo,DC=lab”
New-ADOrganizationalUnit -Name "Users" -Path “OU=DemoOffice,DC=demo,DC=lab”
New-ADOrganizationalUnit -Name "Computers" -Path “OU=DemoOffice,DC=demo,DC=lab”

$number = Read-Host "Введите количество пользователей"
$count=1..$number
$users = foreach ($i in $count)
{
Read-Host "Введите имя пользователя номер $i"
}
$pass = Read-Host 'Enter the password'

# Цикл с пользователями
foreach ($user in $users) {
$Username = @{

Name = "$user"
GivenName = "$user"
UserPrincipalName = "$user@demo.lab"
Path = "OU=Users,OU=DemoOffice,DC=demo,DC=lab"
ChangePasswordAtLogon = $true
AccountPassword = "$pass" | ConvertTo-SecureString -AsPlainText -Force
Enabled = $true

}

New-ADUser @Username

}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@MaxKozlov Куратор тега PowerShell
Заполнение $input из read-host перенесите внутрь цикла.
И, для лучшего понимания, стоит $users переименовать в $user потому что по смыслу это про одного пользователя
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы