Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
Criar usuários do AD em massa e enviar suas credenciais por e-mail usando PowerShell

Criar usuários do AD em massa e enviar suas credenciais por e-mail usando PowerShell

Mar 30, 2017

Todos os anos, as instituições educacionais matriculam centenas de alunos. Como resultado, os engenheiros de sistema das instituições precisam de tempo e esforço adicionais para criar uma conta AD para cada aluno e, em seguida, informar manualmente os alunos sobre seus nomes de usuário e senhas.

Este guia passo a passo tornará a vida dos engenheiros de sistema um pouco mais fácil com a ajuda de scripts em PowerShell. O script permite que você crie contas de usuário AD a partir de um arquivo CSV, atribua senhas aleatórias a elas e, em seguida, envie esses nomes de usuário e senhas para os novos alunos em e-mails de boas-vindas.

Utilizei os seguintes cmdlets no meu script. Clique em qualquer cmdlet individual para mais detalhes.

Para enviar os e-mails com credenciais aos novos usuários, estou usando um servidor SMTP do Gmail. No entanto, você pode configurar o script para o seu ambiente de TI e seu servidor de e-mail. O script abaixo foi escrito e testado em um DC rodando no Windows Server 2016. Se precisar executar o script no Windows Server 2012, 2012 R2 ou 2008, talvez seja necessário importar alguns módulos do PowerShell.

Antes de executar o script, verifique os seguintes prerequisites:

  • Um arquivo CSV com as informações dos estudantes (nome, sobrenome, nome da conta Sam e endereço de email)
  • Um texto ou arquivo Word (doc ou docx) com uma mensagem de e-mail de boas-vindas
  • Uma conexão com a Internet ativada (se você quiser usar um servidor SMTP do Gmail)

Conteúdo relacionado selecionado:

Se você atendeu a todos esses requisitos, pode criar contas AD e enviar e-mails de boas-vindas em massa seguindo dois passos simples:

Passo 1.

Copie e cole o script em um arquivo de texto e salve-o com a extensão .ps1:

      ##Beginning of functions

Function Format-Email {
 
Param ([string]$WCEmailContent,[string]$UserPrincipalName,[string]$UserPassword)

return $WCEmailContent + "User Name = $UserPrincipalName
Password = $UserPassword
Thank You
IT Department"
}

Function Send-Email {

Param ($Email, $Credential,[string]$WCEmailContent)
 
$From = "karim.buzdar@gmail.com"
$subject = "Domain Account Details"
$Body = $WCEmailContent
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"

Send-MailMessage -from $From -to $Email -Subject $subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -Credential $Credential -UseSsl

}

###End of Functions

##### Beginning of main programme

$Credential = (get-Credential) #Getting email credentials to be used for From field in Email message
$UsersFilePath = "C:UsersAdministrator.YOURDOMAINDesktopWCusers.csv" # Files of users information (First name, Last name, Sam account name, Email address)
$WCEmailFile = "C:UsersAdministrator.YOURDOMAINDesktopWCWCEmail.docx" # File containing welcome email message

import-csv -path $UsersFilePath | foreach {

$Name = ($_.GivenName + " " + $_.LastName)
$UserPrincipalName = ($_.SamAccountName + ”@yourdomain.com”)
$UserPassword = Get-Random -maximum 20000 -Minimum 100
$UserPassword = "@" + "user" + $UserPassword.ToString()
#Create user in Students OU

new-aduser -name $Name -enabled $true -GivenName $_.GivenName –surname $_.lastName -accountpassword (convertto-securestring $UserPassword -asplaintext -force) -changepasswordatlogon $true -samaccountname $_.SamAccountName –userprincipalname $UserPrincipalName -EmailAddress $_.EmailAddress -Path 'OU=Students,DC=yourdomain,DC=com' -ErrorAction Stop

$WCEmailContent = Format-Email -WCEmailContent (Get-Content $WCEmailFile) -UserPrinciPalName $UserPrincipalName -UserPassword $UserPassword

Send-Email -Email $_.EmailAddress -Credential $Credential -WCEmailContent $WCEmailContent

Write-Host "User Created: $Name"
}

### End of main program
      

Passo 2.

Abra o PowerShell com seus privilégios elevados e execute o arquivo de script que você criou na Etapa 1.

Uma vez que você tenha executado o script com sucesso, os usuários podem fazer login imediatamente no domínio. Você pode verificar a criação da conta no console Active Directory Users and Computers e enviar o e-mail de notificação sobre a criação da conta utilizando o campo CC no cmdlet Send-MailMessage.

Confira meu post recente para aprender como descobrir novos usuários adicionados no AD nas últimas 24 horas e enviar suas credenciais por e-mail usando PowerShell. Você também pode tentar este How-to: Export Specific Users from Active Directory se você é frequentemente solicitado a exportar usuários do AD para CSV.

Sinta-se à vontade para deixar suas sugestões nos comentários para que possamos aprimorar a funcionalidade do script.

Compartilhar em

Saiba Mais

Sobre o autor

Asset Not Found

Karim Buzdar

Engenheiro de Suporte

Engenheiro de TI e Microsoft Certified Solutions Associate (MCSA) para Server Infrastructure. Como autor técnico, Karim concentra-se em Microsoft Directory Services e PowerShell.