Powershell赢得';t使用变量中的参数值
以下命令工作正常:Powershell赢得';t使用变量中的参数值,powershell,powershell-3.0,Powershell,Powershell 3.0,以下命令工作正常: Set-Mailbox $mailbox -EmailAddresses SMTP:am@foo.com,asmo@bar.org,toke@foobar.net 尝试使用变量中的电子邮件地址运行同一命令时崩溃 $SMTPAddresses = "SMTP:am@foo.com,asmo@bar.org,toke@foobar.net” Set-Mailbox $mailbox -EmailAddresses $SMTPAddress 错误: Set-Mailbox :
Set-Mailbox $mailbox -EmailAddresses SMTP:am@foo.com,asmo@bar.org,toke@foobar.net
尝试使用变量中的电子邮件地址运行同一命令时崩溃
$SMTPAddresses = "SMTP:am@foo.com,asmo@bar.org,toke@foobar.net”
Set-Mailbox $mailbox -EmailAddresses $SMTPAddress
错误:
Set-Mailbox : Cannot convert 'SMTP:am@foo.com,asmo@bar.org,toke@foobar.net' to the type 'Microsoft.Exchange.Data.ProxyAddressCollection' required by parameter 'EmailAddresses'. The address 'SMTP:am@foo.com,asmo@bar.org,toke@foobar.net' is invalid: The address 'am@klestrup.dk,asmo@bdk.dk,toke@bdk.dk' is not a valid SMTP address.
At line:1 char:39
+ Set-Mailbox $mailbox -EmailAddresses $SMTPAddresses
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Mailbox], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.Exchange.Management.RecipientTasks.SetMailbox
该变量是一个字符串
$SMTPAddresses.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
知道是什么原因吗?这是一个由两个电子邮件地址字符串组成的数组:
$SMTPAddresses = "SMTP:am@foo.com","asmo@bar.org,toke@foobar.net”
这是一个由两个电子邮件地址组成的字符串,用逗号连接:
$SMTPAddresses = "SMTP:am@foo.com,asmo@bar.org,toke@foobar.net”
错误消息是不言自明的<代码>am@foo.com,asmo@bar.org,toke@foobar.net不是电子邮件地址。试着这样做:
$SMTPAddresses = 'SMTP:am@foo.com','SMTP:asmo@bar.org','SMTP:toke@foobar.net'
Set-Mailbox $mailbox -EmailAddresses $SMTPAddresses
$emails = @()
$emails += "SMTP:primary.address@domain.com"
$emails += "smtp:email2@domain.com"
# I'm splatting here but you can use whatever approach you prefer
$params = @{}
$params += @{"EmailAddresses" = $emails}
使用xxx UnifiedGroups命令的Office 365 powershell上的一个特性 如果要像这样构造命令:
$SMTPAddresses = 'SMTP:am@foo.com','SMTP:asmo@bar.org','SMTP:toke@foobar.net'
Set-Mailbox $mailbox -EmailAddresses $SMTPAddresses
$emails = @()
$emails += "SMTP:primary.address@domain.com"
$emails += "smtp:email2@domain.com"
# I'm splatting here but you can use whatever approach you prefer
$params = @{}
$params += @{"EmailAddresses" = $emails}
如果出现此错误,请尝试确保包含租户地址,如下所示:
$emails = @()
$emails += "SMTP:primary.address@domain.com"
$emails += "smtp:email2@domain.com"
$emails += "smtp:email@YourTenant.onmicrosoft.com"
$params = @{}
$params += @{"EmailAddresses" = $emails}
注意:最初我使用转义克服了这个错误,但这是一个骗局。在获得完整的端到端工作示例后,您需要一个“MOERA”地址(与365租户匹配的地址),但该命令会给出错误消息,说明无法转换为“Microsoft.Exchange.Data.ProxyAddressCollection”类型