Изменение пароля локального пользователя и Active Directory с помощью PowerShell |

Изменение пароля локального пользователя и Active Directory с помощью PowerShell

Мануал

Администратор может изменить пароль локальных пользователей на компьютере, используя графическую оснастку «Локальные пользователи и группы (lusrmgr.msc)».

Чтобы изменить пароль пользователя домена AD, в основном используется консоль GUI для пользователей и компьютеров Active Directory (ADUC).

Однако в некоторых случаях администратору может потребоваться изменить пароль пользователя из командной строки или в каком-либо скрипте.

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

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

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

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

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

Import-Module ActiveDirectory

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

$newPass=Read-Host "Enter the new user password" -AsSecureString

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

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

Set-ADAccountPassword jkelly -NewPassword $newPass

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

Set-ADAccountPassword jkelly–NewPassword (ConvertTo-SecureString -AsPlainText –String "St0ngPwd@d" -force)

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

Set-ADUser jkelly -ChangePasswordAtLogon $True

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

Используйте этот скрипт:

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

Как изменить пароль для локальных учетных записей Windows?

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

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

get-wmiobject win32_useraccount

Вы также можете отобразить список локальных пользователей, например:

[adsi]$localPC = "WinNT://."

$localPC.Children | where {$_.Class -eq "user"} | ft name, description –auto

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

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

Задайте пароль:

$user.SetPassword("newP@s32w02rd")

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

$user.Put("PasswordExpired",1)

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

$user.SetInfo()

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

Достаточно заменить [adsi] $ user = “WinNT: //./ConfRoom,user” командой [adsi] $ user = “WinNT: // RemotePCName / ConfRoom, user”.

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

$NewPass = "ThisIsNewP@33"

$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("$NewPass ")

}

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Александр

    Добрый день!

    Есть скрипт по изменению пароля локального админа

    [adsi]$user = “WinNT://./admin,user”
    $user.SetPassword(“Ufkbktq2%”)
    $user.Put(“Description”, “locAdmin22072020”)
    $user.SetInfo()

    Подскажите как сделать чтобы пароль брался из сетевого расположения с помощью:
    $adminPassword = get-content \\server\share\adminPassword.txt

    Можете полностью скрипт написать c $adminPassword !

    Ответить