Смена пароля windows 10 через powershell

On Windows 10, you can change your local account password using Control Panel, Command Prompt, and PowerShell, and in this guide, you will learn how. If you must change or reset your account password because it’s been compromised, or it’s too easy to guess, and you want to set a more complex password, you can use a few simple PowerShell commands.

In this guide, you’ll learn the steps to change the current password of your Windows 10 local account using PowerShell.

To change a local account password from 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 list all the available accounts and press Enter:

    Get-LocalUser

    PowerShell get users command

  4. Type the following command to create and store the new password inside of a variable and press Enter:

    $Password = Read-Host "Enter the new password" -AsSecureString
  5. Type the new password for the account and press Enter.

  6. Type the following command and press Enter on each line to apply the new password to the local account:

    $UserAccount = Get-LocalUser -Name "admin"
    $UserAccount | Set-LocalUser -Password $Password

    In the second command, make sure to replace “admin” with the name of the account to reset its password.

    PowerShell change account password

Once you complete the steps, sign out and sign back into your Windows 10 account using the new password.

The instructions outlined above apply to a local account. If you have a Microsoft account, you must follow these steps to change or reset the password. If you want to reset a password from Command Prompt, use this other guide instead. Also, even though this guide focuses on Windows 10, the above steps should work on Windows 8.1 and 7.

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.

Automation is the key to streamlining Active Directory management tasks. In this article, I’ll show you how to create, change and test user passwords with PowerShell scripts.

Installing the AD PowerShell module

Before you can use PowerShell to manage Active Directory, you need to install the Active Directory PowerShell module. If you are using Windows 10 to manage AD, first install the Remote Server Administration Tools (RSAT).

Windows 10 Version 1809

If you are using Windows 10 version 1809, RSAT is included as a Feature On Demand, so you don’t need to download the RSAT package. To enable RSAT in Windows 10 version 1809, run the following command in an elevated PowerShell console:

Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

Earlier Versions of Windows 10

If you are using an earlier version of Windows 10, download the appropriate RSAT package from Microsoft’s website:

  • If you are managing Windows Server version 1803 or 1709, download and install the WS_1803 package.
  • If you are managing Windows Server 2016 or earlier versions of Windows Server, download and install the WS2016 package.

Once RSAT is installed, start the PowerShell console as a local administrator and enable the AD PowerShell module using this PowerShell command:

Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

Create credential with password using PowerShell

To create a new user account, use the New-ADUser cmdlet. In the example below, I have hardcoded the ad.contoso.com domain in the $UPN variable. You should change this to match the UPN suffix you want to assign to users.

Provide the user’s first name and last name. The UPN and SamAccountName will then be created by adding a period between the first and last name. Use the following PowerShell script:

$GivenName = (Read-Host -Prompt "First Name")
$Surname = (Read-Host -Prompt "Last Name")
$User = $GivenName+"."+$Surname
$UPN = $User+"@ad.contoso.com"
$Password = (Read-Host -Prompt "Password" -AsSecureString)
New-ADUser -Name $User -SamAccountName $User -UserPrincipalName $UPN -AccountPassword $Password -GivenName $GivenName -Surname $Surname -Enabled $True

Create new AD user password using PowerShell

The following code will prompt you to specify a username and password. You must enter a username that already exists in AD and a password that meets the domain’s password complexity requirements.

$User = (Read-Host -Prompt "Username")
$NewPassword = (Read-Host -Prompt "New Password" -AsSecureString)
Set-ADAccountPassword -Identity $User -NewPassword $NewPassword -Reset

Change password using PowerShell

  • Change a local user’s password

To change a local user’s password, you need to use the Get-LocalUser and Set-LocalUser cmdlets:

$Password = (Read-Host -Prompt "New Password" -AsSecureString)
$User = (Read-Host -Prompt "Username")
$UserAccount = Get-LocalUser -Name $User
$UserAccount | Set-LocalUser -Password $Password
  • Change an AD user’s password

