Как создать пользователей в windows 10 powershell

В статье я покажу как создать или удалить учетную запись пользователя в PowerShell. Процесс подключения новой учетной записи к учетной записи Microsoft

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

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

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

Содержание

  1. Как создать учетную запись пользователя в PowerShell
  2. Подключение новой учетной записи к учетной записи Microsoft
  3. Как удалить учетную запись пользователя с помощью PowerShell

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

  1. С помощью поиск Windows nайдите Windows PowerShell, щелкните правой кнопкой мыши верхний результат и выберите «Запуск от имени администратора».
  2. Введите следующую команду для временного хранения пароля в защищенной строке в переменной $ Password и нажмите Enter:

    $ Password = ReadHost AsSecureString

  3. Введите пароль, который вы хотите использовать для новой учетной записи, и нажмите Enter.
  4. Введите следующую команду для создания новой учетной записи и нажмите «Ввод»:

    NewLocalUser «ИМЯ_НОВОГО_ПОЛЬЗОВАТЕЛЯ» Password $Password FullName «ПОЛНОЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ» Description «Описание аккаунта»

    создание учетной записи в PowerShell

    Создание учетной записи в PowerShell

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

  5. Введите следующую команду, чтобы добавить учетную запись в нужную группу пользователей и нажмите Enter:

    AddLocalGroupMember Group «Administrators» Member «ИМЯ_НОВОГО_ПОЛЬЗОВАТЕЛЯ»

    Добавление новой учетной записи в группу «Администратор»

    Добавление новой учетной записи в группу «Администратор»

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

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

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

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

Однако обходной путь этой проблемы заключается в создании локальной учетной записи, а затем подключении ее к учетной записи Microsoft с помощью настроек Windows.

  1. Войдите в систему, используя только что созданную учетную запись пользователя.
  2. Откройте настройки.
  3. Нажмите «Аккаунты».
  4. Выберите ваш аккаунта.
  5. Нажмите «Войти» с помощьюе учетной записью Microsoft.
  6. Следуйте инструкциям на экране, чтобы подключить свою учетную запись к учетной записи Microsoft.

После выполнения шагов новая учетная запись будет подключена к указанной вами учетной записи Microsoft.

Как удалить учетную запись пользователя с помощью PowerShell

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

  1. Найдите Windows PowerShell, щелкните правой кнопкой мыши верхний результат и выберите «Запуск от имени администратора».
  2. Введите следующую команду, чтобы удалить учетную запись пользователя и нажмите Enter:

    RemoveLocalUser Name «ИМЯ_ПОЛЬЗОВАТЕЛЯ»

    Удаление учетной записи локального пользователя в PowerShell

    Удаление учетной записи локального пользователя в PowerShell

После выполнения шагов учетная запись будет удалена с вашего устройства. Однако данные учетной записи пользователя будут оставаться на жестком диске. Если вы хотите удалить как учетную запись, так и данные, самый простой способ — удалить учетную запись, используя страницу «Учетные записи» в приложении «Настройки».

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (6 оценок, среднее: 4,33 из 5)

Загрузка…

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

Содержание:

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

Модуль LocalAccounts

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

Get-Command -Module Microsoft.PowerShell.LocalAccounts

Модуль 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:

Get-LocalUser

Как вы видите, на компьютере имеется 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

Get-LocalUser получаем информацию о локальном пользователе

Создадим нового локального пользователя с помощью командлета 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"

Для создания пользователя в домене AD нужно использовать командлет New-ADUser.

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

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

New-LocalUser создать локального пользователя

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

Set-LocalUser -Name sivanov –PasswordNeverExpires $True

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

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

New-LocalUser -Name "MicrosoftAccount[email protected]" -Description "Это учетка в Microsoft"

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

New-LocalUser -Name "AzureAD[email protected]" -Description "Это учетка в Azure AD"

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

Remove-LocalUser -Name sivanov -Verbose

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

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

Get-LocalGroup

Get-LocalGroup

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

