Рассмотрим, как можно заполнить 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 может быть накладно создание излишне большого числа аккаунтов ввиду затрат на их синхронизацию и индексацию.
ссылка на оригинал статьи http://habrahabr.ru/post/159709/
Добавить комментарий