petro89
09-04-2009, 14:16
НА сайте Системный администратор (http://samag.ru) была статья за 06 год http://www.samag.ru/source/source6(43).txt
Централизованно меняем пароли локального системного администратора
от Ивана Коробко
Вот код
Set objArgs=Wscript.Arguments
If Wscript.Arguments.Count=1 Then
If strcomp(ucase(objArgs(0)),UCase("-Domain"))=0 Then
mode=1
End If
If strcomp(ucase(objArgs(0)),UCase("-Group"))=0 Then
mode=2
End If
If strcomp(ucase(objArgs(0)),UCase("-PC"))=0 Then
mode=3
End If
Else
mode=0
End If
Select Case mode
Case 0
txt="ТЕКСТ СПРАВКИ"
WScript.Echo txt
Case 1
…
End Select
' Определение списка локальных пользователей
' на компьютере
Set obj_user= getobject("WinNT://" & pcname)
obj_user.filter = Array("user")
For Each user in obj_user
user_name= user_name +cstr(user.Name)
Next
' Переименование русского (*)Администратор(*)
' в латинское
If StrComp (UCase(user_name), UCase("Администратор"))=0 Then
Set obj_user2= getobject("WinNT://" & pcname&"/Администратор,User")
Set obj_user3= getobject("WinNT://" & pcname)
Set q=obj_user3.movehere(obj_user2.adspath,"Administrator")
Set obj_user2 = Nothing
Set obj_user3 = Nothing
End If
Set obj_user4= getobject("WinNT://" & pcname&"/Administrator,User")
Call obj_user4.setpassword(PWD)
Set obj_user4 = Nothing
Dim PWD
PWD = "987654321"
Select Case mode
…
Case 3
PWD=CStr(inputbox("Введите новый пароль локального администратора",,PWD))
PCNAME = "1230PC"
PCNAME=CStr(inputbox("Введите имя рабочей станции",,PCNAME))
' вызов функции изменения имен и назначения нового пароля
make pcname
End Select
Dim PWD
PWD = "987654321"
Select Case mode
…
Case 2
pwd=CStr(inputbox("Введите новый пароль локального администратора",,PWD))
GROUPNAME = "PC$_group"
GROUPNAME=CStr(inputbox("Введите имя группы, включая префикс",,GROUPNAME))
Set objSysInfo = CreateObject("ADSystemInfo")
domain=cstr(objSysInfo.DomainShortName)
Set obj_group= getobject("WinNT://" & domain &"/"&GROUPNAME)
For Each pc in obj_group.members
p=cstr(pc.name)
pcname=Left(p,Len(p)-1)
make pcname
Next
Set obj_group= Nothing
…
End Select
Set objSysInfo = CreateObject("ADSystemInfo")
domain=cstr(objSysInfo.DomainShortName)
Case 1
…
Set obj_comp = getobject("WinNT://" & domain)
obj_comp.filter = Array("Computer")
For Each Computer in obj_comp
pcname=cstr(Computer.Name)
make pcname
Next
Set obj_comp= Nothing
…
Set FSO=CreateObject("Scripting.FileSystemObject")
Set MyFile1 = fso.CreateTextFile("c:\"+report+".htm", True, TRUE)
MyFile1.WriteLine(data)
MyFile1.Close
Path=c:\report.htm
set oIE=Wscript.CreateObject("InternetExplorer.Application")
With oIE
.Left=100
.Top=100
.Height=400
.Width=400
.MenuBar=0
.Toolbar=0
.Statusbar=0
.Resizable=1
End With
oIE.Navigate Path
oIE.Visible=1
Запустил "pass.vbs -pc." Но что-то не работает вовсе. Ну к примеру в коде в некоторых местах стоят .... компилятор vbs ругается на них. Убрал. Потом стал ругаться на строку 73, символ 5. Имя переопределено. А это Dim PWD. Помогите разобраться со скриптом.
Централизованно меняем пароли локального системного администратора
от Ивана Коробко
Вот код
Set objArgs=Wscript.Arguments
If Wscript.Arguments.Count=1 Then
If strcomp(ucase(objArgs(0)),UCase("-Domain"))=0 Then
mode=1
End If
If strcomp(ucase(objArgs(0)),UCase("-Group"))=0 Then
mode=2
End If
If strcomp(ucase(objArgs(0)),UCase("-PC"))=0 Then
mode=3
End If
Else
mode=0
End If
Select Case mode
Case 0
txt="ТЕКСТ СПРАВКИ"
WScript.Echo txt
Case 1
…
End Select
' Определение списка локальных пользователей
' на компьютере
Set obj_user= getobject("WinNT://" & pcname)
obj_user.filter = Array("user")
For Each user in obj_user
user_name= user_name +cstr(user.Name)
Next
' Переименование русского (*)Администратор(*)
' в латинское
If StrComp (UCase(user_name), UCase("Администратор"))=0 Then
Set obj_user2= getobject("WinNT://" & pcname&"/Администратор,User")
Set obj_user3= getobject("WinNT://" & pcname)
Set q=obj_user3.movehere(obj_user2.adspath,"Administrator")
Set obj_user2 = Nothing
Set obj_user3 = Nothing
End If
Set obj_user4= getobject("WinNT://" & pcname&"/Administrator,User")
Call obj_user4.setpassword(PWD)
Set obj_user4 = Nothing
Dim PWD
PWD = "987654321"
Select Case mode
…
Case 3
PWD=CStr(inputbox("Введите новый пароль локального администратора",,PWD))
PCNAME = "1230PC"
PCNAME=CStr(inputbox("Введите имя рабочей станции",,PCNAME))
' вызов функции изменения имен и назначения нового пароля
make pcname
End Select
Dim PWD
PWD = "987654321"
Select Case mode
…
Case 2
pwd=CStr(inputbox("Введите новый пароль локального администратора",,PWD))
GROUPNAME = "PC$_group"
GROUPNAME=CStr(inputbox("Введите имя группы, включая префикс",,GROUPNAME))
Set objSysInfo = CreateObject("ADSystemInfo")
domain=cstr(objSysInfo.DomainShortName)
Set obj_group= getobject("WinNT://" & domain &"/"&GROUPNAME)
For Each pc in obj_group.members
p=cstr(pc.name)
pcname=Left(p,Len(p)-1)
make pcname
Next
Set obj_group= Nothing
…
End Select
Set objSysInfo = CreateObject("ADSystemInfo")
domain=cstr(objSysInfo.DomainShortName)
Case 1
…
Set obj_comp = getobject("WinNT://" & domain)
obj_comp.filter = Array("Computer")
For Each Computer in obj_comp
pcname=cstr(Computer.Name)
make pcname
Next
Set obj_comp= Nothing
…
Set FSO=CreateObject("Scripting.FileSystemObject")
Set MyFile1 = fso.CreateTextFile("c:\"+report+".htm", True, TRUE)
MyFile1.WriteLine(data)
MyFile1.Close
Path=c:\report.htm
set oIE=Wscript.CreateObject("InternetExplorer.Application")
With oIE
.Left=100
.Top=100
.Height=400
.Width=400
.MenuBar=0
.Toolbar=0
.Statusbar=0
.Resizable=1
End With
oIE.Navigate Path
oIE.Visible=1
Запустил "pass.vbs -pc." Но что-то не работает вовсе. Ну к примеру в коде в некоторых местах стоят .... компилятор vbs ругается на них. Убрал. Потом стал ругаться на строку 73, символ 5. Имя переопределено. А это Dim PWD. Помогите разобраться со скриптом.