2017-07-19 111 views
1

我分配Get-Mailbox命令給一個變量,這樣我可以將此輸出到一個日誌文件:截斷可變文本字符串

$SmtpForwardingAddress = Get-Mailbox -Identity $Upn | Select ForwardingSmtpAddress 
"Email forwarding set to $($SmtpForwardingAddress)" | Tee-Object $logfilepath -Append 

變量$SmtpForwardingAddress回報:

「的電子郵件轉發集到@ {ForwardingSmtpAddress = smtp:[email protected]}「

我想修剪這個只是[email protected]值。我試了幾件事情,但得到這樣的錯誤下面:

方法調用失敗,因爲[Selected.System.Management.Automation.PSCustomObject]不包含名爲「子」的方法。

方法調用失敗,因爲[Selected.System.Management.Automation.PSCustomObject]不包含名爲「微調」的方法。

任何想法,我可以做什麼來獲得理想的結果?

+0

'$ SmtpForwardingAddress'的輸出是什麼? – TheIncorrigible1

+0

如上所示: 「@ {ForwardingSmtpAddress = SMTP:[email protected]}」 – jshizzle

回答

3

一個對象被存儲到像你期待不具備這些方法$SmtpForwardingAddress代替[String]

試試這個:

"Email forwarding set to $(($SmtpForwardingAddress.ForwardingSmtpAddress).TrimStart('smtp:')) 
+0

阿上感謝點。因此,因爲它是一個正在存儲的對象,所以需要添加屬性.ForwardingSmtpAddress以提供修剪方法以使用某些內容? – jshizzle

+0

我*假設*對象的屬性指向一個字符串是'smtp:Username @ domain.com'。您可以通過使用'.GetType()'方法來確認。 '@ {}'表示PowerShell對象。例如'@()'是一個數組。 – TheIncorrigible1

+0

是,$ SmtpForwardingAddress.GetType()返回PSCustomObject而$ SmtpForwardingAddress.ForwardingSmtpAddress.GetType()返回的字符串。好知道感謝 – jshizzle

1

在PowerShell中總是有多個解決方案。

$ForwardingAddress = (Get-Mailbox -Identity $Upn).ForwardingSmtpAddress.Split(':')[1] 
"Email forwarding set to $ForwardingAddress" | Tee-Object $logfilepath -Append 
+0

不錯,謝謝,雖然這不喜歡。[1]在最後。把這個結果分成三個獨立的行,但顯然只是想要我敢說的結果是[1]要做的事情? – jshizzle

+0

固定它已經,多餘的點沒有了;-) – LotPings

+0

開裂的東西。總是很高興有一個選擇。 – jshizzle