0

短い:

Get-ChildItem IIS:\Sites
Get-ChildItem IIS:\Sites | Get-CliXml sites.xml

あるものを文字列として、別のものを xml として返します。なんで?


長く:
走るとき

Get-ChildItem IIS:\Sites

私は次の行で何かを取得します

Name             ID    State    Phys...
Default Web Site 1     Started  C:\i...
MyTestSite       2     Started  C:\i...

しかし、次のように Export-CliXml にパイプすると:

Get-ChildItem IIS:\Sites | Get-CliXml sites.xml

「Default Web Site」または「MyTestSite」が含まれていると何も表示されません。=> 文字列と xml に共通点はありません。

Get-Process で同じことをすると

Get-Process | Export-CliXml processes.xml

出力ファイルで自分のプロセスを見つけることができます。=> 文字列の内容は xml で確認できます。


Get-ChildItems IIS:\Sites は 1 つのテキストと何か他のものを xmlとして出力するのに、Get-Process はテキストと xml とほぼ同じ出力をするのはなぜですか?
私が誤解したのは何ですか?

問題は、Get-ChildItem iis:\sites から例外が発生する可能性があると思いますが、出力は引き続き生成されます。xml出力も問題ないようです。


更新:
私がするとき

Get-ChildItem IIS:\Sites | select Name,ID,State,PhysicalPath | Get-CliXml sites.xml

探している値を取得します。

バインディングを追加すると

Get-ChildItem IIS:\Sites | select Name,ID,State,PhysicalPath,Bindings | Get-CliXml sites.xml

2 つのサイトのみが繰り返され、エラー メッセージが表示されます。とにかく、xmlは問題ありません。(私が信じているコードのいくつかのよく構築されたtry-catch)

4

1 に答える 1

0

誰かがそれを肯定または否定できますか

get-childitem iis:\sites

多くのオブジェクト (文字列や整数ではない) を持つオブジェクトを返し、
これがパイプされたときに

export-clixml

コードはすべてのプロパティで ToString を実行し、それらの型名を返します。

上記の場合(おそらくそうです)、解決策は次のとおりです

Get-ChildItem IIS:\Sites | select Name,ID,State,PhysicalPath | Get-CliXml sites.xml

ただし、Binding のような複雑なプロパティは対象外です。

于 2012-08-09T12:52:13.890 に答える