How to create new active directory users with powershell

Работа с элементами

В Windows PowerShell есть командлеты, которые умеют работать с элементами, под элементами здесь можно понимать: файлы, папки, ключи реестра и так далее.

  • Clear-Item — очищает содержимое элемента, но не удаляет сам элемент;
  • Copy-Item – копирует элемент;
  • Get-Item — получает элемент в указанном месте;
  • Invoke-Item — выполняет действие по умолчанию над указанным элементом;
  • Move-Item – перемещает элемент;
  • New-Item – создает новый элемент;
  • Remove-Item – удаляет указанные элементы;
  • Rename-Item — переименовывает элемент в пространстве имен поставщика Windows PowerShell;
  • Set-Item — изменяет элемент;
  • Get-ChildItem — возвращает элементы и дочерние элементы в одном или нескольких определенных местах;
  • Get-Location – выводит информацию о текущем местонахождении.

Starting small

Starting small seems like the prudent choice. If we can get it working with a simple example, we can start adding more and more options as we see fit.

Let’s just try creating a user with:

No news is good news. The command seems to have completed without error, so let’s go check out our new user object in Active Directory.

Looks like the account was created successfully, but there are a few things to note about the newly created account:

  • No password set by default

  • Not enabled (because there’s no password)

  • No basic information (such as names or user information)

  • No attributes defined

  • Default OU location (typically the default Users OU)

This seems like more work to cleanup than it might be worth. With that, let’s move on.

Командлеты PowerShell для удаленного управления

С помощью Windows PowerShell можно выполнять команды не только на локальном компьютере, но и на одном или даже на нескольких удаленных компьютерах.

  • Enter-PSSession — запускает интерактивный сеанс с удаленным компьютером;
  • Exit-PSSession — завершает интерактивный сеанс с удаленным компьютером;
  • New-PSSession — создает постоянное подключение к локальному или удаленному компьютеру;
  • Remove-PSSession — закрывает один или несколько сеансов Windows PowerShell;
  • Disconnect-PSSession — отсоединяется от сеанса;
  • Connect-PSSession — подключается к отключенным сеансам;
  • Get-PSSession — получает сеансы Windows PowerShell на локальных и удаленных компьютерах;
  • Invoke-Command — выполняет команды на локальном и удаленных компьютерах.

ВЫХОДНЫЕ ДАННЫЕ

Microsoft.ActiveDirectory.Management.ADUser
Возвращает один или несколько объектов пользователей.

Этот командлет возвращает значения свойств ADUser, входящих в набор по умолчанию. Чтобы получить дополнительные свойства ADUser, используйте параметр Properties.

Чтобы получить список свойств объекта ADUser, входящих в набор по умолчанию, воспользуйтесь следующей командой:

PowerShell

Get-ADUser <пользователь>| Get-Member

1 Get-ADUser<пользователь>|Get-Member

Чтобы получить список наиболее часто используемых свойств объекта ADUser, воспользуйтесь следующей командой:

PowerShell

Get-ADUser <пользователь> -Properties Extended | Get-Member

1 Get-ADUser<пользователь>-PropertiesExtended|Get-Member

Чтобы получить список всех свойств объекта ADUser, воспользуйтесь следующей командой:

PowerShell

Get-ADUser <пользователь> -Properties * | Get-Member

1 Get-ADUser<пользователь>-Properties*|Get-Member

Обратная запись групп в локальной среде (предварительная версия)

Сейчас многие группы по-прежнему управляются в Active Directory локально. Теперь доступна предварительная версия функции обратной записи групп Microsoft 365 в Azure AD для ответа на запросы синхронизации облачных групп с локальной средой.

Группы Microsoft 365 создаются и управляются в облаке. Функция обратной записи позволяет записывать группы Microsoft 365 в качестве списков рассылки в лес Active Directory с установленной службой Exchange. Пользователи с локальными почтовыми ящиками Exchange могут отправлять и получать электронные письма от этих групп. Функция обратной записи групп не поддерживается для групп безопасности или групп рассылки Azure AD.

Дополнительные сведения см. в документации по службе синхронизации Azure AD Connect.

Обратная запись групп Microsoft 365 — это функция, доступная в рамках любого платного плана лицензирования Azure Active Directory (Azure AD) в режиме общедоступной предварительной версии. См. юридические сведения о Дополнительных условиях использования предварительных выпусков Microsoft Azure.

Полезные командлеты Windows PowerShell

В данном разделе я перечислю командлеты PowerShell, которые Вы точно будете использовать.

  • Get-Help – показывает справку по командлету, функции и общую справку по Windows PowerShell. Справка бывает нескольких типов: краткая, детальная, полная и вывод только примеров;
  • Update-Help — загружает и устанавливает новые файлы справки, т.е. обновление справки;
  • Get-Command – командлет поиска нужной команды, можно искать как по глаголу, так и по существительному, также возможно использование маски, если Вы не знаете точное наименование глагола или существительного;
  • Get-Alias – показывает псевдонимы, все или конкретной команды;
  • Get-PSDrive – показывает подключенные диски;
  • Get-Member – выводит свойства и методы, которые есть у объекта;
  • Get-WindowsFeature – выводит сведения о доступных ролях и компонентах сервера;
  • Install-WindowsFeature (эквивалентен Add-WindowsFeature) — устанавливает роли или компоненты на указанный сервер;
  • Uninstall-WindowsFeature (эквивалентен Remove-WindowsFeature) – удаляет роли или компонента сервера;
  • Get-History — возвращает список команд, введенных в ходе текущей сессии.

Get-AdUser Syntax

Active Directory Get-AdUser syntax as given below

Get-ADUser         -Filter <String>   >]
            
      

Get-ADUser          <ADUser>   
   >]      

Get-ADUser         -LDAPFilter <String>   >]
            
      

Description

Get-AdUser is used to get one or more active directory objects or perform a search to get specific users.

–AuthType – authentication method to use based on either Basic (or 1) or Negotiate (or 0). It has Negotiate default authentication method.

SSL (Secure Socket Layer) connection is required to use the Basic Authentication method.

–Credential PSCredential – It specifies user credentials required to perform the get-aduser cmdlet. It default accepts the credentials of logged-on users.

To use the Credential parameter, use username as User1 or domain\User1 or you can create and use  object by using  cmdlet.

-Identity – It specifies Active Directory user by using below property value

  • Distinguished Name
  • SAMAccountName
  • Security Identifier
  • GUID

The identifier specified in parenthesis is the LDAP display name.

-Partition – It specifies the distinguished name of an active directory partition.

–Filter – It specifies a query string (PowerShell Expression Language Syntax) to retrieves Active Directory objects. PowerShell wildcards other than * are not supported by  syntax.

-LDAPFilter – LDAPFilter query string is used to filter Active Directory objects.

Get-AdUser cmdlet returns the default set of properties. However, if you want to get all properties, use the Properties parameter.

Let’s understand using PowerShell Get-AdUser with different examples.

Description

The Remove-ADUser cmdlet removes an Active Directory user.

The Identity parameter specifies the Active Directory user to remove.
You can identify a user by its distinguished name (DN), GUID, security identifier (SID), or Security Account Manager (SAM) account name.
You can also set the Identity parameter to a user object variable, such as , or you can pass a user object through the pipeline to the Identity parameter.
For example, you can use the Get-ADUser cmdlet to retrieve a user object and then pass the object through the pipeline to the Remove-ADUser cmdlet.

If the ADUser is being identified by its DN, the Partition parameter will be automatically determined.

For AD LDS environments, the Partition parameter must be specified except in the following two conditions:

  • The cmdlet is run from an Active Directory provider drive.
  • A default naming context or partition is defined for the AD LDS environment.
    To specify a default naming context for an AD LDS environment, set the msDS-defaultNamingContext property of the Active Directory directory service agent (DSA) object (nTDSDSA) for the AD LDS instance.

Create New User Accounts using the New-ADUser Cmdlet

So what is the PowerShell cmdlet used to create user objects? It’s the New-ADUser cmdlet, which is included in the Active Directory PowerShell module built into Microsoft Windows Server 2008R2/2012 and above. Therefore, the first thing we need to do is enable the AD module:

