Variables Powershell变量格式

Variables Powershell变量格式,variables,powershell,Variables,Powershell,我试图调用一个变量,并将其用作命令中的-forwardingsmtpaddress。为什么我可以在命令中键入电子邮件地址,它可以工作。变量是一个字符串值。头球把事情搞砸了吗 变量和输出为: $EmailAddress Emailaddress ---------------- user@domain.com C:\Windows\system32> Set-Mailbox -identity $loginid -ForwardingSmtpAddress "$emai

我试图调用一个变量,并将其用作命令中的-forwardingsmtpaddress。为什么我可以在命令中键入电子邮件地址,它可以工作。变量是一个字符串值。头球把事情搞砸了吗

变量和输出为:

  $EmailAddress

  Emailaddress
 ----------------
 user@domain.com 


 C:\Windows\system32> Set-Mailbox -identity $loginid -ForwardingSmtpAddress "$emailaddress"

 emailaddress                                                                                                                                 

 ------------                                                                                                                                 

 user@domain.com                                                                                                                  

 ' isn't a valid SMTP address. Property Name: ForwardingSmtpAddress
 At C:\Users\xxx\AppData\Local\Temp\tmp_eaj0q1mh.s1i\tmp_eaj0q1mh.s1i.psm1:51509 char:9
 +         $steppablePipeline.End()
 +         ~~~~~~~~~~~~~~~~~~~~~~~~
 + CategoryInfo          : NotSpecified: (0:Int32) [Set-Mailbox], DataValidationException
 + FullyQualifiedErrorId : BDB22E0A,Microsoft.Exchange.Management.RecipientTasks.SetMailbox
 + PSComputerName        : mail01

看起来$emailaddress是一个属性为emailaddress的对象

尝试:


编辑:如果变量真的是一个字符串,那么是的,该标题肯定会把它弄糟。

您的变量可能是一个PSObject而不是字符串。键入
$EmailAddress.GetType()
以查看其类型。@Bill_Stewart将其固定-如果它是一个字符串,当您获取该值时,它将不会有EmailAddress标头。我将其管道化以获取成员并查看typename.system.string。但是gettype将名称字符串和basetype显示为system.object。当我键入$emailaddres.emailaddress时,我无法调用它。它未列为可选择的选项,结果为空。我在处理它时将其导出到字符串。除了-forwardingsmtpaddress和-forwardingaddress之外,您的解决方案都有效。我想要forwardingaddress,以便在GUI中看到它。
Set-Mailbox -identity $loginid -ForwardingSmtpAddress $emailaddress.emailaddress