【发布时间】:2022-01-05 02:06:22
【问题描述】:
我正在准备powershell脚本,通过powershell脚本将本地邮箱移动到在线邮箱,迁移后将分配许可证
下面是示例:
#Created the user in AD , not mentioned here
Enable-Mailbox -Identity "$firstname $lastname" -Database "XXXXXXX"
Start-Sleep -Seconds 10
Set-Mailbox "$firstname.$lastname" -PrimarySmtpAddress "$firstname.$lastname@XXXXXXX" -EmailAddressPolicyEnabled $false
一旦用户邮箱从本地交换同步到在线交换,是否有任何逻辑,如 if-else 或其他我可以在这里使用的触发以下命令?所以下面的命令成功运行,没有任何问题或错误。
Connect-ExchangeOnline
$Mailbox = "$firstname.$lastname@XXXXXXX"
$Endpoint = "XXXXXXXX"
$TargetDomain = "XXXXXXXXXXX"
$Cred = Get-Credential
New-MoveRequest -Identity $Mailbox -Remote -RemoteHostName $Endpoint -TargetDeliveryDomain $TargetDomain -RemoteCredential $Cred -Batchname "$Mailbox Move to O365"
是否有任何逻辑,如 if-else 或其他我可以在这里使用的逻辑,一旦邮箱迁移完成,就会触发下面的命令,然后执行下面的命令?
#Assign the license once migration is done successfully
Set-MsolUser -UserPrincipalName $Mailbox -UsageLocation US
Set-MsolUserLicense -UserPrincipalName $Mailbox -AddLicenses "XXXXXXXXXXXX"
注意-我可以在两者之间使用Start-Sleep -Seconds XXX,但每次同步时间都不一样
【问题讨论】:
-
是的,PowerShell 确实使用了
if..else语句。请参阅文档中的this 文章。
标签: powershell office365 exchange-server