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 17, 2023
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
Você só precisa de tokens de IA para virar hacker
Purple Knight vs. Exposição de Identidade Única da Tenable
Gestão contínua da postura versus avaliações pontuais
Netwrix Innovation Week: 1Secure™ com segurança de IA agêntica
Netwrix Innovation Week: inovações em segurança de identidades