Option Explicit
? Описываем используемые переменные.
Dim sUserName, sDomain, oUser, oNet, sComputer, pw, vbClrf, _
 sPword2, sPword3, oComputer
?Запускаем подпрограмму Help по запросу пользователя или если программе не было передано ни одного аргумента.
If WScript.Arguments.Count < 1 Then Call Help
If WScript.Arguments(0) = «/?» Then Call Help
? Присваиваем переменным значения.
sUserName = WScript.Arguments(0)
sDomain = WScript.Arguments(1)
? Создаем объект oNet и получаем имена локального 
? домена и компьютера.
Set oNet = CreateObject(«Wscript.Network»)
sDomain = oNet.UserDomain
sComputer = oNet.ComputerName
?Определяем версию ОС, чтобы выбрать нужную
?подпрограмму изменения пароля.
Set oComputer = GetObject(«WinNT://» & sDomain & «/» & _
 sComputer & «,computer»)
If oComputer.OperatingSystemVersion < 5.1 Then
 Call CheckPwd
 Else
 Call HidePwd
End If
?Подключаемся к объекту пользователя и назначаем пароль.
? Метка A
Set oUser = GetObject(«WinNT://» & sDomain & «/» & sUserName & _
 «,user»)
oUser.SetPassword sPword2
? Конец метки A
? Обязываем пользователя изменить пароль при следующей регистрации.
? Метка B
oUser.Put «PasswordExpired», 1
oUser.SetInfo
? Конец метки B
? Метка C
Set oWshShell = CreateObject(«WScript.Shell»)
oWshShell.LogEvent 4, «The password for user account», sUserName, _
 «in domain», sDomain, «has been changed.»
? Конец метки C
Sub CheckPwd
? Принимаем новый пароль и сохраняем его в sPword2.
sPword2 = InputBox(«Please type your new password.», _
 «Enter New Password»)
? Подтверждаем новый пароль.
sPword3 = InputBox(«Please confirm the new password.», _
 «Confirm New Password»)
? Сравниваем два новых пароля и подтверждаем их совпадение.
If sPword2 <> sPword3 Then MsgBox(«The passwords do not match.») _
 : Call CheckPwd
End Sub
Sub HidePwd
? Создаем объект Scriptpw.
Set pw = CreateObject(«ScriptPW.Password»)
? Выводим на экран приглашение ввести новый 
? пароль и сохраняем его в sPword2.
WScript.StdOut.Write «Please type the new password.»_
 : WScript.Echo vbClrf
sPword2 = pw.GetPassword()
? Подтверждаем новый пароль.
WScript.StdOut.Write «Confirm the new password.» _
 : WScript.Echo vbClrf
sPword3 = pw.GetPassword()
? Убеждаемся, что новый пароль введен правильно.
If sPword2 <> sPword3 Then WScript.Echo «The passwords « _
 & «do not match.» : Call HidePwd
End Sub
Sub Help
WScript.Echo «adminpword username domainname»
WScript.Echo «This script changes the password for the specified « _
 & «account.»
WScript.Echo «The first argument is the user name.»
WScript.Echo «The second argument is the domain name.»
WScript.Quit
End Sub

Поделитесь материалом с коллегами и друзьями