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.
- Import-CSV (para importar detalhes de usuários)
- Get-Credential (para obter credenciais de e-mail)
- Get-Random (para gerar senhas)
- New-ADUser (para criar novos usuários AD)
- Get-Content (para ler conteúdos de e-mail de um arquivo)
- Send-MailMessage (para enviar e-mails aos usuários)
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
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.
Saiba mais sobre este assunto
Leis de Privacidade de Dados por Estado: Abordagens Diferentes para a Proteção da Privacidade
Exemplo de Análise de Risco: Como Avaliar Riscos
O Triângulo da CIA e Sua Aplicação no Mundo Real
O que é Gerenciamento de Registros Eletrônicos?
Análise de Risco Quantitativa: Expectativa de Perda Anual