Compartilhar via


Importar dados para o meu diretório

O PowerShell pode ser utilizado de várias maneiras para importar dados para o seu diretório, mas o método mais comum é usar um arquivo CSV. Esse arquivo também pode ser criado manualmente, por exemplo, usando o Excel, ou pode ser exportado de uma fonte de dados existente, como um Banco de Dados SQL ou um aplicativo HR. Estes são alguns do cenários comuns para importar dados para o Azure Active Directory:

Criação em massa de novos usuários

Se você desejar criar usuários em massa no Azure Active Directory e tiver um arquivo csv que contém informações sobre os novos usuários que deseja criar, algumas considerações deverão ser feitas:

  1. É necessário estabelecer ou implementar uma Convenção de Nomenclatura para nomes de usuário, nome de exibição e aliases. Por exemplo: nomes de usuário são elaborados com base no sobrenome do usuário, seguido por um ponto final e o primeiro nome. Assim, no contoso.com, o nome de usuário de “John Smith” seria “Smith.John@contoso.com”. Será necessário implementar regras semelhantes para nomes de exibição – talvez você queira adicionar o nome do departamento ao nome de exibição, como em “John Smith (Contabilidade)” – e para o alias.
  2. É necessário implementar uma convenção para a senha inicial do usuário recém-criado e pensar em uma maneira de os novos usuários receberem suas senhas de modo seguro. Para isso, os métodos mais comuns são a geração de senhas aleatórias e o envio dessas senhas para o novo usuário ou seu gerente.

Presumindo-se que isso já esteja estabelecido, vamos ver o que o arquivo CSV que estamos usando para criar novos usuários precisa conter. Aqui está um exemplo do arquivo CSV que estamos usando neste artigo:

Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director

Para criar esses usuários em massa no PowerShell, será necessário seguir várias etapas:

  1. Configure uma sessão do PowerShell com o seu diretório – utilizaremos o cmdlet Connect-AzureAD para isso.
  2. Importe os dados do arquivo CSV na sessão do PowerShell usando o cmdlet Import-CSV.
  3. Crie os parâmetros necessários em cada linha do arquivo para criar um novo usuário
  4. Execute o cmdlet para criar o novo usuário usando o cmdlet New-AzureADUser

Se esse script fosse usado em um ambiente de produção, provavelmente também seria desejável adicionar outras partes, tais como:

  • Tratamento de erro – O que fazer se não for possível criar um usuário
  • Relatório de execução – Quando o script for concluído, forneça uma visão geral do que foi feito: quantidade de usuários criados etc.

Vamos ignorar essas partes por enquanto e concentrar na principal funcionalidade.

Aqui está o script que pode ser usado para importar o arquivo CSV e criar novos usuários, conforme mostrado. Para que esse script funcione em seu ambiente, será necessário atualizar os valores na primeira seção para os valores corretos do seu ambiente.

Observação: a senha dos novos usuários devem estar em conformidade com as regras de complexidade de senha definidas para o diretório. Observação: A conta do administrador especificada aqui deve ser de um administrador no diretório especificado

###
### These are vairable you need to update to reflect your environment
###

$Admin = "Admin@contoso.com"
$AdminPassword = "my password"
$Directory = "contoso.com"
$NewUserPassword = "newuserspasswords"
$CsvFilePath = "C:\work\users.csv"


###
### Create a PowerShell connection to my directory. If you do not want to specify the password in the script, you can simply replace this with "Connect-AzureAD", which will prompt for a username and password.
###

$SecPass = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($Admin, $SecPass)
Connect-AzureAD -Credential $cred

###
### Create a new Password Profile for the new users. We'll be using the same password for all new users in this example
###

$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordProfile.Password = $NewUserPassword

###
### Import the csv file. You will need to specify the path and file name of the CSV file in this cmdlet
###

$NewUsers = import-csv -Path $CsvFilePath

###
### Loop through all new users in the file. We'll use the ForEach cmdlet for this.
###

Foreach ($NewUser in $NewUsers) { 

###
### Construct the UserPrincipalName, the MailNickName and the DisplayName from the input data in the file 
###

    $UPN = $NewUser.Firstname + "." + $NewUser.LastName + "@" + $Directory
    $DisplayName = $NewUser.Firstname + " " + $NewUser.Lastname + " (" + $NewUser.Department + ")"
    $MailNickName = $NewUser.Firstname + "." + $NewUser.LastName

###
### Now that we have all the necessary data for to create the new user, we can execute the New-AzureADUser cmdlet  
###

    New-AzureADUser -UserPrincipalName $UPN -AccountEnabled $true -DisplayName $DisplayName -GivenName $NewUser.FirstName -MailNickName $MailNickName -Surname $NewUser.LastName -Department $Newuser.Department -JobTitle $NewUser.JobTitle -PasswordProfile $PasswordProfile

###
### End the Foreach loop
###
    }

Observação: depois de executar esse script com êxito, os novos usuários terão sido criados no Azure Active Directory. Não que, como especificamos -AccountEnabled = $True, os novos usuários podem usar imediatamente sua senha para entrar no diretório. Se você não quiser que as contas de usuários estejam ativas diretamente após a execução do script, você poderá especificar -AccountEnabled = $False e habilitar as contas posteriormente usando o cmdlet Set-AzureADUser.