To create a new AD user password using PowerShell, use the following script. You will be prompted to specify the username of an existing AD account and then a new password, which must meet the domain’s password complexity requirements.

$User = (Read-Host -Prompt "Username")
$NewPassword = (Read-Host -Prompt "New Password" -AsSecureString)
Set-ADAccountPassword -Identity $User -NewPassword $NewPassword -Reset
  • Force a user to change their password at next logon

The Set-LocalUser cmdlet doesn’t support setting a local user account to force a password change at next logon. However, you can achieve the same goal by forcing the password to expire:

$User = (Read-Host -Prompt "Username")
$Usrstring = "WinNT://localhost/"+$User  
$usr=[ADSI] $Usrstring  
$usr.passwordExpired = 1  
$usr.setinfo()

But you can force users to change their AD account passwords using Set-ADAccountPassword:

$User = (Read-Host -Prompt "Username")
Set-Aduser -Identity $User -ChangePasswordAtLogon $true
  • Change an administrator password

To change the AD administrator password, type administrator when you are prompted for a username using the code below:

$User = (Read-Host -Prompt "Username")
$NewPassword = (Read-Host -Prompt "New Password" -AsSecureString)
Set-ADAccountPassword -Identity $User -NewPassword $NewPassword -Reset

To change a local administrator password, type administrator when prompted for a username:

$Password = (Read-Host -Prompt "New Password" -AsSecureString)
$User = (Read-Host -Prompt "Username")
$UserAccount = Get-LocalUser -Name $User
$UserAccount | Set-LocalUser -Password $Password
  • Change the “password never expires” attribute

To set the “password never expires” attribute on a local user account, use Set-LocalUser:

$User = (Read-Host -Prompt "Username")
Set-LocalUser -Name $User -PasswordNeverExpires $true

To set the “password never expires” attribute on an Active Directory user account, use Set-ADUser:

$User = (Read-Host -Prompt "Username")
Set-ADUser -Identity $User -PasswordNeverExpires $true
  • Change the service account password

To change the logon properties of a service, use the Get-Credential and Set-Service cmdlets. The following code changes the AppReadiness service from using the Local System account to using the username and password that are entered when prompted. Note that the Set-Service -Credential parameter is supported only in PowerShell 6 and later.

$credential = Get-Credential
Set-Service -Name "AppReadiness" -Credential $credential
  • Change a password’s expiration date in Active Directory

If you need to extend the time a user can keep their current password, set the pwsLastSet attribute to the current date, giving them extra time until Active Directory forces them to change their password. Clearing the attribute and then setting it to -1 will set it to the current date and time.

$Username = (Read-Host -Prompt "Username")
$User = Get-ADUser $Username -Properties pwdlastset
$User.pwdlastset = 0
Set-ADUser -Instance $User
$User.pwdlastset = -1
Set-ADUser -Instance $User
  • Bulk password reset

The best way to get users to change their AD passwords is to force a password reset. You can do this in bulk by combining the Get-ADUser and Set-ADUser cmdlets. The command below uses a filter to get users in the “Accounts” organizational unit (OU) and pipes the results to the Set-ADUser cmdlet to force all users in the OU to change their password at next logon.

Get-ADUser -Filter * -SearchScope Subtree -SearchBase "OU=Accounts,DC=ad,DC=contoso,DC=com" | 
Set-ADUser -ChangePasswordAtLogon $true

Testing a user’s credentials

If you want to test if a user’s credentials are working, all you need to do is start a process using their username and password. The code below starts cmd.exe using the credentials entered when prompted.

Start-Process -FilePath cmd.exe /c -Credential (Get-Credential)

IT consultant and author specializing in management and security technologies. Russell has more than 15 years of experience in IT, he has written a book on Windows security, and he coauthored a text for Microsoft’s Official Academic Course (MOAC) series.

Skip to content

Powershell — изменение пароля локального пользователя

Powershell — изменение пароля локального пользователя

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

• Windows 2012 R2
• Windows 2016
• Windows 2019
• Windows 10

Список оборудования

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

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

