Скрипт добавления пользователей windows

Создаем пользователей AD в powershell используя New-ADUser

Создание пользователей в Powershell можно выполнить через команду New-ADUser. Мы рассмотрим как создавать в определенной OU, с паролем, из CSV и с другими параметрами.

Если мы наберем просто команду, то нам предложат ввести логин и наш пользователь создастся отключенным в папке User:

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

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

Создание пользователя в Powershell с параметрами New-ADUser

У командлета есть много параметров (больше 60) и мы рассмотрим основные из них. Для того что бы увидеть все параметры выполните следующее:

Или если хотите найти конкретный параметр (в моем случае все где есть Name):

Обычно нам нужно создать учетку AD с паролем, именем и фамилией и она должна быть активна. Для создания пользователя AD с паролем используется другой командлет Powershell. Я объявлю пароль в переменной, но можно сразу и при создании пользователя:

Затем создадим пользователя:

  • Name — логин
  • GivenName — имя
  • SurName — фамилия
  • AccountPassword — пароль, который мы объявили в переменной
  • Enbaled — делает пользователя активным
  • UserPrincipleName — соответствует полю выделенному на рисунке ниже

Создание пользователя в Powershell в определенной OU используя New-ADUser Path

Для добавления пользователя в другой OU нужно использовать ключ Path. На примере домена domain.local и организационной единице Moscow путь будет выглядеть так:

Причем может появится ошибка:
new-aduser объект каталога не найден
Т.к. в пути вместо OU указывают контейнер CN.

Или если в нас вложенные OU:

Создание пользователей AD из CSV в Powershell New-ADUser

Я создал в Excel такой файл и сохранил как CSV:

Для того что бы импортировать файл есть командлет Import-Csv. Нужно обратить внимание какой разделитель (делимитер) в файле и у вас в системе. Увидеть это можно так:

Если есть отличия, то тогда в команде импорта нужно добавить ключ ‘-Delimiter’ и указать тот, который в файле. Отличия будут, например, если файл был создан в русской локализации, а импорт идет на сервере с английской.

Импорт и создание пользователей делается так:

Сложение в Path сделано для демонстрации такой возможности и не является обязательным.

У меня так же была ошибка:

  • new-aduser указанное имя не является корректным именем пользователя
  • New-ADUser : The object name has bad syntax
  • New-ADUser : Directory object not found

Причины возникновения не совсем ясны. Хоть ошибка и указывала на начало командлета New-AdUser, но проблема была в Path. Из рекомендаций были убрать в CSV файле пустые строки, проверить, что у нас нет путаницы с кавычками ( что мы не используем » ‘ в одном объекте), а так же вынести значение Path вне цикла в переменную. Мне помогло, как я понял, замена кавычек в ключе, экранирование скобками и удаление пробелов в этом ключе.

Само собой мы можем в Csv файле создать больше колонок. Например мы можем там создать и пароль, что бы у всех пользователей он был разный, но нужно будет обязательно сконвертировать его через ConvertTo-SecureString.

Читайте также:  Состояние oxc000000f windows 10

Если вы не уверены в том, что все данные корректны, то можете добавить ключ -WhatIf, который покажет результаты выполнения команды, но не выполнит ее физически.

Создание пользователя из командной строки

Давным-давно прошли те времена, когда при установке Windows приходилось использовать загрузочную дискету. Если бы не эксперименты с переустановкой Windows (помнится восторг от инсталляции Millenium вместо 98) и частое использование CMD и ее утилит, то желание узнать что-то больше, что-то, что лежит за гранью, кануло бы в небытие.

Как правило, в то время основным функционалом (помнится еще и книгу по информатике купил) было использование стандартных утилит, типа dir, copy или format Нынче времена другие, и пожалуй даже школьник средних классов сможет легко обогнать учителя по информатике, если у преподавателя нет интернета, а у школьника есть, плюс, присутствует огромное желание познать что-то новенькое. К великому сожалению, часто приходится видеть этих школьников по телевизору, в новостях с громким название «Школьники украли 5000 долларов с электронных кошельков» или что-то подобное.

Пожалуй, каждый пользователей персонального компьютера с операционной системой Windows хотя бы раз создавал аккаунт, или видел, как это делается. И, пожалуй, многие гордятся, что у них учетная запись с правами Администратора, ну а если они еще и пароль поставят… то, пожалуй, чувствуют себя королем. Если при использовании Панели управления все довольно просто – создал нового юнита, сделал выбора типа «администратор», установил пароль и все, можно спокойно ложиться спать. Однако, если попробовать сделать тоже самое, то есть, создать пользователя из командной строки , то пред нашим взором возникнут много неожиданных и интересных моментов . И так, для того, чтобы добавить или удалить пользователя из командной строки, применяется команда net use, которая используется совместно с такими параметрами:

  • /add – добавление нового аккаунта
  • /delete – удаление существующего аккаунта
  • /comment – позволяет задать описание, например: «для сына» или «только для жены»
  • /fullname – тут прописывается полное имя, которое является также отображаемым именем
  • /passwordchg : – атрибут yes предоставляет пользователям право изменять в будущем свой пароль (стоит по умолчанию), а no – конечно, запрещает производить столь опасные действия
  • /passwordreq: – при условии, если установлен атрибут yes, то требуется наличие пароля
  • /active: – значение yes – включение учетной записи (стоит по умолчанию), а no – ее отключение, но не удаление!. Если же во время создания отключить учетную_запись, например:

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

