Powershell. Как создать локальных пользователей и добавить их в группы.
Довольно часто возникает необходимость создавать локальных пользователей на компьютерах и добавлять их в различные группы(в основном, конечно, в группу «Пользователи удаленного рабочего стола»).
Хорошо, если это один-два пользователя, тогда несложно это сделать и руками. Но если пользователей пара десятков, процесс превращается в нудный и малоэффективный.
В этом случае нам на помощь приходит Powershell, который значительно упрощает жизнь сисадмину.
Для добавления локальных пользователей пользователей на компьютер и добавление их в группу нам понадобится список пользователей в формате .csv(с указанием необходимых данных о пользователях) и небольшой скрипт Powershell. В данном случае скрипт создает пользователя, задает имя, полное имя и описание пользователя, а также добавляет его в нужные группы. При необходимости можно изменить(дополнить) файл и скрипт под свои задачи.
Файл csv можно создать в Excel с последующим сохранением в формате csv
либо создать текстовый файл в обычном блокноте и сохранить его с расширением .csv
Вот так выглядит файл в блокноте:
Если вы добавляете пользователей на виртуальной машине, нужно скопировать файл с учетными данными пользователей и сам скрипт в виртуальную машину. Как скопировать файл в виртуальную машину VMware можно узнать здесь.
Ну а вот и сам скрипт Powershell, с помощью которого вы сможете создать пользователей и добавить их в группы быстро и просто(не забудьте запустить Powershell с правами Администратора).
Добавление пользователей в локальную группу администраторов через GPO
С помощью доменных групповых политик вы можете добавить необходимых пользователей AD (или группы) в локальную группу администраторов на серверах или рабочих станциях. Так можно предоставить права локального администратора на компьютерах домена сотрудникам техподдержки, службе HelpDesk, определенным пользователям и другим привилегированным аккаунтам. В этой статье мы покажем насколько способов управления членами локальной группы администраторов на компьютерах домена через GPO.
Особенности использования группы локальных администраторов в домене Active Directory
При добавлении компьютера в домен AD в группу Administrators автоматически добавляется группы Domain Admins, а группа Domain User добавляется в локальную Users.
Самый простой способ предоставить права локального администратора на определенном компьютере – добавить пользователя или группу в локальную группу безопасности Administrators через локальную оснастку “Локальные пользователи и группы” (Local users and groups — lusrmgr.msc). Однако такой способ очень неудобен, если компьютеров много и со временем в группах локальных администраторов обязательно окажутся лишние личности. Т.е. при таком способе предоставлении прав неудобно контролировать состав группы локальных администраторов.
В классических рекомендациях по безопасности Microsoft рекомендуется использовать следующие группы для разделения полномочиями администраторов в домене:
Допустим, нам нужно предоставить группе сотрудников техподдержки и HelpDesk права локального админа на компьютерах в конкретном OU. Создайте в домене новую группу безопасности с помощью PowerShell и добавьте в нее учетные записи сотрудников техподдержки:
Откройте консоль редактирования доменных групповых политик (GPMC.msc), cоздайте новую политику AddLocaAdmins и назначьте ее на OU с компьютерами (в моем примере это ‘OU=Computers,OU=Moscow,dc=winitpro,DC=ru’).
В групповых политиках AD есть два метода управления локальными группами на компьютерах домена. Рассмотрим их по-очереди:
Добавление пользователей в локальную группу администраторов через Group Policy Preferences
Предпочтения групповых политик (Group Policy Preferences, GPP) предоставляют наиболее гибкий и удобный способ предоставления прав локальных администраторов на компьютерах домена через GPO.
Не рекомендуется добавлять в этой политики индивидуальные аккаунты пользователей, лучше использовать доменные группы безопасности. В этом случае, чтобы предоставить права администраторов очередному сотруднику тех. поддержки, вам достаточно добавить его в доменную группу (не придется редактировать GPO),
Управление локальными администраторами через Restricted Groups
Политика групп с ограниченным доступом (Restricted Groups) также позволяет добавить доменные группы/пользователей в локальные группы безопасности на компьютерах. Это более старый способ предоставления прав локального администратора и сейчас используется реже (способ менее гибкий, чем способ с Group Policy Preferences).
Предоставление прав администратора на конкретном компьютере
Иногда нужно предоставить определенному пользователю права администратора на конкретном компьютере. Например, у вас есть несколько разработчиков, которым периодически необходимы повышенные привилегии для тестирования драйверов, отладки, установки на своих компьютерах. Нецелесообразно добавлять их в группу администраторов рабочих станций на всех компьютерах.
Чтобы предоставить права лок. админа на одном конкретном компьютере можно использовать такую схему.
Прямо в созданной ранее политике AddLocalAdmins в секции предпочтений (Computer Configuration –> Preferences –> Control Panel Settings –> Local Users and Groups) создайте новую запись для группы Administrators со следующими настройками:
Также обратите внимание на порядок применения групп на компьютере – Order. Настройки локальных групп применяются сверху вниз (начиная с политики с Order 1).
Первая политика GPP (с настройками “Delete all member users” и “Delete all member groups” как описано выше), удаляет всех пользователей/группы из группы локальных администраторов и добавляет указанную доменную группу. Затем применится дополнительная политика для конкретного компьютера и добавит в администраторы указанного пользователя. Если нужно изменить порядок применения членства в группе Администраторы, воспользуйтесь кнопками вверху консоли редактора GPO.
Как добавить пользователя в группу локальных администраторов
Рассмотрим два простых способа предоставления учетной записи прав локального администратора.
После того, как вы создали учетную запись на сервере Windows Server, часто возникает вопрос, как добавить пользователя в группу локальных администраторов?
В этом статье мы покажем, как добавить пользователя в локальные админы на примере операционной системы Windows Server 2012 R2. Вся информация применима к любым другим поддерживаемым операционным системам Windows. Естественно, для выполнения этих операций учетная запись, выполняющая данные изменения должна обладать административными полномочиями.
Добавление в группу администраторов при помощи консоли Сomputer Management
Добавление пользователя в администраторы с помощью команды net user
Войдите в операционную систему Windows под учетной записью, обладающей правами администратора и запустите командную строку с повышенными привилегиями.
Для того, чтобы вывести список всех локальных учетных записей пользователей в системе введите команду
Как вы видите, в системе имеется 6 учетных записей.
Чтобы добавить учетную запись пользователя root в группу локальных администраторов, выполните следующую команду и нажмите Enter:
net localgroup administrators root /add
В русской версии Windows локальная группа администраторов называется по-другому, поэтому если предыдущая команда вернула ошибку «Указанная локальная группа не существует», воспользуйтесь другой командной:
net localgroup «Администраторы» root /add
Если нужно добавить в администраторы системы учетную запись пользователя домена Active Directory, формат команды будет такой:
net localgroup administrators yourdomain\root /add
Проверить состав группы локальных администраторов можно с помощью команды:
Net localgroup administrators
Как вы видите, учетная запись пользователя root теперь является администратором сервера.
Управляем локальными пользователями с помощью PowerShell
Для работы с доменными пользователями в PowerShell уже давно существует множество командлетов, но если вам потребуется управлять локальными пользователями, то здесь основным инструментом по прежнему остается графическая оснастка (lusrmgr.msc) и старая добрая утилита командной строки net. Тем не менее, в PowerShell все же есть возможность для управления локальными пользователями на компьютерах, не входящих в домен.
Для этого можно воспользоваться интерфейсом ADSI (Active Directory Services Interface), который может применяться как для работы с Active Directory, так и с отдельно стоящими компьютерами.
Рассмотрим несколько наиболее актуальных ситуаций при работе с локальными пользователями
Создание пользователя
Первое, что необходимо сделать с пользователем — это создать его учетную запись. Для этого сначала получаем объект компьютера и помещаем его в переменную:
Затем с помощью метода Create создаем пользователя с именем LocalAdmin:
Устанавливаем флажок для того, чтобы пользователь сменил пароль при входе:
Задаем начальный пароль:
И добавляем описание в поле «Description»:
$user.Put(″Description″, ″Local administrator″)
Чтобы все сделанные изменения были применены, необходимо выполнить команду:
Для проверки можно вывести список пользователей командой:
Ну или посмотреть в графической оснастке.
А теперь представим, что требуется установить флаги «User cannot change password» и\или «Password never expired». Эти настройки хранятся в свойстве пользователя UserFlags, которое представляет из себя битовую маску. Для вычисления необходимого значения используется операция -bor (побитовое ИЛИ), например так мы установим флаг «Password never expired»:
Примечание. Значения, необходимые для установки различных флагов, можно посмотреть на странице http://msdn.microsoft.com/en-us/library/aa772300(VS.85).aspx
Надо иметь в виду, что при установке одного флага остальные сбрасываются. К примеру, если установить флаг «User cannot change password» (значение 0x40), то флаг «Password never expired» будет снят. Для того, чтобы поставить оба флага, необходимо суммировать их значения, например так:
Также необходимо помнить, что флаги «User cannot change password» и «Password never expired» несовместимы с «User must change password at next logon», поэтому при установке любого из них он снимается. Это очень наглядно видно в графической оснастке.
И еще одна операция, которая обычно производится при создании пользователя — добавление его в группу. Для примера добавим нашего пользователя в группу локальных администраторов:
Довольно часто встречается ситуация, когда пользователь уже имеется и его надо отредактировать — сменить пароль, добавить в группу и т.п. Первым делом помещаем объект компьютера в переменную и смотрим список локальных пользователей:
Предположим, требуется сбросить\сменить пароль для пользователя LocalAdmin. Помещаем его в переменную:
Устанавливаем новый пароль:
Задаем смену пароля при следующем входе:
и сохраняем изменения:
А теперь передвинем его из группы локальных администраторов (Administrators) в группу пользователей удаленного рабочего стола (Remote Desctop Users). Для этого помещаем обе группы в переменные:
Затем, используя метод Remove, удаляем пользователя из одной группы:
и добавляем в другую с помощью метода Add:
Отключение\удаление пользователя
Ну и конечно может потребоваться отключить или удалить учетную запись пользователя. За отключение отвечает флаг «Account is disabled», который также хранится в UserFlags. Сначала помещаем в переменную значение, соответствующее отключенной записи:
Затем с помощью операции -band (побитовое И) проверяем, включена ли учетная запись. Результат выводим в логическом (boolean) виде:
Если команда вернула False, значит учетная запись активна. Задаем новое значение флага:
И изменяем текущее значение:
Обновляем кэш и еще раз проверяем, включена ли учетная запись:
Теперь команда возвращает True, что означает успешное выключение. Ну а для обратного включения требуются ровно те-же действия, только вместо операции -bor (включающее ИЛИ) используется операция -bxor (исключающее ИЛИ):
Ну и для окончательного удаления пользователя воспользуемся методом Delete:
На этом у меня все о PowerShell и локальных пользователях. Если это вам покажется недостаточным, то более подробно свойства и методы локальных пользователей описаны на MSDN.