Похожий учебник — PowerShell

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

Учебник Powershell — Изменение пароля локального пользователя

В качестве администратора запустите повышенную командную линию Powershell.

Windows 10 - powershell elevated

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

Запросите имя пользователя и новый пароль.

Введите запрашиваемую информацию.

Powershell - Local credential

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

При необходимости запросите имя пользователя и пароль с помощью командной строки.

Измените пароль с помощью обычного текстового пароля.

В нашем примере мы настроили пароль локальной учетной записи с именем GOHAN.

Для этой учетной записи пользователя был установлен следующий пароль: 123QWE@@.

Поздравляю! Вы можете изменить пароль локального пользователя с помощью Powershell.

VirtualCoin CISSP, PMP, CCNP, MCSE, LPIC22021-09-03T16:13:29-03:00

Related Posts

Page load link

This website uses cookies and third party services.

Ok

В этой статье мы рассмотрим, как изменить (сбросить) пароль одного или нескольких пользователей Active Directory с помощью графической оснастки Active Directory Users and Computers, из командной строки, а также с помощью PowerShell командлета Set-ADAccountPassword.

Содержание:

  • Изменить пароль пользователя домена из графической консоли Active Directory
  • Как сбросить пароль пользователю Active Directory с помощью PowerShell?
  • PowerShell скрипт для сброса пароля нескольких пользователей AD
  • Изменить пароль пользователя в домене из командной строки

Изменить пароль пользователя домена из графической консоли Active Directory

Для сброса пароля пользователя Active Directory можно использовать графическую оснастку
dsa.msc
(Active Directory Users & Computers — ADUC). Воспользуйтесь поиском в консоли ADUC и найдите учетную запись пользователя, которому нужно изменить пароль. Щелкните по нему правой кнопкой и выберите пункт “Смена пароля” (Reset password).

консоль active directory users and computers изменить пароль пользователя

Укажите новый пароль (дважды). Здесь можно включить две опции:

  • User must change password at next logon – если вы хотите, чтобы пользователь сам задал себе новый пароль при следующем входе;
  • Unlock user’s account – включите эту опцию, если вы хотите разблокировать пользователя (если учетная запись заблокирована политикой безопасности AD из-за многократных попыток входа с неверным паролем).

задать новый пароль для пользователя домена

Это самый просто и интуитивно понятный способ сброса пароля пользователя домена.

Также в свойствах пользователя на вкладке редактора атрибутов AD вы можете найти информацию о дате последней смены пароля. Это значение хранится в атрибуте пользователя pwdLastSet.

атрибут pwdLastSet пользователя AD

Для сброса пароля ваша учетной запись должна обладать соответствующими правами. По-умолчанию обычные пользователи AD не могут сбросить пароль других аккаунтов. Такие права есть только у учетных записей с правами администратора домена (Domain Admins), или Account Operators. Вы можете предоставить другим группам пользователям право на сброс паролей в определенных OU с помощью делегирования. По ссылке доступен пример делегирования прав на сброс паролей и разблокировку пользователей группе HelpDesk.

Чтобы проверить, что у вашей учетной записи есть право на сброс пароля определенного пользователя, откройте его свойства, перейдите на вкладку Security -> Advanced -> Effective Access -> укажите имя своей учетной записи -> убедитесь, что у вас есть разрешение Reset Password.

Active Directory эффективные разрешения на сброс пароля пользователяeffektivnie_rasresheniya_reset_password

Как сбросить пароль пользователю Active Directory с помощью PowerShell?

Вы можете использовать команды PowerShell для сброса пароля пользователя в AD. Для этого можно использовать используется командлет Set-ADAccountPassword, входящий в модуль Active Directory для Windows PowerShell (в десктопых версиях Windows он входит в состав RSAT, а в серверных редакциях устанавливается в виде отдельного компонента AD DS Snap-Ins and Command-Line Tools). Перед использованием модуля его необходимо импортировать в сессию PowerShell:

Import-module ActiveDirectory

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

Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “SuperStr0n@p1” -Force -Verbose) –PassThru

