1

Lyncプロビジョニングを処理するスクリプトを作成するプロジェクトがあります。可能な限りモジュール化するようにしています。これは、各スクリプトファイルを独自のディレクトリに保持し、独自の「scopedConfig」と「centralXML」をグローバルに役立つタグとともに保持することで最も効果的に機能すると思います。

私が抱えている問題は、Get-contentを使用して2つのXMLファイルを連続してインポートしようとしたときです。

私が持っているコードは次のとおりです。

# Import CentralConfig
[xml]$centralXML = Get-content ".\centralConfig.xml"

# Import ScopedConfig
[xml]$scopedXML = Get-content ".\ExecutionResources\ScopedConfigfiles\HostConsole\config.xml"

私は次の方法でインポートの成功をテストしています。

"------------------"
"------------------"
$centralXML
"------------------"
$scopedXML
"------------------"
"------------------"

結果と問題の場所は次のとおりです。

------------------
------------------
Global_ConfigRoot
-----------------
Global_ConfigRoot
------------------

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

両方のXMLのルートノードを出力として期待していましたが、代わりに最初のXMLのルートノードのみを取得しました。$ scopedXMLが最初になるように入れ替えると、$ scopedXMLルートノードのみが取得され、$centralXMLからは何も取得されません。

注意すべき興味深い点は、2番目のXMLをGet-memberにパイプすると、通常はすべてのXML関連のものとそのプロパティが表示されると予想されるため、大量の空白が発生することです。

------------------
------------------
Global_ConfigRoot
-----------------
Global_ConfigRoot
------------------














































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

私はこれまでこれに出くわしたことがありません、誰かが何か提案がありますか?

(PSは投稿ルールを守るために最善を尽くしました。何か問題がある場合は、ここに投稿するのは初めてです)

4

1 に答える 1

0

関数、コマンドレット、またはスクリプトは、AN オブジェクトのみを返すことができます。両方の変数を呼び出すように複数を返すと、実際にはobject[]両方の項目 (+ 印刷した行) を含む配列が返されます。オブジェクトはそのままで、このコレクションに追加されただけです。

これで、スクリプトが返されたオブジェクトを出力 (表示) すると、内部に複数のオブジェクトがあったため、テーブルとしてフォーマットされます。テーブルには 1 つのヘッダー (列名) のみを含めることができ、配列を表示する場合、最初の項目 (この場合は ) から列 (プロパティ) を取得します$centralxml。そのため、xml とサーバーの 2 つの列が表示されます。

それらを分離したい場合は、スクリプトにそれらを別々のテーブルにフォーマットするように指示する必要があります。元:

# Import CentralConfig
[xml]$centralXML = Get-content ".\test.xml"

# Import ScopedConfig
[xml]$scopedXML = Get-content ".\test2.xml"

$centralXML | Format-Table
$scopedXML | Format-Table
于 2013-01-21T15:26:00.053 に答える