New-LocalGroup -Name 'RemoteSupport' -Description 'Remote Support Group'

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

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

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

Add-LocalGroupMember добавить пользователя в доменную группу

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

Get-Localuser -Name 'sivanov' | Add-LocalGroupMember -Group 'Administrators'

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

Get-LocalGroupMember -Group 'RemoteSupport'

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

Get-LocalGroupMember -Group 'RemoteSupport'

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

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 {Get-LocalGroupMember -Group 'RemoteSupport'} -session $s -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"

When you need to create a local user in Windows 10 or 11 you can use the User Accounts control panel. But we can also use PowerShell to create a new local user. This way we can easily automate creating a local account on Windows devices.

To create a local user with PowerShell you will need to have administrator access to the computer and run PowerShell as admin (elevated). Otherwise, you won’t be able to create accounts.

In this article, I will explain how you can create a new localuser. At the end of the article, I have two PowerShell scripts that you can use to create a local user.

In this article

To create a new local user we are going to use the New-LocalUser cmdlet in PowerShell. We have the option to set a password for the account or create an account without a password.

There are also a couple of other useful parameters that we can use:

Parameter Description
-Name Login name of the account – max 20 characters
-Password Password – supplied with a secure string
-Description Description of the account
-AccountExpires DateTime object when the account expires
-AccountNeverExpires Account does not expire
-Disabled Creates the account as disabled
-FullName The display name of the account
-PasswordNeverExpires Password does not expire
-UserMayNotChangePassword User can’t change the password
New-LocalUser cmdlet parameters

So to quickly create a local user account with PowerShell we can do the following:

$password = Read-Host -AsSecureString
New-LocalUser -Name "LazyUser" -Password $password -FullName "Lazy User" -Description "Test user"

new localuser

PowerShell New localuser

This small PowerShell script will require you to first enter the password, after which the user is created with the given password.

Providing the Password

As you can see this won’t allow you to run the script autonomous, because you will need to enter a password. This is also the challenge with creating local users, most of the time you want to supply the password in a secure way.

If you run the script remotely or under your own supervision then you could write the password inside a PowerShell script and convert it to a secure string. But keep in mind, anyone who opens the script is able to read the password!

# Username and Password
$username = "LazyUser"
$password = ConvertTo-SecureString "LazyAdminPwd123!" -AsPlainText -Force  # Super strong plane text password here (yes this isn't secure at all)

# Creating the user
New-LocalUser -Name "$username" -Password $password -FullName "$username" -Description "Lazy Test user"

You could save this into a ps1 file and simply run it in an elevated PowerShell session.

Setting the Expired Date

By default, the new user account won’t expire, but with the New-LocalUser cmdlet, we can set an expiration date for the account. For the date we will need to use a PowerShell DateTime object:

$date = Get-Date -Year 2022 -Month 06 -Day 10

# Creating the user
New-LocalUser -Name "$username" -Password $password -AccountExpires $date -FullName "$username" -Description "Lazy Test user"

Making user member of a group with Add-LocalGroupMember

After you have created the user you will need to make it a member of a local group. Without it, the user won’t be able to log on. To make the user member of a group we are going to use the Add-LocalGroupMember cmdlet.

The Add-LocalGroupMember only requires the group name and the member that you want to add:

Add-LocalGroupMember -Group Users -Member LazyUser

The cmdlet doesn’t give any output on success, only an error when the group name or member isn’t found.

You can also add multiple users to a local group with PowerShell. Simply comma separate the members in the cmdlet:

Add-LocalGroupMember -Group Users -Member "LazyUser", "LazyUser2"

Complete Script for new localuser in PowerShell

I have created two scripts that will help you with creating a local user account with PowerShell. In both scripts, I have added the option to write a log file. This log file is stored on a network share, allowing you to easily check if the creation is successful on the computer.

The first script has a password set in the script, so you can simply run the script on a computer. Keep in mind that you will need to have administrator access to create a local user account!

<#
.SYNOPSIS
  Create local admin acc

