ОП рассматривал решение ColdFusion, но запросил этот пример PowerShell в комментариях. Поэтому, пожалуйста, не давайте отрицательные оценки, потому что это не соответствует запросу OP.
@DavidBrierton, добавьте тег PowerShell к вашему вопросу, чтобы другие могли найти этот ответ.
Обратите внимание, что этот сценарий PowerShell предназначен для современной реализации PowerShell. Я тестировал его на PowerShell 5.1, но он, вероятно, будет работать с более старыми версиями PowerShell. Если вы используете более старый Windows Server, возможно, потребуется настроить «установить интерфейс RSAT-AD-PowerShell». Я включил URL-адрес для инструкций по установке из Windows 7 через Windows 2012 R2, если это необходимо.
Другой Примечание: обновление PowerShell свободны, и вы можете обновить до версии 5.1, получая программное обеспечение здесь: https://www.microsoft.com/en-us/download/details.aspx?id=54616
Первая строка кода в этом примере будет отображать установленную версию PowerShell.
#display your version of PowerShell
$PSVersionTable.PSVersion
#install the RSAT-AD-PowerShell feature on Windows Server 2012 R2
#Source: https://4sysops.com/archives/how-to-install-the-powershell-active-directory-module/
Add-WindowsFeature RSAT-AD-PowerShell
# create array of usernames
$arrUserNames = @("Sta1", "Sta2", "Sta3", "Sta4", "Sta5")
# assign variable with new password
$password = "newpassword17!"
# loop over usernames and assign a new password
($arrUserNames).split(" ",[StringSplitOptions]'RemoveEmptyEntries') | foreach {
Write-Host "Changing password for: $_"
Set-ADAccountPassword -Identity $_ -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $password -Force)
}
Поместите cfexecute внутри цикла списка имен. –
@ DanBracuk вот так? (выше) –
Выглядит хорошо в теории. Что случилось, когда вы попробовали? К сожалению, пробелы после запятых должны уходить. –