Ну, это примеры VB Script в этом Hey Scripting Guy column, но они должны быть переводимым:
Как изменить пароль локального администратора для всех компьютеров в подразделении?
Set objOU = GetObject("LDAP://OU=Finance, DC=fabrikam, DC=com")
objOU.Filter = Array("Computer")
For Each objItem in objOU
strComputer = objItem.CN
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator")
objUser.SetPassword("i5A2sj*!")
Next
Первая часть AD на основе, но только используется для найти все машины в домене. Вторая часть (которая делает фактический сброс удаленного пароля) вообще не зависит от AD.
Таким образом, это в основном связывается с WinNT://<ComputeName>/<UserName>
, а затем вызвать SetPassword()
.
И этот другой SO вопрос об изменении local admin account password уже в C#:
public static void ResetPassword(string computerName, string username, string newPassword) {
DirectoryEntry directoryEntry = new DirectoryEntry(string.Format("WinNT://{0}/{1}", computerName, username));
directoryEntry.Invoke("SetPassword", newPassword);
}
подключен удаленный компьютер с помощью Active Directory? Если да, см. [Здесь] (http://blogs.technet.com/b/heyscriptingguy/archive/2004/10/15/how-can-i-change-a-user-s-password.aspx). Вы должны легко перевести код на C# ... –
Я обновил свой ответ, чтобы включить ссылку на [другой вопрос SO] (http://stackoverflow.com/questions/234845/change-local-administrator -password-in-c-sharp), который говорит о локальных изменениях, но последний код выглядит так, как будто он должен работать и на удаленных машинах, и он уже на C#. –