.DESCRIPTION
  Creates a local administrator account on de computer. Requires RunAs permissions to run

.OUTPUTS
  none

.NOTES
  Version:        1.0
  Author:         R. Mens - LazyAdmin.nl
  Creation Date:  25 march 2022
  Purpose/Change: Initial script development
#>

# Configuration
$username = "adminTest"   # Administrator is built-in name
$password = ConvertTo-SecureString "LazyAdminPwd123!" -AsPlainText -Force  # Super strong plane text password here (yes this isn't secure at all)
$logFile = "\serverfolderlog.txt"

Function Write-Log {
  param(
      [Parameter(Mandatory = $true)][string] $message,
      [Parameter(Mandatory = $false)]
      [ValidateSet("INFO","WARN","ERROR")]
      [string] $level = "INFO"
  )
  # Create timestamp
  $timestamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")

  # Append content to log file
  Add-Content -Path $logFile -Value "$timestamp [$level] - $message"
}

Function Create-LocalAdmin {
    process {
      try {
        New-LocalUser "$username" -Password $password -FullName "$username" -Description "local admin" -ErrorAction stop
        Write-Log -message "$username local user crated"

        # Add new user to administrator group
        Add-LocalGroupMember -Group "Administrators" -Member "$username" -ErrorAction stop
        Write-Log -message "$username added to the local administrator group"
      }catch{
        Write-log -message "Creating local account failed" -level "ERROR"
      }
    }    
}

Write-Log -message "#########"
Write-Log -message "$env:COMPUTERNAME - Create local admin account"

Create-LocalAdmin

Write-Log -message "#########"

The script will make the user member of the Administrators group in this case. You can of course change this to any other group. Make sure that you set the username, password, and logfile path in this first part of the script.

You can also download the complete script here from my Github repository.

Local User account script

The second script creates a local user account that is a member of the user’s groups. The difference with the first script is that this script will ask for the password.

<#
.SYNOPSIS
  Create local user acc

.DESCRIPTION
  Creates a local user account on de computer. Requires RunAs permissions to run

.OUTPUTS
  none

.NOTES
  Version:        1.0
  Author:         R. Mens - LazyAdmin.nl
  Creation Date:  25 march 2022
  Purpose/Change: Initial script development
#>

# Configuration
$username = "LazyTestUser"   # UserName
$fullName = "Lazy Test User" # Full name
$logFile = "\serverfolderlog.txt"

Function Write-Log {
  param(
      [Parameter(Mandatory = $true)][string] $message,
      [Parameter(Mandatory = $false)]
      [ValidateSet("INFO","WARN","ERROR")]
      [string] $level = "INFO"
  )
  # Create timestamp
  $timestamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")

  # Append content to log file
  Add-Content -Path $logFile -Value "$timestamp [$level] - $message"
}

Function Create-LocalUser {
    process {
      try {
        New-LocalUser "$username" -Password $password -FullName "$fullname" -Description "local user" -ErrorAction stop
        Write-Log -message "$username local user created"

        # Add new user to administrator group
        Add-LocalGroupMember -Group "Users" -Member "$username" -ErrorAction stop
        Write-Log -message "$username added to the local users group"
      }catch{
        Write-log -message "Creating local account failed" -level "ERROR"
      }
    }    
}

# Enter the password
Write-Host "Enter the password for the local user account" -ForegroundColor Cyan
$password = Read-Host -AsSecureString

Write-Log -message "#########"
Write-Log -message "$env:COMPUTERNAME - Create local user account"

Create-LocalUser

Write-Log -message "#########"

Again, you can download the complete script here from my Github repository.

Wrapping Up

The New-LocalUser should also be capable of creating a local account that is connected to a Microsoft account. But the username is still limited to 20 characters and doesn’t accept the @ symbol. So for now we are limited to local accounts only.

I hope this article helped you with creating a local user account with PowerShell. If you have any questions, just drop a comment below.

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

