Для получения списка локальных пользователей в Powershell, созданию новых, а так же для работ с группами есть множество команд. Что бы увидеть все их выполните команду:
Get-Command -Module Microsoft.PowerShell.LocalAccounts
Если нам нужно увидеть параметры, которые команды еще принимают, можно выполнить эту команду (на примере Get-LocalUser):
Get-Command Get-LocalUser -Syntax
Получение списка локальных пользователей в Powershell Get-ADUser
Так мы получим список учетных записей:
Get-LocalUser
Мы можем получить такую информацию не обо всех учетных записях, а из конкретных групп. Так я получу локальных администраторов т.к. они находятся в соответствующей группе:
Get-LocalGroupMember -Group Administrators
Если требуется получить какие-то дополнительные параметры (свойства) объекта. Для того что бы узнать все параметры:
Get-LocalUser | Get-Member
А что бы вывести их все сразу:
Get-LocalUser | select *
Так, например, я получу все объекты, которые активны:
Get-LocalUser | where -Property Enabled -eq $true
А так даты последнего входа только у тех объектов, которые включены:
Get-LocalUser | where -Property Enabled -eq $true | Select -Property LastLogon
Создание локального пользователя Powershell и добавление в группу
Так мы создадим нового пользователя с именем "IT_Support" с паролем "Parol12!":
$password = ConvertTo-SecureString -String "Parol12!" -AsPlainText -Force
New-LocalUser -Name "IT_Support" -Password $password -PasswordNeverExpires
Если мы не укажем ключ PasswordNeverExpires - пароль будет действовать месяц.
Затем добавим нового пользователя в группу администраторов:
Add-LocalGroupMember -Group Administrators -Member "IT_Support"
Ключ Member способен принимать несколько значений, т.е. мы можем добавить множество аккаунтов. Для этого нужно написать их через запятую.
При создании нового объекта есть еще несколько ключей:
- AccountExpires - время активности учетной записи. Если не указан этот ключ, то такого срока нет. Если мы хотим указать этот срок нам нужна переменная datetime. Примеры с датой и временем в Powershell мы уже разбирали.
- AccountNeverExpires - если не указан ключ выше, то у нас работает этот ключ.
- Description - описание учетной записи по желанию.
- Disabled - по умолчанию аккаунт включен, мы можем указать обратное.
- FullName - имя и фамилия например.
- NoPassword - учетная запись создается без пароля.
- UserMayNotChangePassword - запрещает смену пароля.
Удаление локальных пользователей
Для примера так мы можем удалить объект, который создавали раннее из группы:
Remove-LocalGroupMember -Group Administrators -Member IT_Support
Если мы хотим отключить объект:
Disable-LocalUser -Name IT_Support
И удалить:
Remove-LocalUser -Name IT_Support
Смена пароля локального администратора в Powershell
Изменение существующих объектов делается с помощью команд с глаголом Set. На примере администратора сменим пароль:
$password = ConvertTo-SecureString -String "Parol12!" -AsPlainText -Force
Set-LocalUser -Name "Администратор" -Password $password
Мы можем изменить все те же параметры, что и в случае создания учетной записи (перечислены выше). Например так мы можем отключить срок действия пароля:
Set-LocalUser -Name "IT_Support" -PasswordNeverExpires
Отсутствуют только те ключи, которые выведены в отдельный командлет. Например так мы можем включить объект:
Enable-LocalUser -Name "IT_Support2"
...
Подписывайтесь на наш Telegram канал
Теги: #powershell