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.