Import-Module ActiveDirectory

Now let’s take a closer look at cmdlet New-ADUser. We can get its full syntax by running the following command:

Get-Command New-ADUser –Syntax

When you know the syntax, it’s easy to add users to Active Directory:

New-ADUser B.Johnson

Now let’s check whether the user was added successfully by listing all Active Directory users using the following script:

Get-ADUser -Filter * -Properties samAccountName | select samAccountName

There it is, the last one in the list!

Как через Powershell получить список пользователей AD с Get-ADUser

01 августа 2019

Get-ADUser команда, которая возвращает список пользователей AD в Powershell. На самом деле командлет мало чем отличается от тех, которые мы рассматривали раннее с приставкой «Get-AD».

Для работы с командой нам понадобится Powershell Active Directory Module.

Так мы вернем всех пользователей AD:

Если нам нужно найти по имени, сделайте так:

Где вместо Adminis имя вашей учетной записи. Звездочки позволяют искать вхождение где справа и слева могут быть еще символы.

Для получения сведений об одной учетной записи AD есть ключ Identity:

Кроме этого у нас есть дополнительный ключ Properties, который выводит дополнительные свойства у объекта пользователя:

Если мы хотим выполнить Get-ADUser в OU, то для этого есть дополнительный ключ, который может искать в организационных единицах и контейнерах. В моем случае я ищу в OU Moscow и домене domain.local:

Если вам нужно искать в контейнере — используйте CN. Примеры с множеством OU смотрите ниже.

Навигация по посту

  • Примеры Powershell Get-ADUser Filter
  • Несколько OU в Get-ADUser
  • Выгрузка пользователей из AD в Excel
  • Получение Email пользователя в Powershell
  • Примеры с паролями

Поиск и фильтрация списка пользователей AD в Powershell Get-ADUser -Filter

Мы можем фильтровать по одному или множеству свойств. Для того что бы увидеть все свойства нужно сделать:

В области 1 выделены все имена, по которым мы можем фильтровать. В области 2 тип данных с которыми мы можем сравнивать. Т.е. если тип данных у области 2 string (строка), то это плохая идея сравнивать с числом (int). Нужно сразу отметить, что те свойства, которые мы получаем благодаря ключу Properties мы не можем применять в Filter.

Примеры с Get-Member мы уже рассматривали раньше.

Для примера так мы можем получить всех пользователей, у которых указан город Moscow:

А теперь найдем всех пользователей, которые неверно вводили пароль более одного раза и в они включены:

Т.к. BadLogonCount — это свойство от ключа Properties оно должно проверятся через конвейер в Where.

Еще один пример, но теперь нужно найти пользователя имя которого содержит 0001 и он активен:

Получение списка пользователей Active Directory в Powershell Get-User из нескольких OU

В команде нет встроенных средств поиска в нескольких объектах сразу. Мы можем объявить переменную, содержащую этот список и затем передать через цикл. На моем пример используется контейнер Users и OU Moscow:

Если бы у меня была OU Ekaterinburg в которой находилось OU Marketing написать стоило бы так:

Выгрузка пользователей из AD в Excel с Powershell

Экспорт и выгрузка может быть во множество форматов, но для выгрузки в Excel есть специальный формат CSV. Для того что бы сделать выгрузку достаточно выполнить следующее:

Если мы хотим выгрузить только определенные свойства, то в поле SELECT -Property нужно их перечислить:

Получение Email пользователя AD в Powershell

Нужное свойство мы можем получить через соответствующий ключ Properties. Так я получу почту у конкретного пользователя Administrator:

Выгрузим в CSV имена только тех пользователей у которых нет почты:

Получение списка пользователей чей срок действия пароля истек в Powershell

Для того что бы увидеть все свойства относящиеся к паролям выполните:

И затем, по этому свойству, отфильтруем пользователей:

Powershell атрибуты пользователя. Поиск и изменение.

Одним из часто встречающихся действий, выполняемых системными администраторами, является работа с учетными записями пользователей. Давайте посмотрим, как можно быстро находить и изменять учетные записи пользователей(доменных и локальных) с помощью Powershell.