Для этого можно воспользоваться интерфейсом ADSI (Active Directory Services Interface), который может применяться как для работы с Active Directory, так и с отдельно стоящими компьютерами.

Рассмотрим несколько наиболее актуальных ситуаций при работе с локальными пользователями

Создание пользователя

Первое, что необходимо сделать с пользователем — это создать его учетную запись. Для этого сначала получаем объект компьютера и помещаем его в переменную:

[adsi]$computer = ″WinNT://SRV1″

Затем с помощью метода Create создаем пользователя с именем LocalAdmin:

$user = $computer.Create(″User″, ″LocalAdmin″)

Устанавливаем флажок для того, чтобы пользователь сменил пароль при входе:

$user.Put(″PasswordExpired″, 1)

Задаем начальный пароль:

$user.SetPassword(″P@$$word″)

И добавляем описание в поле «Description»:

$user.Put(″Description″, ″Local administrator″)

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

$user.SetInfo()

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

$computer.Children | where {$_.Class -eq ″user″} | ft name, description -auto

создание нового пользователя

Ну или посмотреть в графической оснастке.

новый пользователь в GUI

А теперь представим, что требуется установить флаги «User cannot change password» иили «Password never expired». Эти настройки хранятся в свойстве пользователя UserFlags, которое представляет из себя битовую маску. Для вычисления необходимого значения используется операция -bor (побитовое ИЛИ), например так мы установим флаг «Password never expired»:

$flag = $user.UserFlags.Value -bor 0x10000
$user.Put(″userflags″,$flag)
$user.SetInfo()

Примечание. Значения, необходимые для установки различных флагов, можно посмотреть на странице http://msdn.microsoft.com/en-us/library/aa772300(VS.85).aspx

Надо иметь в виду, что при установке одного флага остальные сбрасываются. К примеру, если установить флаг «User cannot change password» (значение 0x40), то флаг «Password never expired» будет снят. Для того, чтобы поставить оба флага, необходимо суммировать их значения, например так:

$flag = $user.UserFlags.Value -bor 0x10040
$user.Put(″userflags″,$flag)
$user.SetInfo()

установка флагов пользователя

Также необходимо помнить, что флаги «User cannot change password» и «Password never expired» несовместимы с «User must change password at next logon», поэтому при установке любого из них он снимается. Это очень наглядно видно в графической оснастке.

результат установки флагов в GUI

И еще одна операция, которая обычно производится при создании пользователя — добавление его в группу. Для примера добавим нашего пользователя в группу локальных администраторов:

[adsi]$group = ″WinNT://SRV1/Administrators, group″
$group.Add($user.Path)

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

$members = @($group.psbase.Invoke(″Members″))
$members | foreach {$_.GetType().InvokeMember(″Name″,″GetProperty″, $null, $_, $null)}

добавление пользователя в группу

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

Довольно часто встречается ситуация, когда пользователь уже имеется и его надо отредактировать — сменить пароль, добавить в группу и т.п. Первым делом помещаем объект компьютера в переменную и смотрим список локальных пользователей:

[adsi]$computer = ″WinNT://SRV1″
$computer.Children | where {$_.Class -eq ″user″} | ft name, description -auto

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

Предположим, требуется сброситьсменить пароль для пользователя LocalAdmin. Помещаем его в переменную:

[adsi]$user = ″WinNT://SRV1/LocalAdmin,user″

Устанавливаем новый пароль:

$user.SetPassword(″newP@$$w0rd″)

Задаем смену пароля при следующем входе:

$user.Put(″PasswordExpired″,1)

и сохраняем изменения:

$user.SetInfo()

сброс пароля пользователя

А теперь передвинем его из группы локальных администраторов (Administrators) в группу пользователей удаленного рабочего стола (Remote Desctop Users). Для этого помещаем обе группы в переменные:

[adsi]$admins = ″WinNT://SRV1/Administrators,group″
[adsi]$rdpusers = ″WinNT://SRV1/Remote Desktop Users,group″

Затем, используя метод Remove, удаляем пользователя из одной группы:

$admins.Remove($user.Path)

и добавляем в другую с помощью метода Add:

$rdpusers.Add($user.Path)

перемещение пользователя в другую группу

Отключениеудаление пользователя

Ну и конечно может потребоваться отключить или удалить учетную запись пользователя. За отключение отвечает флаг «Account is disabled», который также хранится в UserFlags. Сначала помещаем в переменную значение, соответствующее отключенной записи:

$disabled = 0x0002

Затем с помощью операции -band (побитовое И) проверяем, включена ли учетная запись. Результат выводим в логическом (boolean) виде:

($user.UserFlags.Value -band $disabled) -as [bool]

Если команда вернула False, значит учетная запись активна. Задаем новое значение флага:

$flag = $user.UserFlags.Value -bor $disabled

И изменяем текущее значение:

$user.Put(″userflags″, $flag)
$user.SetInfo()

Обновляем кэш и еще раз проверяем, включена ли учетная запись:

$user.RefreshCache()
($user.UserFlags.Value -band $disabled) -as [bool]

Теперь команда возвращает True, что означает успешное выключение. Ну а для обратного включения требуются ровно те-же действия, только вместо операции -bor (включающее ИЛИ) используется операция -bxor (исключающее ИЛИ):

$disabled = 0x0002
$flag = $user.UserFlags.Value -bxor $disabled
$user.Put(″userflags″, $flag)
$user.SetInfo()

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

Ну и для окончательного удаления пользователя воспользуемся методом Delete:

[adsi]$computer = ″WinNT://SRV1″
$computer.Delete(″user″,$user.Name.Value)

И проверим результат командой:
$computer.Children | where {$_.Class -eq ″user″} | ft name, description -auto

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

На этом у меня все о PowerShell и локальных пользователях. Если это вам покажется недостаточным, то более подробно свойства и методы локальных пользователей описаны на MSDN.

On Windows 10, you can create a local user account or Microsoft account that allows you to take advantage of additional benefits, such as settings syncing across devices and seamless integration to various Microsoft cloud services.

If you use Windows 10, you’re likely already utilizing an account connected to a Microsoft account. However, if you have to set up another account (in addition to using the Settings app and Command Prompt), you can create a new local user account from PowerShell.

This guide will teach you the steps to create and delete a new local user account using PowerShell on Windows 10.

  • Create new local user account from PowerShell
  • Delete new local user account from PowerShell

Create new local user account from PowerShell

To create a standard or administrator local account with PowerShell, use these steps:

  1. Open Start on Windows 10.

  2. Search for PowerShell, right-click the top result, and select the Run as administrator option.

  3. Type the following command to temporarily store the password in a secure string inside the “$Password” variable and press Enter:

    $Password = Read-Host -AsSecureString
  4. Type the password for the new Windows 10 account and press Enter.

  5. Type the following command to create the new account with PowerShell and press Enter:

    New-LocalUser "NEW_ACCOUNT_NAME" -Password $Password -FullName "USER_FULL_NAME" -Description "DESCRIPTION"

    PowerShell create local account

    In the command, change NEW_ACCOUNT_NAME for the account name and USER_FULL_NAME for the user’s full name. Also, replace DESCRIPTION with the description you want to use for the account.

  6. Type the following command to add the Windows 10 account to the correct user group and press Enter:

    Add-LocalGroupMember -Group "Administrators" -Member "NEW_ACCOUNT_NAME"

    PowerShell change account type

    In the command, make sure to change NEW_ACCOUNT_NAME for the account name. In the above command, we add the new account to the Administrators group, which gives the user full access to the computer. However, if you want the user to have limited access, you can add the account to the Users group, making it a “Standard User.”

Once you complete the steps, the new account will be set up on the device with full access using administrative privileges. Of course, this is unless you added the account to the “Users” group, in which case the account will be a limited standard account.

Connect account to Microsoft

Using PowerShell should also be possible to create a user account connected to a Microsoft account with this command: New-LocalUser -Name "MicrosoftAccount[email protected]" -Description "Microsoft account description". However, a bug still returns “New-LocalUser: Cannot validate argument on parameter ‘Name.’ The character length of the 36 arguments is too long. Shorten the character length of the argument so it is fewer than or equal to “20” characters, and then try the command again” message. As a result, the easiest way to get around this problem is to create a local account and then use the Settings app to link it with a Microsoft account.

To link a local account with a Microsoft account, use these steps:

  1. Open Settings.

  2. Click on Accounts.

  3. Click on Your Info.

  4. Click the “Sign in with your Microsoft account instead” option.

  5. Continue with the on-screen directions to connect your account to a Microsoft account.

After you complete the steps, the new account will be connected to the Microsoft account you specified.

Delete new local user account from PowerShell

To delete an account with PowerShell on Windows 10, use these steps:

  1. Open Start.

  2. Search for Windows PowerShell, right-click the top result, and select the Run as administrator option.

  3. Type the following command to delete the user account and press Enter:

    Remove-LocalUser -Name "USER_ACCOUNT_NAME"

    PowerShell delete account

    In the command, change USER_ACCOUNT_NAME with the account name you want to remove.

After you complete the steps, the account will be deleted from the computer. However, the user account data will remain. If you want to delete both account and data, the easiest way to delete it is using the “Accounts” page from the Settings app.

We may earn commission for purchases using our links to help keep offering the free content. Privacy policy info.

All content on this site is provided with no warranties, express or implied. Use any information at your own risk. Always backup of your device and files before making any changes. Privacy policy info.

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

Get-Command -Module Microsoft.PowerShell.LocalAccounts

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

Если нам нужно увидеть параметры, которые команды еще принимают, можно выполнить эту команду (на примере Get-LocalUser):

Get-Command Get-LocalUser -Syntax

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

Получение списка локальных пользователей в Powershell Get-ADUser

Так мы получим список учетных записей:

Get-LocalUser

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

Get-LocalGroupMember -Group Administrators

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

Если требуется получить какие-то дополнительные параметры (свойства) объекта. Для того что бы узнать все параметры:

Get-LocalUser | Get-Member

А что бы вывести их все сразу:

Get-LocalUser | select *

get-localuser параметры

Так, например, я получу все объекты, которые активны:

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 — пароль будет действовать месяц.

Powershell смена пароля

Затем добавим нового пользователя в группу администраторов:

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"

Теги:

#powershell

I need to create a new local user account, and then add them to the local Administrators group. Can this be done in PowerShell?

EDIT:

# Create new local Admin user for script purposes
$Computer = [ADSI]"WinNT://$Env:COMPUTERNAME,Computer"

$LocalAdmin = $Computer.Create("User", "LocalAdmin")
$LocalAdmin.SetPassword("Password01")
$LocalAdmin.SetInfo()
$LocalAdmin.FullName = "Local Admin by Powershell"
$LocalAdmin.SetInfo()
$LocalAdmin.UserFlags = 64 + 65536 # ADS_UF_PASSWD_CANT_CHANGE + ADS_UF_DONT_EXPIRE_PASSWD
$LocalAdmin.SetInfo()

I have this, but was wondering if there is anything more PowerShell-esque.

asked Mar 1, 2013 at 21:20

PnP's user avatar

4

Another alternative is the old school NET USER commands:

NET USER username "password" /ADD

OK — you can’t set all the options but it’s a lot less convoluted for simple user creation & easy to script up in Powershell.

NET LOCALGROUP "group" "user" /add to set group membership.

Cristian Ciupitu's user avatar

answered May 20, 2013 at 13:02

SinisterPenguin's user avatar

3

As of PowerShell 5.1 there cmdlet New-LocalUser which could create local user account.

Example of usage:

Create a user account

New-LocalUser -Name "User02" -Description "Description of this account." -NoPassword

or Create a user account that has a password

$Password = Read-Host -AsSecureString
New-LocalUser "User03" -Password $Password -FullName "Third User" -Description "Description of this account."

