我們正在嘗試爲我們的腳本創建輸入文件,而不是使用此處的字符串(@"E-mail text"@
)在代碼內對電子郵件的文本進行硬編碼。然而,似乎很難填充像$MyVariable
這樣不簡單和簡單但需要像$MyVariable.User.Name
那樣解決的變量。展開文件中的變量
無論如何,下面的代碼演示了這個問題。
HTML輸入文件
Dear $($Object.User.GivenName)
Thank you for joining the program.
代碼
$SamAccountNameManager = 'Mike'
$SamAccountNameUser = 'Bob'
$File = 'C:\Test.html'
$Object = [PSCustomObject]@{
User = Get-ADUser $SamAccountNameUser -Properties GivenName
Manager = Get-ADUser $SamAccountNameManager -Properties GivenName
}
$Template = Get-Content $File
$ExecutionContext.InvokeCommand.ExpandString($Template)
錯誤
Exception calling "ExpandString" with "1" argument(s): "Object reference not set to an instance of an obj
ect."
怎麼可能使用VAR在文本文件中輸入$Object.User.GivenName
並使其填充正確的值?
我無法從給定的(測試PowerShell中的例子重現錯誤2和5)。 –
試了一遍,只是爲了確定,仍然是同樣的錯誤。在Windows Server 2012上使用PowerShell 4.0。 – DarkLite1