Поиск пользователей по заданным критериям. Доменные пользователи.

Для поиска доменных пользователей используется командлет Get-ADUser. Данный командлет входит в модуль ActiveDirectory. Он доступен на серверах с установленной ролью AD DS или при установке оснастки RSAT для удаленного администрирования серверов. Модуль, также, может быть установлен и отдельно из репозитория Powershell.

Чтобы найти пользователя с определенными свойствами, нужно знать какие атрибуты у него есть и как они называются в Powershell. В этом нам поможет команда:

В данном примере производится поиск пользователя с именем, заданным в переменной $Name. Вы можете указать имя пользователя явно, только лучше использовать оператор -like

Учтите, что под именем здесь имеется ввиду полное имя пользователя.

При поиске, также, можно указать сервер(контроллер домена) и учетные данные пользователя домена, которые будут использоваться для получения сведений о пользователе.

Давайте посмотрим вывод команды:

Как видно, свойств довольно много, и по ним можно производить поиск, а также менять эти свойства. Для того, чтобы найти пользователя по любому свойству, введите его вместо(или вместе) со свойством Name, по которому мы искали пользователя.

Для того, чтобы изменить атрибуты пользователя используется командлет Set-ADUser.

Например, чтобы изменить название улицы, указанное в свойствах пользователя Семенов, можно сразу передать результат выполнения команды Get-ADUser командлету Set-ADUser:

В результате выполнения, получим желаемый результат в свойствах пользователя:

Powershell атрибуты пользователя. Локальные пользователи.

Для работы с учетными записями локальных пользователей используется модуль Local Accounts, доступный в репозитории Powershell Gallery(как установить модули описано здесь).

Найти пользователя можно с помощью командлета Get-LocalUser.

Синтаксис отличается от Get-ADUser. По умолчанию, без параметров Get-LocalUser выводит список всех локальных пользователей на компьютере:

Для получения информации по конкретному пользователю, нужно указать его параметры. Чтобы посмотреть доступные параметры используем командлет Get-Member:

Как можно видеть, параметров у пользователя намного меньше.

И еще, здесь есть отличие от Get-ADUser, параметр Name, который в Get-ADUser обозначал полное имя пользователя, в Get-LocalUser означает логин пользователя. Убедиться в этом можно на примере конкретного пользователя. Чтобы найти пользователя по атрибуту, отличному от его логина(Name) и SID, нужно задействовать командлет Where-Object:

Изменение атрибутов производится командлетом Set-LocalUser. Например, для изменения срока действия учетной записи с 31.08.2019 на 31.12.2020 команда выглядит так:

Аналогично меняются и другие атрибуты(Description, Fullname и т.д.)

И еще одно замечание. Если доменного пользователя заставить сменить пароль перед первым входом мы можем просто с помощью параметра -ChangePasswordAtLogon, то с локальными пользователями все не так. Вариант, все же есть, и он описан в этой статье.

Данные командлеты(особенно при использовании в скриптах) очень облегчат жизнь системному администратору, если приходится часто или в большом количестве менять атрибуты пользователей. Вы можете создать(получить) список пользователей и атрибуты, которые нужно изменить и «скормив» его скрипту, быстро получить требуемый результат.

Вот такая коротенькая памятка по поиску и изменению атрибутов пользователей получилась.

Еще статьи по использованию Powershell в администрировании можно посмотреть по тегу Powershell.

Create AD Users in Bulk with a PowerShell Script

Now, let’s make our task a little bit harder and create ten similar Active Directory accounts in bulk, for example, for our company’s IT class, and set a default password (P@ssw0rd) for each of them. To send the default password in a protected state, we must use the ConvertTo-SecureString parameter. Here’s the script to use:

$path="OU=IT,DC=enterprise,DC=com"
$username="ITclassuser"
$count=1..10
foreach ($i in $count)
{ New-AdUser -Name $username$i -Path $path -Enabled $True -ChangePasswordAtLogon $true  `

-AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -passThru }

Now let’s make our script more flexible by adding the Read-Host parameter, which will ask for the name and number of users:

$path="OU=IT,DC=enterprise,DC=com"
$username=Read-Host "Enter name"
$n=Read-Host "Enter Number"
$count=1..$n
foreach ($i in $count)
{ New-AdUser -Name $username$i -Path $path -Enabled $True -ChangePasswordAtLogon $true  `

-AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -passThru }

