Заполняем Active Directory тестовыми пользователями для SharePoint

в 7:29, , рубрики: active directory, fake name generator, powershell, sharepoint

Когда вы тестируете SharePoint или любые другие продукты, использующие Active Directory, очень важно использовать большие объемы данных, приближенные к реальным. Например, если у вас в Active Directory 10 или 20 тестовых пользователей, а возможно 50 или 100 с именами типа Тест 1, Тест 2 и т.д., этого явно недостаточно.

Рассмотрим, как можно заполнить Active Directory большим (over 9000) количеством данных, максимально приближенных к реальности.

Получаем данные

Для генерации пользовательских данных воспользуемся сервисом Fake Name Generator. У этого замечательного сервиса есть возможность сгенерировать до 50 000 пользователей за один раз. При этом можно выбрать страну, и свойства пользователей, включенные в экспортный файл.

Выбрав все свойства, вы получите файл со всеми данными по электронной почте.

Импортируем данные

Рассмотрим импорт данных из полученного ранее CSV файла с помощью PowerShell. Мы немного изменим исходные данные, и далее создадим учетные записи в Active Directory на их основе.

Сперва создадим OU («Demo Users»), куда разместим всех новых пользователей и зададим политику для паролей

Import-Module ActiveDirectory
$dn = (Get-ADDomain).DistinguishedName
$forest = (Get-ADDomain).Forest

Set-ADDefaultDomainPasswordPolicy $forest -ComplexityEnabled $false -MaxPasswordAge "1000" -PasswordHistoryCount 0 -MinPasswordAge 0

$ou = Get-ADOrganizationalUnit -Filter 'name -eq "Demo Users"'
if ($ou -eq $null) {
    New-ADOrganizationalUnit -Name "Demo Users" -Path $dn
    $ou = Get-ADOrganizationalUnit -Filter 'name -eq "Demo Users"'
}

Импортируем CSV файл в PowerShell

$data = Import-Csv .<Имя_Вашего_Файла>.csv

Сейчас мы разместим наши данные в новый объект PowerShell. Обратите внимание, что в данном объекте используются названия параметров командлета New-ADUser, поэтому если вы хотите добавить атрибуты к аккаунтам, это нужно сделать здесь

$refineddata = $data | select  @{Name="Name";Expression={$_.Surname + ", " + $_.GivenName}},`
    @{Name="SamAccountName"; Expression={$_.Username}},`
    @{Name="UserPrincipalName"; Expression={$_.Username +"@" + $forest}},`
    @{Name="GivenName"; Expression={$_.GivenName}},`
    @{Name="Surname"; Expression={$_.Surname}},`
    @{Name="DisplayName"; Expression={$_.Surname + ", " + $_.GivenName}},`
    @{Name="City"; Expression={$_.City}},`
    @{Name="StreetAddress"; Expression={$_.StreetAddress}},`
    @{Name="State"; Expression={$_.State}},`
    @{Name="Country"; Expression={$_.Country}},`
    @{Name="PostalCode"; Expression={$_.ZipCode}},`
    @{Name="EmailAddress"; Expression={$_.EmailAddress}},`
    @{Name="AccountPassword"; Expression={ (Convertto-SecureString -Force -AsPlainText "WictorRocks!")}},`
    @{Name="OfficePhone"; Expression={$_.TelephoneNumber}},`
    @{Name="Title"; Expression={$_.Occupation}},`
    @{Name="Enabled"; Expression={$true}},`
    @{Name="PasswordNeverExpires"; Expression={$true}}

Обратите внимание, что в скрипте выше поправлены свойства Name и DisplayName, и в UPN используется DNS-имя леса. Кроме этого все пользователи активны.

Время добавить пользователей в Active Directory! Но мы не будем их добавлять в тот OU, который создали ранее. Вместо этого, создадим OU для стран пользователей. Это позволяет лучше управлять тестовыми данными и протестировать работу в разных OU

$refineddata | % {
    $subou = Get-ADOrganizationalUnit -Filter "name -eq ""$($_.Country)""" -SearchBase $ou.DistinguishedName
    if($subou -eq $null) {
        New-ADOrganizationalUnit -Name $_.Country -Path $ou.DistinguishedName
        $subou = Get-ADOrganizationalUnit -Filter "name -eq ""$($_.Country)""" -SearchBase $ou.DistinguishedName
    }
    $_ | Select @{Name="Path"; Expression={$subou.DistinguishedName}},* | New-ADUser
}

Если у вас будут какие-то ошибки во время создания пользователей, скорее всего они связаны с тем, что у некоторых из них одинаковые имена пользователей.

Результат

Зайдите в консоль управления Active Directory и посмотрите, что у вас получилось

Заполняем Active Directory тестовыми пользователями для SharePoint

Если вы выберете какой-нибудь OU, то увидите там очень много пользователей

Заполняем Active Directory тестовыми пользователями для SharePoint

При этом профиль пользователей будет заполнен

Заполняем Active Directory тестовыми пользователями для SharePoint

Заключение

Вы посмотрели как быстро и просто можно заполнить свой каталог Active Directory для тестовых сценариев.

Важно, что в случае с SharePoint может быть накладно создание излишне большого числа аккаунтов ввиду затрат на их синхронизацию и индексацию.

Автор: dplotnikov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js