Если запустить команду net user без параметров, то можно увидеть, что кроме пользователя, создание которого производилось из командной строки, есть, и… УчетнаяЗапись Администратор и Гость. К сожалению, данная команда не показывает, какая активирована, а какая нет. Стоит помнить, что встроенные системные Учетные_Записи Администратор и Гость нельзя удалить посредством команды net user Администратор /delete. Их можно только отключить:


Стоит помнить, что данные учетные записи могут иметь и другие названия (Administrator, admin…). А теперь самое интересное, если вы счастливый обладатель XP, ну например SP3 (полагаю, что многое зависит еще и от сборки), то при установке операционной системы, Учетная_Запись «Администратор» остается включенной, более, она не отображается при входе в систему. В интернете есть видео под громким названием «Обходим пароль администратора», так вот, там при входе в систему (при появлении окна приветствия) достаточно было ввести комбинацию CTRL+Alt+DEL (дважды), в появившемся окне ввести Administrator и Enter, вы попадете в систему да еще и с правами администратора! Понятно, что если учетная запись не имеет пароля, и активна, то ничто не мешает попасть в середину. Для любознательных, можно открыть Панель управления/ Администрирование/ Управление компьютером и аналогично посмотреть, какие учетные записи есть и какие активны. Но, если вы счастливый обладатель Семерки, то тут трюк с CTRL+Alt+DEL уже не пройдет, поскольку Администратор отключен.

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

И так, следующая команда net localgroup позволяет просматривать имеющиеся в системе группы и добавить нового пользователя из CMD (командной строки) в ту или иную группу. Проделав аналогичные действия, мы увидим, что групп не две как предполагалось (Администраторы и Гости), а значительно больше.

Ладно, добавим NewUser в группу администраторы:

После выполнения данной команды наш новоиспеченный NewUser будет состоять в двух группах – Администраторы и пользователи (при желании можно его и в остальные группы добавить). Удаление пользователя из группы происходит с использованием параметра /delet. Например:

Тут стоит обратить внимание на Семерку, тут есть порой очень раздражающий механизм UAC – контроль учетных записей. При попытке что-то установить или изменить в системе, он предлагает вариант разрешить или нет. Иногда этот механизм не позволяет установить игру или программный пакет (стоит помнить, что некоторые функции CMD работают лишь в том случае, например, создание пользователя из командной строки, если ее запустить от имени администратора), в таком случае можно попробовать активировать встроенную системную запись Администратор и уже под ней произвести нужные действия. НО. После, ее надо или снова отключить, или же поставить пароль, от греха подальше.

Спасибо за внимание. Автор блога Владимир Баталий

Управление локальными пользователями и группами с помощью PowerShell

Относительно недавно Microsoft добавила в Windows стандартный PowerShell модуль для управления локальными пользователями и группами под названием Microsoft.PowerShell.LocalAccounts. Ранее этот командлет нужно было качать и импортировать в PowerShell отдельно. В Windows Server 2016 и Windows 10 модуль LocalAccounts теперь доступен по умолчанию, т.к. он входит в состав PowerShell 5.1. В более ранние версии Windows для использования модуля управления локальными аккаунтами нужно установить Windows Management Framework 5.1.

Модуль LocalAccounts

Всего в модуль входит 15 командлетов. Полный список командлетов в модуле LocalAccounts можно вывести так:

Get-Command -Module Microsoft.PowerShell.LocalAccounts

  • Add-LocalGroupMember – добавить пользователя в локальную группу
  • Disable-LocalUser – отключить локальную учетную запись
  • Enable-LocalUser – включить учетную запись (разблокировать)
  • Get-LocalGroup – получить информацию о локальной группе
  • Get-LocalGroupMember – получить список пользователей в локальной группе
  • Get-LocalUser – получить информацию о локальном пользователе
  • New-LocalGroup – создать новую локальную группы
  • New-LocalUser – создать пользователя
  • Remove-LocalGroup – удалить группу
  • Remove-LocalGroupMember – удалить члена из группы
  • Remove-LocalUser – удалить локального пользователя
  • Rename-LocalGroup – переименовать группу
  • Rename-LocalUser – переименовать пользователя
  • Set-LocalGroup – изменить группу
  • Set-LocalUser – изменить пользователя

Далее рассмотрим несколько типовых задач по управлению локальными пользователями и группами на компьютере с Windows 10 при помощи PowerShell командлетов из состава модуля LocalAccounts.

Управление локальными пользователями Windows с помощью PowerShell

