Importera data till min katalog
Det finns flera sätta att använda PowerShell för att importera data till din katalog, men det vanligaste sättet är att använda en CSV-fil. Filen kan antingen skapas manuellt, till exempel i Excel, eller så kan den exporteras från en befintlig datakälla, till exempel en SQL-databas eller ett HR-program. Här följer några vanliga scenarier för att importera data till Azure Active Directory:
Massregistrera nya användare
Om du vill massregistrera användare i Azure Active Directory och du har en .CSV-fil som innehåller information om de nya användarna du vill registrera, behöver du tänka på de här sakerna:
- Du behöver etablera eller implementera en namngivningskonvention för användarnamn, visningsnamn och alias. Ett exempel skulle kunna vara: användarnamn skapas från användarens efternamn, följt av en punkt, följt av förnamnet. Så John Smith i contoso.com skulle ha användarnamnet Smith.John@contoso.com. Du behöver implementera liknande regler för visningsnamn. Du kanske lägger till avdelningsnamnet till visningsnamnet, till exempel John Smith (ekonomi) och för alias.
- Du behöver implementera en konvention för det initiala lösenordet för den nyregistrerade användaren och du behöver komma på ett säkert sätt för nya användare att få sina lösenord på. De metoder som vanligen används för det här är att generera ett slumpmässigt lösenord och e-posta det till nya användare eller deras chef.
Under förutsättning att du har etablerat dessa, kan vi ta en titt på vad .CSV-filen vi använder för att registrera nya användare behöver innehålla. Här är ett exempel på CSV-filen vi använder i den här artikeln:
Firstname,MiddleInitials,Lastname,Department,JobTitle
Peter,S,Fischer,Development,Manager
James,T,McGuire,Research,Assistant
Karen,R,Cristo,Sales,Director
Om du vill massregistrera de här användarna med PowerShell, behöver vi utföra flera steg:
- Konfigurera en PowerShell-session med din katalog. Vi använder cmdleten
Connect-AzureAD
för det här. - Importera data från CSV-filen i din PowerShell-session med hjälp av cmdleten
Import-CSV
. - Skapa de parametrar som krävs i varje rad i filen för att registrera en ny användare
- Kör cmdleten
New-AzureADUser
för att registrera den nya användaren
Om du skulle använda det här skriptet i en produktionsmiljö, vill du antagligen lägga till några ytterligare delar, som:
- Felhantering – vad som ska hända om en användare inte kan registreras
- Körningsrapportering – ge en översikt av vad skriptet har gjort, när det har kört klart: antalet användare som registrerats osv.
Men vi hoppar över det här för tillfället och koncentrerar oss på kärnfunktionerna.
Här är skriptet som du kan använda för att importera CSV-filen som visas och registrera nya användare. För att det här skriptet ska fungera i din miljö, behöver du uppdatera värdena i det första avsnittet till värden för din miljö.
Obs: Lösenordet för de nya användarna måste överensstämma med komplexitetsreglerna för lösenord som du har ställt in för din katalog. Obs: Administratörskontot som du anger här, måste vara en administratör i katalogen du anger
###
### 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
###
}
Obs! När det här skriptet har körts har de nya användarna skapats i Azure Active Directory. Inte ethat eftersom vi har angett -AccountEnabled = $True, de nya användarna kan omedelbart använda sitt lösenord för att logga in på katalogen. Om du inte vill att användarkontona ska vara aktiva direkt efter att du har kört skriptet kan du ange -AccountEnabled = $False och aktivera kontona senare med hjälp av cmdleten Set-AzureADUser.