четверг, 15 августа 2019 г.

Нужно быстро на всех включенных компьютерах включить учетку администратора (гарантированно) и поменять пароль.

Понятно, что Вы можете включить учетку администратора с помощью групповых политик, но поменять пароль на учетку Вы не сможете (раньше можно было, да).
И да, LAPS мне не подходит.

Зато подходит такой вот скрипт:
Если хотите - можете часть функций обрезать и запихнуть в автозагрузку от лица машины.

[code]
Set objDomain=Getobject("WinNT://DOMAIN")
For Each object in objDomain
If object.Class="Computer" Then
If Ping(object.Name)=1 Then
print CheckAdmin(object.Name)
End If
End If
Next


Function Ping(strComputer)
Ping=0
On Error Resume Next
Err.Clear
Set objWMI = GetObject("winmgmts:\\.\ROOT\cimv2")
strQuery="select * from Win32_PingStatus Where address='" & strComputer & "'"
Set col = objWMI.ExecQuery(strQuery)
For Each obj in col
If obj.StatusCode=0 Then Ping=1
Next
' If Ping=1 Then print strComputer & " have ping" Else print strComputer & " have no ping"
End Function


Function CheckAdmin(strComputer)
On Error Resume Next
CheckAdmin=""
Set objComputer=Getobject("WinNT://" & strComputer)
For Each obj In objComputer
If lcase(obj.Class)="group" Then
If lcase(obj.Name)="администраторы" or lcase(obj.Name)="administrators" Then
Set objGroup=Getobject("WinNT://" & strComputer & "/" & obj.Name)
For Each objGroupMember in objGroup.Members
If Lcase(objGroupMember.Name)="администратор" Or LCase(objGroupMember.Name)="administrator" Then
Enable strComputer,objGroupMember.Name
Set objUser=Getobject("WinNT://" & strComputer & "/" & objGroupMember.Name)
bState=objUser.AccountDisabled
If bState=True Then
CheckAdmin=strComputer & "|" & objGroupMember.Name & "|disabled"
else
CheckAdmin=strComputer & "|" & objGroupMember.Name & "|enabled"
End If
End If
Next
End If
End If
Next
End Function
Sub print(strWhat)
On Error Resume Next
Wscript.Echo strWhat
End Sub
Sub Enable(strComputer,strUser)
Set objShell=Createobject("Wscript.Shell")
objShell.Run "c:\psutils\psexec.exe \\" & strComputer & " net user " & strUser & " Str0nGP@$$w)rD",0,True
Set objAdm=Getobject("WinNT://" & strComputer & "/" & strUser)
objAdm.AccountDisabled=False
objAdm.SetInfo
objShell.Run "c:\psutils\psexec.exe \\" & strComputer & " /s gpupdate /force /target:computer",0,False
End Sub
[/code]