首页 > 解决方案 > 通过 powershell csv import 添加 O365 许可证?

问题描述

我有一个用于创建新用户的脚本,并且还想在其中添加几行,以便将 O365 许可证附加到每个创建的新用户(O365 中已经存在免费许可证),然后给一个用户访问每个用户的日历和收件箱。

到目前为止,我的工作代码是:

        Import-Csv "C:\blablabla\filename.csv" | ForEach-Object { 
    New-ADUser -Name $_.Name `
     -GivenName $_."GivenName" `
     -Surname $_."Surname" `
     -DisplayName $_."DisplayName" `
     -SamAccountName  $_."samAccountName" `
     -UserPrincipalName  $_."UserPrincipalName" `
     -Path $_."Path" `
     -AccountPassword (ConvertTo-SecureString “Pa$$w0rd” -AsPlainText -force) -Enabled $true `
     -EmailAddress $_."EmailAddress" `
     -ProfilePath $_."ProfilePath" `
     -HomeDrive $_."HomeDrive" `
     -HomeDirectory $_."HomeDirectory" `
     -ScriptPath $_."ScriptPath" `
     -Server $_."Server" `
    }
Start-ADSyncSyncCycle -PolicyType Initial

我必须添加的其他行是

Set-MsolUserLicense -UserPrincipalName "@domain.com" -AddLicenses "domain:STANDARDPACK" 
Add-MailboxPermission -Identity newuser@domain.com -User 'admin@domain.com' -AccessRight FullAccess -InheritanceType All -Automapping $false 
Add-MailboxFolderPermission -Identity newuser@domain.com:\calendar -user admin@domain.com -AccessRights Editor

我的问题是我不知道如何将最后三个命令添加到上面的脚本中,以便为从 csv 创建的每个用户执行这三个操作,以便从 csv 中提取 UPN。

我已经有一个工作脚本可以在这三行之前使用保存的凭据连接到 O365,即:

$AdminName = "admin@domain.com"
$Pass = Get-Content "C:\blablabla\O365Credentials.txt" | ConvertTo-SecureString
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminName, $Pass
Import-Module MSOnline
Connect-MsolService -Credential $cred
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $Session

我想我可以在两者之间或在脚本的开头添加这个“连接到 O365”位,但是,我只是不知道如何将这三个命令与脚本的其余部分合并。

任何帮助将不胜感激。

谢谢你。

(有没有其他人知道如何做到这一点?)

标签: powershellazure-active-directoryoffice365

解决方案


推荐阅读