Set-ADAccountPassword сброс пароля в Active Directory из Powershell

alert]Для автоматической генерации сложный паролей пользователям вы можете использовать метод GeneratePassword, описанный в статье Генерация случайных паролей с помощью PowerShell. [/alert]

По умолчанию командлет возвращает объект и ничего не отображает в консоли. Чтобы вывести информацию об объекте пользователя в AD мы используем параметр –PassThru.

В качестве имени пользователя можно указать sAMAccountName (как в нашем случае), objectGUID, SID пользователя, или его DN (Distinguished Name, например CN=Akimov,OU=Users,DC=winitpro,DC=ru).

Если при смене пароля пользователя не указывать параметр –Reset, необходимо указать старый и новый пароль учетной записи.

Примечание. Если при сбросе пароля с помощью командлета Set-ADAccountPassword появляется ошибка:

Set-ADAccountPassword : The password does not meet the length, complexity, or history requirement of the domain.

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

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

Get-ADUserResultantPasswordPolicy -Identity a.novak

Если у вас включено ведение истории PowerShell команд, и вы не хотите, чтобы пароли в открытом виде сохранялись в сессии PoSh, пароль как и при создании пользователя нужно преобразовать в безопасную строку (подробнее о защите паролей в скриптах PowerShell здесь):

$NewPasswd=Read-Host "Введите новый пароль пользователя" –AsSecureString

задать новый пароль пользователя в ad из powershell

Теперь можно задать новый пароль пользователю:

Set-ADAccountPassword dakimov -Reset –NewPassword $NewPasswd –PassThru

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

Unlock-ADAccount –Identity dakimov

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

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $true

Вы можете совместить в одной строке команду смены пароля и включение требования сменить пароль (атрибут userAccountControl):

Set-ADAccountPassword dakimov -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

С помощью командлета Get-ADUser вы можете убедиться, что пароль сброшен успешно. Выведите время последней смены пароля аккаунта:

Get-ADUser dakimov -Properties * | select name, pass*

Get-ADUser время последней смены пароля

При сбросе пароля на контроллере домена (DC) регистрируется событие EventID 4724. Это событие помогает определить учетную запись, которая выполнила сброс пароля пользователя.

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

Get-ADUser -Identity avivanov -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }}

PowerShell скрипт для сброса пароля нескольких пользователей AD

Выше мы показали, как из PowerShell сбросить пароль одного пользователя в AD. Рассмотрим теперь другой сценарий – когда вам нужно сменить пароли сразу нескольких пользователей.

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

get-aduser -filter "department -eq 'Sales Dept' -AND enabled -eq 'True'" | Set-ADAccountPassword -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

Рассмотрим еще один пример. Допустим, у вас есть CSV/Excel файл, в котором содержится список пользователей, которым нужно сбросить пароли и уникальный пароль для каждого пользователя. Формат файла users.csv:

sAMAccountName;NewPassword
aivanov;PaSSde0r1
bpetrov;New$isde01
ssidorov;k@nndj!223

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

Import-Csv users.csv -Delimiter ";" | Foreach {
$NewPass = ConvertTo-SecureString -AsPlainText $_.NewPassword -Force
Set-ADAccountPassword -Identity $_.sAMAccountName -NewPassword $NewPass -Reset -PassThru | Set-ADUser -ChangePasswordAtLogon $false
}

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

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

Если на компьютере не установлена консоль ADUC, или модуль RSAT-AD-PowerShell, вы можете использовать консольную команду net use для сброса пароля. Чтобы получить информацию о пользователе в домене, выполните команду:

net user a.novak /domain

В командной строке показана базовая информацию о пароле пользователя в домене:

Password last set            4/20/2022 2:10:05 AM
Password expires             Never
Password changeable          4/21/2022 2:10:05 AM
Password required            Yes
User may change password     Yes
Last logon                   4/20/2022 2:58:47 AM
Logon hours allowed   All

net user: команда просмотр информация о пользователе домена и его пароле

