Сброс пароля компьютера powershell
Microsoft позволяет пользователям Командной строки и PowerShell в Windows 10 настраивать пользовательский интерфейс консолей. Эта настройка включает в себя различные цветовые комбинации, изменение типа шрифта, размеров шрифта и многое другое.
Для обычного пользователя могут возникнуть трудности вернуть настройки powershell по умолчанию и сбросить настройки командной строки, т.к нет кнопки «Сброса настроек»
Прежде чем продолжить, мы рекомендуем вам создать точку восстановления системы, чтобы при возникновении таких ошибок вы могли просто вернуться к ранее известному стабильному состоянию вашего компьютера.Сбросить PowerShell к настройкам по умолчанию
Существует два варианта Windows PowerShell, которые установлены в 64-разрядной версии Windows 10, а именно:
- Windows PowerShell.
- Windows PowerShell (x86).
- Если вы используете x86, то будет только Windows PowerShell.
Если вы хотите вернуть прежние настройки Windows PowerShell, вам нужно заменить ярлыки. Для этого загрузите стандартные версии ярлыков для Windows PowerShell. Ссылка приведена в конце статьи.
Теперь перейдите по следующему пути:
Переместите скаченные ярлыки в эту папку с автозаменой.
Windows PowerShell на вашем компьютере теперь сброшен к настройкам по умолчанию.
Как сбросить командную строку по умолчанию
Сначала вам необходимо загрузить файл с расширением .reg. Ссылка приведена в конце данной темы.
Если вы хотите сделать это вручную, сделайте следующее.
Нажмите комбинацию WIN + R, чтобы запустить утилиту «Выполнить», введите regedit и нажмите Enter. После открытия редактора реестра перейдите по следующему пути
- Теперь щелкните правой кнопкой мыши папку с именем «Console» на левой боковой панели и выберите «Удалить».
- Нажмите «Да» для получения запроса на подтверждение.
- Перезагрузите компьютер.
В этой статье мы рассмотрим, как изменить (сбросить) пароль одного или сразу нескольких пользователей Active Directory из командной строки PowerShell с помощью командлета Set-ADAccountPassword.
Но вам не удастся использовать консоль ADUC, когда необходимо сбросить пароль сразу множеству пользователей, использовать процедуру сброса пароля в качестве одного из действий скрипта. В этом случае можно сбросить пароли в AD из командной строки PowerShell.
Как сбросить пароль пользователю в AD?
Для сброса пароля пользователя в AD используется командлет Set-ADAccountPassword, входящий в модуль Active Directory для Windows PowerShell (в десктопых версиях Windows он входит в состав RSAT, а в серверных редакциях устанавливается в виде отдельного компонента AD DS Snap-Ins and Command-Line Tools). Перед использованием модуля его необходимо импортировать в сессию PowerShell:
Для сброса пароля ваша учетной запись должна обладать соответствующими правами. Естественно, обычные пользователи AD по-умолчанию не могут сбросить пароль других аккаунтов, чтобы эта возможность появилась, пользователю (группе пользователей) нужно делегировать право на сброс пароля на контейнер AD, либо добавить его в доменную группу Account Operators.
Чтобы проверить, что у вашей учетной записи есть право на сброс пароля определенного пользователя, откройте его свойства, перейдите на вкладку Security -> Advanced -> Effective Access -> укажите имя своей учетной записи -> убедитесь, что у вас есть разрешение Reset Password.
Чтобы сбросить пароль для пользователя с учетной записью dakimov и установить новый пароль SuperStr0n@p1, выполните команду:
Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “SuperStr0n@p1” -Force -Verbose) –PassThru
По умолчанию командлет возвращает объект и ничего не отображает в консоли. Чтобы вывести информацию об объекте пользователя в 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.
Это означает что к указанному паролю применяются некоторые требования сложности, длины и т.д., определенные в доменной политике паролей или гранулированной политике паролей, действующей на учетку.
Если у вас включено ведение истории PowerShell команд, и вы не хотите, чтобы пароли в открытом виде отображались в консоли PoSh, пароль как и при создании пользователя нужно преобразовать в безопасную строку (подробнее о защите паролей в скриптах PowerShell здесь):
$NewPasswd=Read-Host "Введите новый пароль пользователя" –AsSecureString
Теперь сбросим пароль:
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*
При сбросе пароля на контроллере домена (DC) регистрируется событие EventID 4724. Это событие помогает определить учетную запись, которая выполнила сброс пароля пользователя.
Изменить пароль нескольких пользователей в AD
Выше мы показали, как из PowerShell сбросить пароль одного пользователя в AD. Рассмотрим теперь другой сценарий – когда вам нужно сменить пароли сразу нескольких пользователей.
Самый простой случай – вам нужно сбросить пароли всех пользователей с определенными свойствами учеток. Например, нужно заставить сбросить пароль всем сотрудникам департамента Sales на одинаковый и заставить его сменить при следующем входе:
get-aduser -filter "department -eq 'Sales Dept' -AND enabled -eq 'True'" | Set-ADAccountPassword -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True
В этой статье мы рассмотрим проблему нарушения доверительных отношений между рабочей станцией и доменом Active Directory, из-за которой пользователь не может авторизоваться на компьютере. Рассмотрим причину проблемы и простой способ восстановления доверительных отношений компьютера с контроллером домена по безопасному каналу без перезагрузки компьютера.
Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом
Как проявляется проблема: пользователь пытается авторизоваться на рабочей станции или сервере под своей учетной запись и после ввода пароля появляется ошибка:
Также ошибка может выглядеть так:
Пароль учетной записи компьютера в домене Active Directory
Когда компьютер вводится в домен Active Directory, для него создается отдельная учетная запись типа computer. У каждого компьютера в домене, как и у пользователей есть свой пароль, который необходим для аутентификации компьютера в домене и установления доверенного подключения к контроллеру домена. Однако, в отличии от паролей пользователя, пароли компьютеров задаются и меняются автоматически.
Несколько важных моментов, касающихся паролей компьютеров в AD:
Если хэш пароля, который компьютер отправляет контроллеру домена не совпадает с паролем учетной записи компьютера, компьютер не может установить защищённое подключение к DC и выдает ошибки о невозможности установить доверенное подключение.
Почему это может произойти:
- Самая частая проблема. Компьютер был восстановлен из старой точки восстановления или снапшота (если это виртуальная машина), созданной раньше, чем был изменен пароль компьютера в AD. Т.е. пароль в снапшоте отличается от пароля компьютера в AD. Если вы откатите такой компьютер на предыдущее состояние, это компьютер попытается аутентифицироваться на DC со старым паролем.
- В AD создан новый компьютер с тем же именем, или кто-то сбросил аккаунт компьютера в домене через консоль ADUC;
- Учетная запись компьютера в домене заблокирована администраторам (например, во время регулярной процедуры отключения неактивных объектов AD);
- Довольно редкий случай, когда сбилось системное время на компьютере.
Классический способ восстановить доверительных отношений компьютера с доменом в этом случае:
- Сбросить аккаунт компьютера в AD;
- Под локальным админом перевести компьютер из домена в рабочую группу;
- Перезагрузить компьютер;
- Перезагнать компьютер в домен;
- Еще раз перезагрузить компьютер.
Этот метод кажется простым, но слишком топорный и требует, как минимум двух перезагрузок компьютера, и 10-30 минут времени. Кроме того, могут возникнуть проблемы с использованием старых локальных профилей пользователей.
Есть более элегантный способ восстановить доверительные отношения с помощью PowerShell без перевключения в домен и без перезагрузок компьютера.
Проверка и восстановление доверительного отношения компьютера с доменом с помощью PowerShell
Если вы не можете аутентифицироваться на компьютере под доменной учетной записью с ошибкой “Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом”, вам нужно войти на компьютер под локальной учетной записью с правами администратора. Также можно отключить сетевой кабель и авторизоваться на компьютере под доменной учетной записью, которая недавно заходила на этот компьютер, с помощью кэшированных учетных данных (Cached Credentials).
Откройте консоль PowerShell и с помощью командлета Test-ComputerSecureChannel проверьте соответствует ли локальный пароль компьютера паролю, хранящемуся в AD.
Чтобы принудительно сбросить пароль учётной записи данного компьютера в AD, нужно выполнить команду:
Test-ComputerSecureChannel –Repair –Credential (Get-Credential)
Для выполнения операции сброса пароля нужно указать учетную запись и пароль пользователя, у которого достаточно полномочий на сброс пароля учетной записи компьютера. Этому пользователя должны быть делегированы права на компьютеры в Active Directory (можно использовать и члена группы Domain Admins, но это не комильфо).
Итак, пароль компьютера сброшен без перезагрузки и без ручного перевоода в домен. Теперь вы можете аутентифицировать на компьютере под доменной учетной записью.
Также для принудительной смены пароля можно использовать командлет Reset-ComputerMachinePassword.Имеет смысл сбрасывать пароль компьютера каждый раз, перед тем как вы создаете снапшот виртуальной машины или точку восстановления компьютера. Это упростит вам жизнь при откате к предыдущему состоянию компьютера.
Если у вас есть среда разработки или тестирования, где приходится часто восстанавливать предыдущее состояние ВМ из снапшотов, возможно стоит с помощью GPO точечно отключить смену пароля в домене для таких компьютеров. Для этого используется политика Domain member: Disable machine account password changes из секции Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options. Можно нацелить политики на OU с тестовыми компьютерам или воспользоваться WMI фильтрами GPO.
С помощью командлета Get-ADComputer (из модуля Active Directory Windows PowerShell) можно проверить время последней смены пароля компьютера в AD:
Get-ADComputer –Identity spb-pc22121 -Properties PasswordLastSet
Комадлеты Test-ComputerSecureChannel и Reset-ComputerMachinePassword доступны, начиная с версии PowerShell 3.0. В Windows 7/2008 R2 придется обновить версию PoSh.Также можно проверить наличие безопасного канала между компьютером и DC командой:
Следующие строки подтверждают, что доверительные отношения были успешно восстановлены:
Восстановления доверия с помощью утилиты Netdom
В Windows 7/2008R2 и предыдущих версиях Windows, на которых отсутствует PowerShell 3.0, не получится использовать командлеты Test-ComputerSecureChannel и Reset-ComputerMachinePassword для сброса пароля компьютера и восстановления доверительных отношений с доменом. В этом случае для восстановления безопасного канала с контроллером домена нужно воспользоваться утилитой netdom.exe .
Утилита Netdom включена в состав Windows Server начиная с 2008, а на компьютерах пользователей может быть установлена из RSAT (Remote Server Administration Tools). Чтобы восстановить доверительные отношения, нужно войти в систему под локальным администратором (набрав “.\Administrator” на экране входа в систему) и выполнить такую команду:
Netdom resetpwd /Server:DomainController /UserD:Administrator /PasswordD:Password
- Server – имя любого доступного контроллера домена;
- UserD – имя пользователя с правами администратора домена или делегированными правами на компьютеры в OU с учетной записью компьютера;
- PasswordD – пароль пользователя.
Netdom resetpwd /Server:spb-dc01 /UserD:aapetrov /PasswordD:Pa@@w0rd
Послу успешного выполнения команды не нужно перезагружать компьютер, достаточно выполнить логофф и войти в систему под доменной учетной.
Как вы видите, восстановить доверительные отношения междду компьютером и доменом довольно просто.
В общем-то причина появления такой ошибки известна. Все компьютеры в домене Windows имеют свой собственный пароль и по умолчанию должны менять его каждые 30 дней. Однако если по какой либо причине эти пароли не совпадают, то компьютер не может пройти аутентификации в домене (установить доверительные отношения и безопасный канал).
Такое рассогласование может произойти в случае, если компьютер был восстановлен из резервной копии, созданной раньше момента последней смены пароля компьютера в домене (особенно часто это случается при восстановлении виртуальной машины из снапшота), или же произошла принудительная смена пароля в домене, а на компьютер эти изменения по какой-либо причине не попали (например, была сброшена или перезатерта учетная запись ПК).
В принципе, избежать такую ситуации можно, запретив смену пароля в в домене групповой политике (например, только для виртуальных машин), но, естественно это небезопасно и делать это обычно не рекомендуется.
В таких случаях, системный администратор обычно просто заново включал вылетевший компьютер в домен. Но для этого компьютер нужно перезагружать. Мне захотелось найти альтернативу такому решению, и как оказалось, оно существует. Для этого можно воспользоваться Powershell.
- Откройте консоль PowerShell
- Введите команду
Вот так быстро и просто мы сбросили пароль учетной записи компьютера в домене без перезагрузки компьютера. Указанная методика была проверена на Windows 8 и Windows 7.
Администратор может изменить пароль локальных пользователей компьютера с помощью графической оснастки lusrmgr.msc. Чтобы изменить пароль доменного пользователя преимущественно используется графическая консоль Active Directory Users and Computer (ADUC). В некоторых случаях администратору бывает необходимо изменить пароль пользователя из командной строки или скрипта. В этой статье мы покажем, как управлять паролями локальных и доменных (из домена Active Directory) пользователей с помощью PowerShell.
Как изменить пароль пользователя AD с помощью PowerShell?
Чтобы сбросить пароль пользователя в AD нужно использовать комадлет Set-ADAccountPassword из модуля PowerShell Active Directory. Естественно у пользователя, который выполняет команду должны быть права администратора домена или ему делегированы полномочия на сброс паролей пользователям AD.
Перед использованием командлета Set-ADAccountPassword необходимо импортировать данный модуль в сессию PowerShell:
Пароль в памяти компьютера желательно хранить в защищенном виде, поэтому можно попросить администратора указать пароль следующим образом:
$newPass=Read-Host "Введите новый пароль" -AsSecureString
Введите новый пароль в консоли.
Лучше всего указывать имя учетной записи в виде samAccountname. Например, чтобы изменить пароль пользователю aaivanov, выполните команду:
Set-ADAccountPassword aaivanov -NewPassword $newPass
Можно задать новый пароль пользователя прямо в коде скрипта (в открытом виде):
Set-ADAccountPassword aaivanov –NewPassword (ConvertTo-SecureString -AsPlainText –String "Hard6P@ss " -force)
Если нужно, чтобы пользователь сам сменил пароль при следующей авторизации на любом компьютере домена, выполните команду:
Set-ADUser aaivanov -ChangePasswordAtLogon $True
Вы можете сбросить пароль сразу нескольким пользователям. Можно сохранить список учетных записей в обычном текстовом файле 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 и выведите список всех локальных пользователей компьютера:
Также вы можете вывести список локальных пользователей так:
Чтобы сбросить пароль локального пользователя, выберите пользователя (например, учетка root):
Установите его пароль:
Дополнительно можете потребовать от пользователя самому сменить пароль при следующем входе в систему:
Задаем смену пароля при следующем входе:
Осталось сохранить изменения в учетной записи пользователя:
Эти же команды можно использовать для смены пароля пользователя на удаленных компьютерах. Достаточно заменить [adsi]$user = ″WinNT://./root,user″ на команду вида [adsi]$user = ″WinNT://msk-BuhPC21/local_user_name,user″
Чтобы задать одинаковый пароль для всех локальных пользователей, используйте следующий скрипт:
Читайте также: