Администратор может изменить пароль локальных пользователей на компьютере, используя графическую оснастку «Локальные пользователи и группы (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 ") }
Добрый день!
Есть скрипт по изменению пароля локального админа
[adsi]$user = “WinNT://./admin,user”
$user.SetPassword(“Ufkbktq2%”)
$user.Put(“Description”, “locAdmin22072020”)
$user.SetInfo()
Подскажите как сделать чтобы пароль брался из сетевого расположения с помощью:
$adminPassword = get-content \\server\share\adminPassword.txt
Можете полностью скрипт написать c $adminPassword !