2017-07-04 3 views
1

非常に単純な概念で、変数からExchange OPATH受信者フィルタ構文を作成する必要があります。Powershell String Expansion Conundrum

$rf = { ((Company -eq $company_name) -and (Alias -ne $null)) } 

会社名は単純な文字列です。

Set-AddressListコマンドを実行しようと、私はCannot bind parameter 'RecipientFilter' to the target, Invalid Filter Syntaxエラー

を受信したとき、私は、文字列と変数を連結する多くの方法を試してみましたが、私場合、Exchangeは、このRecipientFilterパラメーターのための通常の文字列を期待されていないようです作業フィルタを変数ベースの連結文字列に変換すると、すべて動作しなくなる。

+1

"*文字列と変数を連結する方法はたくさんありました*" - 本当ですか?あなたのコードはスクリプトブロックであり、文字列ではないからです... – TessellatingHeckler

答えて

0

興味深い! this technet articleによれば、-ReceipientFilter であり、文字列を受け入れるはずです。 Set-AddressListがその文字列の構文検証を行うが、文字列は文字列であると私は驚かないだろう。

$ rfあなたが上で定義したように、文字列ではありませんが、それはScriptBlockです。ここに私が走ったものです:

$rf = '{ (($Company -eq "Contoso") -and ($Alias -ne $null)) }' 

私も、上のテストするためにExchange環境を持っていない:

$Company = "Contoso" 
$Alias = "*jerry*" 
$rf = { (($Company -eq "Contoso") -and ($Alias -ne $null)) } 
$rf | Get-Member 

$ RFを包む=単一引用符で割り当ては、私たちに文字列を取得します。それがあなたのために働かないならば、完全なSet-AddressListコマンドを提供して診断することができますか?

関連する問題