Работа с фоновыми заданиями

В Windows PowerShell есть возможность запускать задачи в фоновом режиме, для того чтобы, не дожидаясь окончания работы команды (для случаев, когда задача выполняется долго), продолжать работать в текущей сессии. Для работы с фоновыми заданиями в PowerShell есть следующие командлеты:

  • Start-Job – запустить фоновую задачу;
  • Stop-Job – остановить фоновую задачу
  • Get-Job – посмотреть список фоновых задач;
  • Receive-Job – посмотреть результат выполнения фоновой задачи;
  • Remove-Job – удалить фоновую задачу;
  • Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.

ПРИМЕР 2

PowerShell

Get-ADUser -Filter ‘Name -like «*SvcAccount»‘ | FT Name,SamAccountName -A

1 Get-ADUser-Filter’Name -like «*SvcAccount»‘|FTName,SamAccountName-A

Name,SamAccountName
SQL01 SvcAccount,SQL01
SQL02 SvcAccount,SQL02
IIS01 SvcAccount,IIS01

Описание
————

Получает всех пользователей, имена которых оканчиваются на «SvcAccount».

ПРИМЕР 3

PowerShell

Get-ADUser GlenJohn -Properties *

1 Get-ADUserGlenJohn-Properties*

Surname : John
Name: Glen John
UserPrincipalName :
GivenName : Glen
Enabled : False
SamAccountName: GlenJohn
ObjectClass: user
SID : S-1-5-21-2889043008-4136710315-2444824263-3544
ObjectGUID: e1418d64-096c-4cb0-b903-ebb66562d99d
DistinguishedName : CN=Glen John,OU=NorthAmerica,OU=Sales,OU=UserAccounts,DC=FABRIKAM,DC=COM

Описание
————

Получает все свойства пользователя с именем учетной записи SAM «GlenJohn».

ПРИМЕР 4

PowerShell

Get-ADUser -Filter {Name -eq «GlenJohn»} -SearchBase «DC=AppNC» -Properties mail -Server lds.Fabrikam.com:50000

1 Get-ADUser-Filter{Name-eq»GlenJohn»}-SearchBase»DC=AppNC»-Propertiesmail-Serverlds.Fabrikam.com50000

Получает пользователя с именем «GlenJohn» из экземпляра AD LDS.

Adding Users to Active Directory with PowerShell

First, let’s check out what commands are available for Active Directory with PowerShell. I’m going to narrow it down to all the Active Directory cmdlets that start with the word  (since we want to create new users):

Based off the results, I’m thinking that  is going to be the star of our blog. Let’s look at what parameters are available.

In newer versions of PowerShell on Windows 10 and later, the module PSReadLine is installed and imported by default, so I can type the following to see the parameters of :

(You can then press Ctrl+Space to see the list pop up, as in the screenshot below.)

Looking at the available parameters, we should have more than plenty to work with. (Definitely way too many to cover in this blog!)

Установка модуля Azure AD PowerShell

Чтобы установить модуль Azure AD PowerShell, выполните следующие команды:

Чтобы проверить, готов ли модуль к использованию, выполните следующую команду:

Теперь можно начать использование командлетов в модуле. Полное описание командлетов в модуле Azure AD см. в электронной справочной документации по PowerShell версии 2 для Azure Active Directory.

Примечание

Командлеты Azure AD PowerShell не работают с новой оболочкой PowerShell 7, так как она основана на .NET Core. Мы знаем об этом и работаем над обновлением. Пока мы рекомендуем использовать модуль Windows PowerShell 5.x для операций Azure AD PowerShell.

Импорт и экспорт

PowerShell позволяет импортировать и экспортировать данные в разных распространенных форматах, например, CSV или XML, а также перенаправлять вывод результата работы команды во внешний файл или на принтер.

  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импортирует данные из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;
  • Import-Clixml — импортирует файл CLIXML и создает соответствующие объекты в оболочке Windows PowerShell;
  • Out-File — посылает вывод результата работы командлета во внешний файл (например, в TXT);
  • Out-Printer — вывод результата работы команды на принтер;
  • Import-Module — добавляет модули в текущей сессии.

