Partilhar via


Importar dados para o meu diretório

Existem várias formas de utilizar o PowerShell para importar dados para o seu diretório, mas o método mais frequentemente utilizado consiste em utilizar um ficheiro CSV. Este ficheiro pode ser criado manualmente, por exemplo com o Excel, ou pode ser exportado a partir de uma origem de dados existente, como uma base de dados do SQL Server ou uma aplicação de RH. Seguem-se alguns cenários comuns para importar dados para o Azure Active Directory:

Criação em massa de novos utilizadores

Se quiser criar utilizadores em massa no Azure Active Directory e tiver um ficheiro csv que contém informações sobre os novos utilizadores que pretende criar, aqui estão algumas considerações:

  1. É necessário estabelecer ou implementar uma Convenção de Nomenclatura para nomes de utilizador, nomes a apresentar e aliases. Um exemplo seria: os nomes de utilizador são construídos a partir do apelido do utilizador, seguidos por um ponto final, seguidos do nome próprio. Assim, o nome de utilizador "John Smith" em contoso.com teria de ser "Smith.John@contoso.com". Terá de implementar regras semelhantes para os nomes a apresentar - talvez queira adicionar o nome de departamento ao nome a apresentar, tal como "John Smith (Contabilidade)” - e para o alias.
  2. Tem de implementar uma convenção para a palavra-passe inicial do utilizador recém-criado e terá de descobrir uma forma para os novos utilizadores receberem a palavra-passe de uma forma segura. Os métodos utilizados frequentemente para efetuar esta ação passam por gerar uma palavra-passe aleatória e enviar para o novo utilizador ou o respetivo gestor.

Presumindo que já os estabeleceu, vamos dar uma vista de olhos ao que o ficheiro CSV que vamos utilizar para criar os utilizadores novos tem de conter. Eis um exemplo do ficheiro CSV que estamos a utilizar neste artigo:

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

Para criar estes utilizadores em massa através do PowerShell vamos precisar de efetuar vários passos:

  1. Configurar uma sessão do PowerShell com o seu diretório - utilizaremos o cmdlet Connect-AzureAD para tal.
  2. Importar os dados a partir do ficheiro CSV na sua sessão do PowerShell com o cmdlet Import-CSV.
  3. Para cada linha no ficheiro, criar os parâmetros necessários para criar um novo utilizador
  4. Executar o cmdlet para criar o novo utilizador com o cmdlet New-AzureADUser

Se ia utilizar este script num ambiente de produção, provavelmente também gostaria de adicionar algumas partes adicionais, tais como:

  • Tratamento de erros - o que fazer se não é possível criar um utilizador
  • Relatório de execução - depois de concluído o script, forneça uma descrição geral do que este concretizou: número de utilizadores criados, etc.

Vamos ignorar estas partes por agora e concentrar na funcionalidade principal.

Eis o script que pode utilizar para importar o ficheiro CSV, conforme mostrado, e criar novos utilizadores. Para este script funcionar no seu ambiente, terá de atualizar os valores na primeira secção para os valores corretos para o seu próprio ambiente.

Nota: a palavra-passe dos novos utilizadores tem de estar em conformidade com as regras de complexidade de palavra-passe que configurou para o seu diretório. Nota: a conta de administrador que está a especificar aqui tem de ser um administrador no diretório que está a especificar

###
### 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
###
    }

Nota: Após a execução com sucesso deste script, os novos utilizadores terão sido criados no seu Diretório Ativo Azure. Não é que, uma vez que especificamos -AccountEnabled = $True, os novos utilizadores podem usar imediatamente a sua palavra-passe para iniciar scontabilidade no diretório. Se não quiser que as contas dos utilizadores estejam ativas diretamente após a execução do script, pode especificar -AccountEnabled = $False e ativar as contas mais tarde utilizando o Set-AzureADUser cmdlet.