22 November 2012

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

SharePoint
Translation
Original author: Wictor Wilen
Когда вы тестируете 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 и посмотрите, что у вас получилось



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



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



Заключение


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

Важно, что в случае с SharePoint может быть накладно создание излишне большого числа аккаунтов ввиду затрат на их синхронизацию и индексацию.
Tags:active directoryfake name generator
Hubs: SharePoint
+14
12.8k 77
Comments 8
Popular right now
SharePoint Developer C# .NET
from 80,000 to 100,000 ₽Витро СофтRemote job
Инженер технической поддержки
to 50,000 ₽Инфосистемы ДжетМосква
Системный администратор/Junior DevOps
from 80,000 to 150,000 ₽KALABIМосква