短い:
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)