Работа с сетью в Windows PowerShell

Для администрирования сети в Windows PowerShell существуют такие командлеты как:

  • Disable-NetAdapter – командлет отключает сетевой адаптер;
  • Enable-NetAdapter – данный командлет включает сетевой адаптер;
  • Rename-NetAdapter — переименовывает сетевой адаптер;
  • Restart-NetAdapter — перезапускает сетевой адаптер;
  • Get-NetIPAddress – выводит информацию о конфигурации IP-адреса;
  • Set-NetIPAddress — изменяет конфигурацию IP-адреса;
  • New-NetIPAddress — создает и настраивает IP-адрес;
  • Remove-NetIPAddress — удаляет IP-адрес и его конфигурацию;
  • Get-NetRoute — выводит таблицу маршрутизации IP;
  • Set-NetRoute — изменяет таблицу маршрутизации IP;
  • New-NetRoute — создает запись в таблице маршрутизации IP;
  • Remove-NetRoute — удаляет одну или несколько записей (IP маршрутов) из таблицы маршрутизации IP;
  • Get-NetIPv4Protocol — выводит информацию о конфигурации протокола IPv4;
  • Get-NetIPv6Protocol — выводит информацию о конфигурации протокола IPv6;
  • Get-NetIPInterface — выводит информацию о свойствах интерфейса IP;
  • Get-NetTCPSetting — показывает информацию о настройках и конфигурации TCP;
  • Test-Connection – командлет посылает ICMP пакеты к одному или нескольким компьютерам, т.е. «пингует» компьютеры.

Import AD Users from a CSV File

Another option for creating users in AD is to import them from a CSV file. This option is great when you have a list of users with predefined personal details such as:

  • FirstName
  • LastName
  • Username
  • Department
  • Password
  • OU

The CSV file must be in UTF8 encoding and contain contact data that looks like this:

The following script will create enabled user objects for any users in the CSV that don’t already have accounts in AD. The “Reset password at the next logon” option will be enabled for the new accounts, so you can use your default password:

#Enter a path to your import CSV file
$ADUsers = Import-csv C:\scripts\newusers.csv

