在Exchange Online中创建公用文件夹和邮件启用时,默认电子邮件地址为@ domain.onmicrosoft.com
我们的文件夹名称是“NNNNN_Folder name”,其中NNNNN是一个5位数字。
我想将公用文件夹的主电子邮件地址设置为NNNNN@domain.com
我尝试过很多变种:
Get-PublicFolder -Recurse -Identity "\X\Y\Z"|
Sort-Object Identity –Descending|
Select-Object -first 4|
Set-MailPublicFolder -PrimarySmtpAddress {$_.name.substring(0,5)+"@domain.com"}
并收到有关解释生成的电子邮件地址的错误:
Cannot process argument transformation on parameter 'PrimarySmtpAddress'. Cannot convert value
"$_.name.substring(0,5)+"@domain.com"" to type "Microsoft.Exchange.Data.SmtpAddress". Error: "The email
address "$_.name.substring(0,5)+"@domain.com"" isn't correct. Please use this format: user name, the @ sign,
followed by the domain name. For example, tonysmith@contoso.com or tony.smith@contoso.com."
+ CategoryInfo : InvalidData: (:) [Set-MailPublicFolder], ParameterBindin...mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-MailPublicFolder
+ PSComputerName : outlook.office365.com
我也尝试在同一操作中将PublicFolder的EmailAddress设置为NNNNN@domain.com。
-EmailAddresses @{$_.name.substring(0,5)+"@domain.com"}
它似乎没有评估这个论点,或者我错过了其他的东西?
如果我更改Set-MailPublicFolder ...
% {$_.name.substring(0,5) + "@domain.com"}
我确实看到了我期待的电子邮件地址。 谢谢,
克雷格。
答案 0 :(得分:0)
查看此版本。
从Microsoft命令文档中,需要identity参数(请参阅this)
我也不确定它是否可以在不指定foreach的情况下使用数组并处理每个人。
查看此修改版本。
$PublicFolders = Get-PublicFolder -Recurse -Identity "\X\Y\Z"| Sort-Object Identity –Descending | Select-Object -first 4
$PublicFolders | foreach {
$NewEmail = "$($_.name.substring(0,5))@domain.com"
Write-Host "Settings MailPublicFolder with name $($_.Identity) to $NewEmail" -ForegroundColor Cyan
Set-MailPublicFolder -Identity $_.Identity -PrimarySmtpAddress $NewEmail
}