Из значения Last Logon можно узнать, когда пользователь входит в домен последний раз. Чтобы получить более подробную информацию об истории входа пользователя в домен, смотри статью.

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

net user a.novak /domain *

net user domain сбросить пароль пользователя

Укажите новый пароль и подтвердите его:

Type a password for the user: xx
Retype the password to confirm: xx
The command completed successfully.

Администратор может изменить пароль локальных пользователей компьютера с помощью графической оснастки lusrmgr.msc. Чтобы изменить пароль доменного пользователя преимущественно используется графическая консоль Active Directory Users and Computer (ADUC). В некоторых случаях администратору бывает необходимо изменить пароль пользователя из командной строки или скрипта. В этой статье мы покажем, как управлять паролями локальных и доменных (из домена Active Directory) пользователей с помощью PowerShell.

    Содержание:

  • Как изменить пароль пользователя AD с помощью PowerShell?
  • Как из PowerShell изменить пароль локального пользователя Windows?

Как изменить пароль пользователя AD с помощью PowerShell?

Чтобы сбросить пароль пользователя в AD нужно использовать комадлет Set-ADAccountPassword из модуля PowerShell Active Directory. Естественно у пользователя, который выполняет команду должны быть права администратора домена или ему делегированы полномочия на сброс паролей пользователям AD.

Перед использованием командлета Set-ADAccountPassword необходимо импортировать данный модуль в сессию PowerShell:

import-module activedirectory

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

$newPass=Read-Host "Введите новый пароль" -AsSecureString

Введите новый пароль в консоли.

Лучше всего указывать имя учетной записи в виде samAccountname. Например, чтобы изменить пароль пользователю aaivanov, выполните команду:

Set-ADAccountPassword aaivanov -NewPassword $newPass

Set-ADAccountPassword изменить пароль в ad из powershell

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

Set-ADAccountPassword aaivanov –NewPassword (ConvertTo-SecureString -AsPlainText –String "Hard6P@ss " -force)

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

Set-ADUser aaivanov -ChangePasswordAtLogon $True

Set-ADUser ChangePasswordAtLogon

Вы можете сбросить пароль сразу нескольким пользователям. Можно сохранить список учетных записей в обычном текстовом файле sbros_parolya_spisok_users.txt (каждая строка – одна учтенная запись). Воспользуйтесь таким скриптом:

Get-Content C:\PS\sbros_parolya_spisok_users.txt | Set-ADAccountPassword -NewPassword $newPass -Reset

Как из PowerShell изменить пароль локального пользователя Windows?

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

Откройте командную строку PowerShell и выведите список всех локальных пользователей компьютера:

get-wmiobject win32_useraccount

powershell - получить список локальных учетных записей

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

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

Чтобы сбросить пароль локального пользователя, выберите пользователя (например, учетка root):

[adsi]$user = "WinNT://./root,user"

Установите его пароль:

$user.SetPassword("et0sloshn!yP@r0l")

Дополнительно можете потребовать от пользователя самому сменить пароль при следующем входе в систему:

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

$user.Put("PasswordExpired",1)

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

$user.SetInfo()

сбросить пароль локального пользователя windows из powershell

Эти же команды можно использовать для смены пароля пользователя на удаленных компьютерах. Достаточно заменить [adsi]$user = ″WinNT://./root,user″ на команду вида [adsi]$user = ″WinNT://msk-BuhPC21/local_user_name,user″

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

$NewPass = "NoviyP@r0l"
$localusers = Get-WmiObject -Class Win32_UserAccount -ComputerName $env:COMPUTERNAME -Filter LocalAccount='true' | select -ExpandProperty name
foreach ($user in $localusers)
{
$user
([adsi]"WinNT://$env:COMPUTERNAME/$user").SetPassword("$NewPassW0rd")
}

  • Служба установщик windows не может установить этот пакет обновления
  • Смена диска в командной строке windows 10
  • Служба установщик windows не запущена
  • Смена директории в командной строке windows 10
  • Служба установщик windows была неожиданно завершена