Выведем список имеющихся на компьютере локальных пользователей Windows:

Как вы видите, на компьютере имеется 7 локальных учетных записей, 3 из которых отключены (Enabled=False).

Чтобы вывести все свойства конкретной локальной учетной записи (аналог комадлета для получения иформации о пользователях из AD — Get-ADUser), выполните:

Get-LocalUser -Name ‘root’ | Select-Object *

AccountExpires :
Description :
Enabled : True
FullName :
PasswordChangeableDate : 4/23/2018 11:23:48 PM
PasswordExpires :
UserMayChangePassword : True
PasswordRequired : False
PasswordLastSet : 4/22/2018 11:23:48 PM
LastLogon : 7/15/2018 9:04:32 PM
Name : root
SID : S-1-5-21-3650440056-3766451173-3310994491-1001
PrincipalSource : Local
ObjectClass : User

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

Get-LocalUser -Name ‘root’ | Select-Object PasswordLastSet

Создадим нового локального пользователя с помощью командлета New-LocalUser. Данный командлет позволяет создать следующие типы учетных записей:

  • Локальные учетных записи Windows
  • Учетные записи Microsoft
  • Учетные записи Azure AD

При создании учётной записи пользователя с помощью New-LocalUser нельзя указывать ее пароль в качестве аргумента Password в открытом виде. Предварительно пароль нужно сконвертировать в безопасную строку, запросив пароль интерактивно:

$UserPassword = Read-Host –AsSecureString

Или указав пароль непосредственно в консоли PoSh:

$UserPassword = ConvertTo-SecureString «Pa$$word!!» -AsPlainText -Force

New-LocalUser «SIvanov» -Password $UserPassword -FullName «Sergey Ivanov» -Description «Local Account dlya udalennogo vhoda»

Чтобы изменить пароль пользователя, воспользуйтесь командой Set-LocalUser (предполагаем, что вы уже преобразовали новый пароль в SecureString):

Set-LocalUser -Name sivanov -Password $UserPassword –Verbose

Чтобы установить флаг «Срок действия пароля пользователя не истекает» («Password never expired»), выполните:

Set-LocalUser -Name sivanov –PasswordNeverExpires $True

Как видите, вам не нужно преобразовывать значение UserAccountControl, как при управлении свойствами учётной записи в AD.

Как вы помните, вы можете авторизоваться в Windows 10 под учетными записями Microsoft. Если нужно создать нового пользователя, связанного с аккаунтом Microsoft, выполните следующую команду (обратите внимание, что пароль аккаунта указывать не нужно, т.к. он хранится в Microsoft).

New-LocalUser -Name «MicrosoftAccount\SomeAccount@outlook.com» -Description «Это учетка в Microsoft»

Для создания локальной учётной записи, которая связана с вашим аккаунтом в Azure AD (например, вы пользуетесь Office 365), выполните команду:

New-LocalUser -Name «AzureAD\Itpro@winitpro.ru» -Description «Это учетка в Azure AD»

Чтобы удалить этого локального пользователя, выполните:

Remove-LocalUser -Name sivanov -Verbose

Управление локальными группам Windows с помощью PowerShell

Теперь выведем список локальных групп на компьютере:

Создадим новую группу:

New-LocalGroup -Name ‘RemoteSupport’ -Description ‘Remote Support Group’

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

Add-LocalGroupMember -Group ‘RemoteSupport’ -Member (‘SIvanov’,’root’, ‘Администраторы’) –Verbose

Если ваш компьютер входит в домен, то вы можете добавить в локальную группы и доменные аккаунты или группы. Для этого их нужно указывать в формате DomainName\user2 или DomainName\’domain admins’.

Также вы можете добавить пользователя в группы с помощью следующего конвейера (добавим пользователя в локальные администраторы):

Get-Localuser -Name ‘sivanov’ | Add-LocalGroupMember -Group ‘Administrators’

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

Get-LocalGroupMember -Group ‘RemoteSupport’

Как вы видите, мы используем только локальные учетные записи (PrincipalSource – Local). Однако здесь могут быть доменные аккаунты (domain), учетные записи Microsoft (MicrosoftAccount) и аккаунты из Azure (AzureAD).

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

foreach ($LocalGroup in Get-LocalGroup)
<
if (Get-LocalGroupMember $LocalGroup -Member ‘sivanov’ –ErrorAction SilentlyContinue)
<
$LocalGroup.Name
>
>

Чтобы убрать пользователя из группы, выполните:

Remove-LocalGroupMember -Group ‘RemoteSupport’ –Member ‘sivanov’

Для управления локальными пользователями на удаленном компьютере нужно сначала подключится к нему через WinRM командлетами Invoke-Command или Enter-PSSession.

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

$s = new-pssession -computer pc01,pc02,pc03
invoke-command -scriptblock -session $s -hidecomputername | select * -exclude RunspaceID | out-gridview -title «LocalAdmins»

Читайте также:  Сколько гигов занимает windows 10
Оцените статью