or Create a user account that is connected to a Microsoft account

New-LocalUser -Name "MicrosoftAccountusr name@Outlook.com" -Description "Description of this account." 

answered Sep 12, 2016 at 15:44

codevision's user avatar

codevisioncodevision

4,88736 silver badges48 bronze badges

4

Try using Carbon’s Install-User and Add-GroupMember functions:

Install-User -Username "User" -Description "LocalAdmin" -FullName "Local Admin by Powershell" -Password "Password01"
Add-GroupMember -Name 'Administrators' -Member 'User'

Disclaimer: I am the creator/maintainer of the Carbon project.

answered Jul 10, 2013 at 3:58

Aaron Jensen's user avatar

Aaron JensenAaron Jensen

25.2k15 gold badges79 silver badges88 bronze badges

3

As of 2014, here is a statement from a Microsoft representative (the Scripting Guy):

As much as we might hate to admit it, there are still no Windows
PowerShell cmdlets from Microsoft that permit creating local user
accounts or local user groups. We finally have a Desired State
Configuration (DSC ) provider that can do this—but to date, no
cmdlets.

Slogmeister Extraordinaire's user avatar

answered Jun 12, 2015 at 20:49

rasx's user avatar

rasxrasx

5,2162 gold badges45 silver badges59 bronze badges

Import-Csv C:test.csv |
Foreach-Object {
  NET USER    $ _.username   $ _.password /ADD
  NET LOCALGROUP "group" $_.username  /ADD
}

edit csv as username,password
and change «group» for your groupname

:) worked on 2012 R2

Piotr Adam Milewski's user avatar

answered Jan 7, 2018 at 0:06

Anderson Abu Soares's user avatar

$sec_pass = ConvertTo-SecureString -String "SomePasword" -AsPlainText -Force
New-LocalUser -Name username -FullName username -PasswordNeverExpires -Password $sec_pass
Add-LocalGroupMember -Group Administrators -Member username

answered May 12, 2022 at 10:35

Papa Smurf's user avatar

I need to create a new local user account, and then add them to the local Administrators group. Can this be done in PowerShell?

EDIT:

# Create new local Admin user for script purposes
$Computer = [ADSI]"WinNT://$Env:COMPUTERNAME,Computer"

$LocalAdmin = $Computer.Create("User", "LocalAdmin")
$LocalAdmin.SetPassword("Password01")
$LocalAdmin.SetInfo()
$LocalAdmin.FullName = "Local Admin by Powershell"
$LocalAdmin.SetInfo()
$LocalAdmin.UserFlags = 64 + 65536 # ADS_UF_PASSWD_CANT_CHANGE + ADS_UF_DONT_EXPIRE_PASSWD
$LocalAdmin.SetInfo()

I have this, but was wondering if there is anything more PowerShell-esque.

asked Mar 1, 2013 at 21:20

PnP's user avatar

4

Another alternative is the old school NET USER commands:

NET USER username "password" /ADD

OK — you can’t set all the options but it’s a lot less convoluted for simple user creation & easy to script up in Powershell.

NET LOCALGROUP "group" "user" /add to set group membership.

Cristian Ciupitu's user avatar

answered May 20, 2013 at 13:02

SinisterPenguin's user avatar

3

As of PowerShell 5.1 there cmdlet New-LocalUser which could create local user account.

Example of usage:

Create a user account

New-LocalUser -Name "User02" -Description "Description of this account." -NoPassword

or Create a user account that has a password

$Password = Read-Host -AsSecureString
New-LocalUser "User03" -Password $Password -FullName "Third User" -Description "Description of this account."

or Create a user account that is connected to a Microsoft account

New-LocalUser -Name "MicrosoftAccountusr name@Outlook.com" -Description "Description of this account." 

answered Sep 12, 2016 at 15:44

codevision's user avatar

codevisioncodevision

4,88736 silver badges48 bronze badges

4

Try using Carbon’s Install-User and Add-GroupMember functions:

Install-User -Username "User" -Description "LocalAdmin" -FullName "Local Admin by Powershell" -Password "Password01"
Add-GroupMember -Name 'Administrators' -Member 'User'

Disclaimer: I am the creator/maintainer of the Carbon project.

answered Jul 10, 2013 at 3:58

Aaron Jensen's user avatar

Aaron JensenAaron Jensen

25.2k15 gold badges79 silver badges88 bronze badges

3

As of 2014, here is a statement from a Microsoft representative (the Scripting Guy):

As much as we might hate to admit it, there are still no Windows
PowerShell cmdlets from Microsoft that permit creating local user
accounts or local user groups. We finally have a Desired State
Configuration (DSC ) provider that can do this—but to date, no
cmdlets.

Slogmeister Extraordinaire's user avatar

answered Jun 12, 2015 at 20:49

rasx's user avatar

rasxrasx

5,2162 gold badges45 silver badges59 bronze badges

Import-Csv C:test.csv |
Foreach-Object {
  NET USER    $ _.username   $ _.password /ADD
  NET LOCALGROUP "group" $_.username  /ADD
}

edit csv as username,password
and change «group» for your groupname

:) worked on 2012 R2

Piotr Adam Milewski's user avatar

answered Jan 7, 2018 at 0:06

Anderson Abu Soares's user avatar

$sec_pass = ConvertTo-SecureString -String "SomePasword" -AsPlainText -Force
New-LocalUser -Name username -FullName username -PasswordNeverExpires -Password $sec_pass
Add-LocalGroupMember -Group Administrators -Member username

answered May 12, 2022 at 10:35

Papa Smurf's user avatar

Если вам не удается открыть панель настроек Windows и вы хотите создать новую учетную запись пользователя на своем компьютере с Windows 10, эта статья вам поможет. Вы можете создать локальную учетную запись пользователя с помощью PowerShell.

В Windows 10 в основном есть два типа учетных записей пользователей:

  1. Учетная запись локального пользователя
  2. Учетная запись пользователя подключена к учетной записи Microsoft

Невозможно создать учетную запись пользователя, подключенную к учетной записи Microsoft, с помощью Windows PowerShell, но очень легко создать локальную учетную запись пользователя с помощью PowerShell.

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

Создайте новую учетную запись локального пользователя без пароля с помощью PowerShell

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

New-LocalUser -Name "user-name" -Description "Small description" -NoPassword

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

Как создать новую локальную учетную запись пользователя с помощью Windows PowerShell

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

Создайте новую учетную запись локального пользователя с паролем с помощью PowerShell

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

После открытия PowerShell вам необходимо создать пароль для своей учетной записи. Для этого введите эту команду —

$Password = Read-Host -AsSecureString

Теперь вам нужно ввести пароль, который вы хотите. Убедитесь, что вы установили надежный пароль.

После ввода пароля и нажатия кнопки Enter вам необходимо ввести эту команду —

New-LocalUser "TWCTEST2" -Password $Password -FullName "TWC Test Account" -Description "Small description”

Заменять TWCTEST2 с желаемым именем пользователя, TWC Test Account на полное имя вашей учетной записи, и Небольшое описание с краткой информацией о вашей учетной записи.

После ввода этой команды вы можете найти такой экран:

Это означает, что ваша учетная запись успешно создана и готова к использованию. Однако, если вы хотите назначить свою учетную запись группе, вы можете использовать следующую команду:

Add-LocalGroupMember -Group "Administrators" -Member "TWCTEST2"

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

Как удалить учетную запись пользователя с помощью PowerShell

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

Remove-LocalUser -Name "user-name"

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

Вот и все! Надеюсь, это вам поможет.

  • Теги: PowerShell, учетная запись пользователя

Like this post? Please share to your friends:
  • Как создать полный образ системы windows 10
  • Как создать полную резервную копию windows 10 на флешку
  • Как создать подразделение организации в windows server
  • Как создать подраздел в реестре windows 10
  • Как создать подпись в почте windows live