Home WindowsExchange Server Создание тестовых пользователей в Active Directory

Создание тестовых пользователей в Active Directory

by admin
118 views
activedirectory 1

При создании реалистичных учетных записей пользователей я не нашел лучшего источника, чем использование http://www.fakenamegenerator.com , позволяющего мне сгенерировать CSV с большим количеством реалистично выглядящих пользователей и их данными.  

Генерируем CSV для Active Directory

Для этого я сначала перехожу на страницу «Генератор поддельных имен» и выбираю в меню опцию « Order in Bulk », устанавливаю флажок, чтобы принять условия обслуживания, и выбираю в качестве вывода Comma separated (.csv)

Теперь на шаге 3 я могу выбрать набор имен и страну для информации об учетной записи, которую я хочу. После того, как это выбрано, я выбираю следующие поля:

  • GivenName
  • Surname
  • StreetAddress
  • City
  • Title
  • Username
  • Password
  • Country
  • TelephoneNumber
  • Occupation 

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

Ниже сам скрипт и список тестовых юзеров , которые я выгрузил с этого сайта.

Запускаем импорт пользователей

.\Import-LabADUser
Import-LabADUser -Path .\100.csv -OrganizationalUnit test
<#

.SYNOPSIS

    Imports a CSV from Fake Name Generator to create test AD User accounts.

.DESCRIPTION

    Imports a CSV from Fake Name Generator to create test AD User accounts.

    It will create OUs per country under the OU specified. Bulk

   generated accounts from fakenamegenerator.com must have as fields:

   * GivenName

   * Surname

   * StreetAddress

   * City

   * Title

   * Username

   * Password

   * Country

   * TelephoneNumber

   * Occupation

.EXAMPLE

    C:\PS> Import-LabADUser -Path .\unique.csv -OU DemoUsers

#>

function Import-LabADUser

{

    [CmdletBinding()]

    param(

        [Parameter(Mandatory=$true,

                   Position=0,

                   ValueFromPipeline=$true,

                   ValueFromPipelineByPropertyName=$true,

                   HelpMessage="Path to one or more locations.")]

        [Alias("PSPath")]

        [ValidateNotNullOrEmpty()]

        [string[]]

        $Path,

        [Parameter(Mandatory=$true,

                   position=1,

                   ValueFromPipeline=$true,

                   ValueFromPipelineByPropertyName=$true,

                   HelpMessage="Organizational Unit to save users.")]

        [String]

        [Alias('OU')]

        $OrganizationalUnit

    )

    

    begin {

        

    }

    

    process {

        Import-Module ActiveDirectory

        if (-not (Get-Module -Name 'ActiveDirectory')) {

            return

        }

        $DomDN = (Get-ADDomain).DistinguishedName

        $forest = (Get-ADDomain).Forest

        $ou = Get-ADOrganizationalUnit -Filter "name -eq '$($OrganizationalUnit)'"

        if($ou -eq $null) {

            New-ADOrganizationalUnit -Name "$($OrganizationalUnit)" -Path $DomDN

            $ou = Get-ADOrganizationalUnit -Filter "name -eq '$($OrganizationalUnit)'"

        }

        $data =

        Import-Csv -Path $Path | select  @{Name="Name";Expression={$_.GivenName + ", " + $_.Surname}},

                @{Name="SamAccountName"; Expression={$_.Username}},

                @{Name="UserPrincipalName"; Expression={$_.Username +"@" + $forest}},

                @{Name="GivenName"; Expression={$_.GivenName}},

                @{Name="Surname"; Expression={$_.Surname}},

                @{Name="DisplayName"; Expression={$_.GivenName + " " + $_.Surname}},

                @{Name="City"; Expression={$_.City}},

                @{Name="StreetAddress"; Expression={$_.StreetAddress}},

                @{Name="State"; Expression={$_.State}},

                @{Name="Country"; Expression={$_.Country}},

                @{Name="PostalCode"; Expression={$_.ZipCode}},

                @{Name="EmailAddress"; Expression={$_.Username +"@" + $forest}},

                @{Name="AccountPassword"; Expression={ (Convertto-SecureString -Force -AsPlainText $_.password)}},

                @{Name="OfficePhone"; Expression={$_.TelephoneNumber}},

                @{Name="Title"; Expression={$_.Occupation}},

                @{Name="Enabled"; Expression={$true}},

                @{Name="PasswordNeverExpires"; Expression={$true}} | ForEach-Object -Process {

            

                    $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  

                }

    }    

    end {}

}

Статьи из этой категории

Leave a Comment