PowerShell批量创建Azure AD账户

时间:2024-04-10 11:10:51

Azure AD是微软云Azure和Office365的账户管理平台,而生成Azure AD中的账户有多重方式,可以通过Portal页面创建、PowerShell创建、AAD Connect同步本地域账户等,本页主要是记录通过AD导出账户信息,并在通过PowerShell批量创建账户。

导出AD账户信息命令

导出本地AD域中账户备用,导出字段信息根据实际需要保留

Get-ADUser -filter * -SearchBase 'OU=子OU,OU=父OU,DC=域名,DC=com或local' -Properties * | Where-Object {$_.Enabled -eq $True} | select userPrincipalName,SamAccountName,Displayname,Department,Title,Office,Officephone,Mobile,Homepage,EmployeeID,Mail  | export-csv D:\Userlist.csv

本地PowerShell升级

PowerShell的版本目前已经是5.1,而win7 & 2008 R2的PowerShell默认版本为2.0, 所以建议首先升级本地PowerShell。
PowerShell 5.x版本下载链接:
https://www.microsoft.com/en-us/download/details.aspx?id=54616
根据系统版本不同选择对应的版本下载。
PowerShell批量创建Azure AD账户PowerShell批量创建Azure AD账户
下载完成后解压得到更新补丁文件,运行安装即可
PowerShell批量创建Azure AD账户
PowerShell批量创建Azure AD账户
PowerShell批量创建Azure AD账户
安装完成后,重启。
PowerShell批量创建Azure AD账户
重新登录操作系统后,打开PowerShell窗口,利用命令:$PSVersionTable 查看当前PowerShell的版本
PowerShell批量创建Azure AD账户

安装Azure AD v2版本模块

若已经安装请忽略此步骤
安装命令:

PS C:\Install-Module -Name AzureAD

中间两次输入确认“Y”
PowerShell批量创建Azure AD账户
PowerShell批量创建Azure AD账户

导入Azure AD模块

PS C:\Import-Module AzureAD
PS C:\Get-Module

PowerShell批量创建Azure AD账户

批量导入账户

本段是自动导入CSV文件中账户,并把这些账户自动添加同时创建的安全组里。

以下脚本需要根据实际情况修改四处

  • Azure的管理员账户
  • Azure的管理员密码
  • 需要创建的部门组名
  • 批量导入账户的初始密码
  • Csv文件的存放路径
Import-Module AzureAD
$AdminAccount = "[email protected]"   # Azure管理员账户
$AdminPW = "xxxxxxxxxx" | ConvertTo-SecureString -AsPlainText -Force   #修改引号中Azure管理员的密码
$credential = New-Object System.Management.Automation.PSCredential($AdminAccount,$AdminPW)
Connect-AzureAD -AzureEnvironmentName AzureChinaCloud -Credential $credential
$UserPW = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$UserPW.Password = "xxxxxxxxxxxx"  # 修改引号中待创建的用户的初始密码
$GroupName = "GroupName"    #创建部门组的名称
$newGroup = New-AzureADGroup -DisplayName $GroupName -MailEnabled $false -MailNickName $false -SecurityEnabled $true
#指定导入文件的路径
Import-Csv C:\Userlist.csv | ForEach-Object {New-AzureADUser -UserPrincipalName $_.userPrincipalName -DisplayName $_.Displayname`
 -PasswordProfile $UserPW -AccountEnabled $true -MailNickName $false `
 } | select Objectid | foreach {Add-AzureADGroupMember -ObjectId $newGroup.ObjectId -RefObjectId $_.ObjectId}

本页结束,脚本仅供参考,谢谢。