Falando sobre alguns itens desse post:

  • Por que desabilitar a conta administrador e criar uma nova (ou não apenas renomear a conta)?

Contas padrões possuem um ID padrão e pode ser localizada, independente do seu nome. Por segurança o ideal é desabilitar essa conta e usar uma nova.

  • Por que usar VBS e não um script em PowerShell?

É possível executar a mesma solução de diversas formas. Não usaremos PowerShell nesse post porque para executar esse script pode ser necessário alterar permissões de execução de scripts não assinados. Usando VBS é mais provável não termos erros.

Salve o script na pasta Netlogon de seu domínio, em seguida crie uma GPO e associe essa GPO na OU onde estão os desktops. Edite a GPO, coloque esse script como script de inicialização de computador, utilize como variável a senha que será definida (assim a senha não ficará no córdigo VBS). O código do script vbs (altere as partes em cinza conforme sua realidade):

On Error Resume Next
If WScript.Arguments.Count <> 1 Then
WScript.Quit
End If

Set wmi = GetObject(“winmgmts://./root/cimv2”)
Set objNetwork = CreateObject(“Wscript.Network”)
strComputer = objNetwork.ComputerName
CONST ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Set objWMIService = GetObject(“winmgmts:{impersonationLevel=impersonate}!\” & strComputer & “\root\cimv2”)
strUser = “Suporte”

‘Get Admin Group Name
qry_groups = “SELECT * FROM Win32_Group Where Domain = ‘” & strComputer & “‘”
For Each group in wmi.ExecQuery(qry_groups)
If (group.SID = “S-1-5-32-544”) Then
groupname = group.Name
End If
Next

‘Disable Administrator Account
qry_users = “SELECT * FROM Win32_UserAccount Where Domain = ‘” & strComputer & “‘”
For Each objAccount in wmi.ExecQuery(qry_users)
If Left (objAccount.SID, 6) = “S-1-5-” and Right(objAccount.SID, 4) = “-500” Then
Set objUser = GetObject(“WinNT://” & strComputer & “/” & objAccount.Name & “”)
objUser.AccountDisabled = True
objUser.SetInfo
End If
Next

‘Create a New user
Set colAccounts = GetObject(“WinNT://” & strComputer & “”)
Set objUser = colAccounts.Create(“user”, strUser)
objUser.SetPassword WScript.Arguments(0)
objUser.SetInfo

‘Set password never expires for the new user
Set objLocalUser = GetObject(“WinNT://” & strComputer & “/” & strUser)
intFlags = objLocalUser.GET(“UserFlags”)
intFlags = intFlags OR ADS_UF_DONT_EXPIRE_PASSWD
objLocalUser.Put “userFlags”, intFlags
objLocalUser.SetInfo

‘Add the new user to admin group
Set objLocalAdmGroup = GetObject(“WinNT://” & strComputer & “/”& groupname &”,group”)
objLocalAdmGroup.Add(objLocalUser.AdsPath)

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria
Categorias: Soluções Microsoft