foreach ($User in $ADUsers)
{

       $Username    = $User.username
       $Password    = $User.password
       $Firstname   = $User.firstname
       $Lastname    = $User.lastname
    $Department = $User.department
       $OU           = $User.ou

       #Check if the user account already exists in AD
       if (Get-ADUser -F {SamAccountName -eq $Username})
       {
               #If user does exist, output a warning message
               Write-Warning "A user account $Username has already exist in Active Directory."
       }
       else
       {
              #If a user does not exist then create a new user account
          
        #Account will be created in the OU listed in the $OU variable in the CSV file; don’t forget to change the domain name in the"-UserPrincipalName" variable
              New-ADUser `
            -SamAccountName $Username `
            -UserPrincipalName "[email protected]" `
            -Name "$Firstname $Lastname" `
            -GivenName $Firstname `
            -Surname $Lastname `
            -Enabled $True `
            -ChangePasswordAtLogon $True `
            -DisplayName "$Lastname, $Firstname" `
            -Department $Department `
            -Path $OU `
            -AccountPassword (convertto-securestring $Password -AsPlainText -Force)

       }
}

After script execution, we have two new users, Edward Franklin and Bill Jackson, in our Active Directory domain:

Let’s take a look at their details by running Get-ADUser cmdlet again:

Get-ADUser E.Franklin -Properties CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet  | Select CanonicalName, Enabled, GivenName, Surname, Name, UserPrincipalName, samAccountName, whenCreated, PasswordLastSet

Работа с объектами

Так как PowerShell работает с объектами, он позволяет выполнять некие действия над этими объектами, например:

  • Measure-Object – командлет позволяет рассчитывать на основе свойств объектов такие числовые агрегирующие параметры как: минимальное, максимальное, среднее значение, сумму и количество. Например, Вы хотите узнать максимальный или средний размер файла в определенном каталоге, или просто узнать количество файлов (запущенных процессов, служб и так далее);
  • Select-Object – с помощью данного командлета можно выбрать определенные объекты или свойства этих объектов, например Вы хотите выводить только название файла и его размер;
  • Sort-Object — сортирует объекты по значениям свойств;
  • Where-Object – командлет для того чтобы ставить условие для выборки объектов на основе значений их свойств;
  • Group-Object – группирует объекты, которые содержат одинаковое значение для заданных свойств;
  • ForEach-Object – перебор объектов с целью выполнения определенной операции над каждым из этих объектов.

ОПИСАНИЕ

Командлет Get-ADUser получает объект пользователя или выполняет поиск для получения нескольких объектов пользователей.

Параметр Identity определяет получаемого пользователя Active Directory. Пользователя можно идентифицировать по различающемуся имени (DN), значению GUID, идентификатору безопасности (SID), имени учетной записи SAM или по имени. Можно также присвоить этому параметру переменную объекта пользователя, например $<localUserObject>, или передать в параметр Identity объект пользователя по конвейеру.

Для поиска и получения нескольких пользователей используйте параметр Filter или LDAPFilter. В параметре Filter для написания строк запросов к Active Directory используется язык выражений PowerShell. Синтаксис языка выражений PowerShell поддерживает широкие возможности преобразования типов для значений, принимаемых параметром Filter. Дополнительные сведения о синтаксисе параметра Filter см. в разделе about_ActiveDirectory_Filter. Если существуют строки запроса LDAP, можно использовать параметр LDAPFilter.

Этот командлет получает набор свойств объекта пользователя, заданный по умолчанию. Чтобы получить дополнительные свойства, используйте параметр Properties. Дополнительные сведения об определении свойств объектов пользователей см. в описании параметра Properties.

Conclusion

Now you know how to create users in Active Directory using PowerShell scripts. Try performing some account creations, bulk account creations and CSV imports yourself on local or remote systems. Remember, the ADUC MMC snap-in is great for creating a few users with extended attributes, but PowerShell is much better for importing a large number of user accounts in bulk.

Jeff Melnick

Jeff is a former Director of Global Solutions Engineering at Netwrix. He is a long-time Netwrix blogger, speaker, and presenter. In the Netwrix blog, Jeff shares lifehacks, tips and tricks that can dramatically improve your system administration experience.

Фильтрация вывода

У нас есть базовые свойства, которые фильтруются с помощью Filter. Это:

  • DistinguishedName
  • Enabled
  • ObjectClass
  • ObjectGUID
  • SamAccountName
  • SID
  • UserPrincipalName

И ряд свойств, которые возвращаются с параметром Properties. Их можно фильтровать через дополнительные условия (конвейер, where-object, циклы). Имена этих свойств можно вернуть так:


 

Использование Filter

Если вы планируете получить информацию по определенному доменному компьютеру, то вам нужно добавить условие. В примере ниже я возвращаю информацию только по компьютеру у которого имя равно «AD1»:

Если нужно найти только компьютеры, которые содержат в имени определенные значения, то нужно использовать -like вместо -eq . В моем примере я ищу все компьютеры содержащие в имени «CL» (регистр не учитывается).

Знаки * говорят, что в этих местах может быть еще текст. Такое написание «C*L» соответствовало бы логике: строка начинается с буквы «C», затем может быть еще текст завершающийся на «L».
 

Использование Properties

Свойства возвращаемые через ключ Properties можно фильтровать двумя способами.

Первый — указывать их явно. Например вы хотите вернуть список с датами создания учетных записей компьютеров домена, которые хранит свойство «Created». Это можно сделать так:

 
Указать больше свойств можно через запятую. Например:

Так же можно фильтровать через команду where-object. На примере ниже я получаю компьютеры со всеми свойствами, но созданные до 31 декабря 2019 года:

Ограничить вывод определенными свойствами можно через Select:

Получение включенных и отключенных учетных записей

Используя свойства Enabled можно вернуть учетные записи активных и деактивированных записей. Так будут возвращены отключенные учетные записи:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: