quarta-feira, 2 de março de 2011

Criar conta de rede via VBS consultando um arquivo .xls

Time, estou postando abaixo o script que eu peguei no site: www.computerperformance.co.uk, eu fiz algumas adaptações para o meu ambiente e creio que vai ser muito util para vocês.

Passos a serem seguidos:
1º Copie o script abaixo e salve como vbs.
2º Crie na raiz do C a pasta: C:\scripts
3º Crie uma planilha em excel conforme a imagem abaixo e salve como user.xls:



------------//----------------//--------------//--------------//-----------

Script:
'----------------------------------------------------------------------'
'--------------------------Criação de login----------------------------'
'
'Autor:Marcus Paulo Gioscia
'Data: 02/03/20111
'----------------------------------------------------------------------'

Option Explicit
Dim objRootLDAP, objContainer, objUser, objShell
Dim objExcel, objSpread, intRow
Dim strUser, strOU, strSheet
Dim strCN, strSam, strFirst, strLast, strPWD, strinitials, stroffice, strmail, strtitle, strdepartment, strprincipalname, strTitulo, strMensagem, strcompany

' ----------------------------------------------------------------------'
' Importante: Todos os novos logins cairão dentro da OU Login Inicial
' Caso precise mudar o local para a criação desse novo login, modifique,
' a linha strOU =
' ----------------------------------------------------------------------'

strOU = "OU=LOGIN INICIAL ,"
strSheet = "C:\scripts\User.xls"

' Bind to Active Directory, Users container.
Set objRootLDAP = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://" & strOU & objRootLDAP.Get("defaultNamingContext"))

' Open the Excel spreadsheet
Set objExcel = CreateObject("Excel.Application")
Set objSpread = objExcel.Workbooks.Open(strSheet)
intRow = 3 'Row 1 often contains headings

' Here is the 'DO...Loop' that cycles through the cells
' Note intRow, x must correspond to the column in strSheet
Do Until objExcel.Cells(intRow,1).Value = ""
strSam = Trim(objExcel.Cells(intRow, 1).Value)
strCN = Trim(objExcel.Cells(intRow, 2).Value)
strFirst = Trim(objExcel.Cells(intRow, 3).Value)
strinitials = Trim(objExcel.Cells(intRow, 4).Value)
strLast = Trim(objExcel.Cells(intRow, 5).Value)
strPWD = Trim(objExcel.Cells(intRow, 6).Value)
stroffice = Trim(objExcel.Cells(intRow, 7).Value)
strmail = Trim(objExcel.Cells(intRow, 8).Value)
strprincipalname = strSam & "@MSFT.LOCAL"
strtitle = Trim(objExcel.Cells(intRow, 9).Value)
strdepartment = Trim(objExcel.Cells(intRow, 10).Value)
strcompany = "MSFT"

' Build the actual User from data in strSheet.
Set objUser = objContainer.Create("User", "cn=" & strCN)
objUser.sAMAccountName = strSam
objUser.givenName = strFirst
objUser.initials = strinitials
objUser.sn = strLast
objUser.SetInfo
objUser.physicalDeliveryOfficeName = stroffice
objUser.mail = strmail
objUser.userPrincipalName= strprincipalname
objUser.displayName = strCN
objUser.title = strtitle
objUser.department = strdepartment
objUser.company = strcompany


' Separate section to enable account with its password
objUser.userAccountControl = 512
objUser.pwdLastSet = 0
objUser.SetPassword strPWD
objUser.SetInfo

intRow = intRow + 1
Loop
objExcel.Quit

strTitulo = "PARABÉNS!"
strMensagem = _
"LOGIN CRIADO COM SUCESSO!" & vbcrlf & vbcrlf & _
"Verifique agora a conta criada e edite os campos: Descrição, Nome do Gerênte, e vincule o usuário aos grupos corporativos." & vbcrlf & _
"" & vbcrlf & _
""
'BtnCode = WshShell.Popup(strMensagem, 5, "Informação:", 64 + 0)
msgbox strMensagem, 0 + 64, strTitulo


WScript.Quit

' Fim do script

------------//----------------//--------------//--------------//-----------
OBS: Quero deixar aqui o meu agradecimento à equipe do Rio Show, que me deu um auxilio nesse script.

Link para baixar o script: Script-Users
Um forte abraço!
Marcão!

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.