我对XML的使用不是很熟悉,所以这可能对大多数人来说都是一个基本问题...
我想从Get-ChildItem中收集信息,与Get-Acl组合,并将其存储在XML文件中,以便稍后在PowerShell中使用。
问题在于:为了使用Get-Acl,我必须在管道内使用foreach循环,这反过来又会改变对象类型为system.string。因此,当我将其导出到XML时,它几乎只是一个平面文件,而不是表结构。
如何恢复表结构?
如果我只执行此命令,我可以获得表结构:
Get-ChildItem . -Recurse |
Select FullName, PSIsContainer, CreationTimeUTC, LastAccessTimeUtc, Length |
Export-Clixml .\STIGTest\Baseline_1.xml
当我执行这个命令时,会得到所需的平面文件。
Get-ChildItem . -Recurse |
foreach-object {$AclOwner = (get-acl $_.pspath).owner; $_.Fullname, $_.PSIsContainer, $_.CreationTimeUtc, $_.LastAccessUtc, $_.Length, $AclOwner} |
Export-Clixml .\STIGTest\Baseline_2.xml
我看到过可以将系统对象转换为字符串,但似乎找不到可以反向操作的方法。如果它们保持为系统对象,那么XML文件将保留表格结构吗?