<Configuration>
  <ViewDefinitions>
    <View>
      <Name>BaseDismObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.BaseDismObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>LogPath</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>ImageObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.ImageObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Path</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Online</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>RestartNeeded</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>ImageObjectWithStateList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.ImageObjectWithState</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Path</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Online</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageHealthState</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>RestartNeeded</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
    <Name>EditionObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.EditionObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Edition</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>MountedImageInfoObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.MountedImageInfoObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Path</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImagePath</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageIndex</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>MountMode</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>MountStatus</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>AppxPackageObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.AppxPackageObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>DisplayName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Version</PropertyName>
              </ListItem>
              <ListItem>
                  <Label>Architecture</Label>
                  <ScriptBlock>
                    $a = "Unknown"
                    if($_.Architecture -eq 0){ $a="x86" }
                    elseif($_.Architecture -eq 5) {$a="arm"}
                    elseif($_.Architecture -eq 9) {$a="x64"}
                    elseif($_.Architecture -eq 6) {$a="ia64"}
                    elseif($_.Architecture -eq 11) {$a="neutral"}
                    return $a
                  </ScriptBlock>
                </ListItem>
              <ListItem>
                <PropertyName>ResourceId</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>PackageName</PropertyName>
              </ListItem>
              <ListItem>
                  <Label>Regions</Label>
                  <ScriptBlock>
                    $r = ""
                    if($_.Regions){ $r=$_.Regions }
                    return $r
                  </ScriptBlock>
                </ListItem>            
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>BasicImageInfoObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.BasicImageInfoObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>ImageIndex</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageDescription</PropertyName>
              </ListItem>
              <ListItem>
                <Label>ImageSize</Label>
                <ScriptBlock> return $_.ImageSize.ToString("N0", [System.Threading.Thread]::CurrentThread.CurrentCulture) + " bytes" </ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>ImageInfoObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.ImageInfoObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>ImageIndex</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageDescription</PropertyName>
              </ListItem>
              <ListItem>
                <Label>ImageSize</Label>
                <ScriptBlock> return $_.ImageSize.ToString("N0", [System.Threading.Thread]::CurrentThread.CurrentCulture) + " bytes" </ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Architecture</Label>
                <ScriptBlock>
                $a = "Unknown"
                if($_.Architecture -eq 0){ $a="x86" }
                elseif($_.Architecture -eq 5) {$a="arm"}
                elseif($_.Architecture -eq 9) {$a="x64"}
                elseif($_.Architecture -eq 6) {$a="ia64"}
                return $a
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>Hal</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Version</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SPBuild</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SPLevel</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>EditionId</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>InstallationType</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProductType</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProductSuite</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SystemRoot</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Languages</Label>
                <ScriptBlock>
                $out = ""
                $i=0
                foreach($a in $_.Languages) {
                $out = $out + $a 
                if($i -eq $_.DefaultLanguageIndex) { $out=$out+" (Default)"}
                if($i -lt ($_.Languages.count-1)) {$out=$out+"`r`n"}
                $i=$i+1 
                } 
                return $out;
                </ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>WimImageInfoObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.WimImageInfoObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>ImageIndex</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ImageDescription</PropertyName>
              </ListItem>
              <ListItem>
                <Label>ImageSize</Label>
                <ScriptBlock> return $_.ImageSize.ToString("N0", [System.Threading.Thread]::CurrentThread.CurrentCulture) + " bytes" </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>WIMBoot</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Architecture</Label>
                <ScriptBlock>
                  $a = "Unknown"
                  if($_.Architecture -eq 0){ $a="x86" }
                  elseif($_.Architecture -eq 5) {$a="arm"}
                  elseif($_.Architecture -eq 9) {$a="x64"}
                  elseif($_.Architecture -eq 6) {$a="ia64"}
                  return $a
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>Hal</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Version</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SPBuild</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SPLevel</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>EditionId</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>InstallationType</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProductType</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProductSuite</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SystemRoot</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>DirectoryCount</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>FileCount</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>CreatedTime</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ModifiedTime</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Languages</Label>
                <ScriptBlock>
                  $out = ""
                  $i=0
                  foreach($a in $_.Languages) {
                  $out = $out + $a
                  if($i -eq $_.DefaultLanguageIndex) { $out=$out+" (Default)"}
                  if($i -lt ($_.Languages.count-1)) {$out=$out+"`r`n"}
                  $i=$i+1
                  }
                  return $out;
                </ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>BasicFeatureObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.BasicFeatureObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>FeatureName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>State</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>AdvancedFeatureObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.AdvancedFeatureObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>FeatureName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>DisplayName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Description</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>RestartRequired</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>State</PropertyName>
              </ListItem>
              <ListItem>
                <Label>CustomProperties</Label>
                <ScriptBlock>
                  $a = "`r`n"
                  $_.CustomProperties | foreach { $a = $a + $_.Path + "\" + $_.Name + " : " + $_.Value + "`r`n" }
                  return $a
                </ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>BasicPackageObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.BasicPackageObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>PackageName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>PackageState</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ReleaseType</PropertyName>
              </ListItem>
              <ListItem>
                <Label>InstallTime</Label>
                <ScriptBlock>
                  if ([System.DateTime]::Equals($_.InstallTime,[System.DateTime]::MinValue)) { return "" } else { return $_.InstallTime }
                </ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>AdvancedPackageObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.AdvancedPackageObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>PackageName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Applicable</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Copyright</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Company</PropertyName>
              </ListItem>
              <ListItem>
                <Label>CreationTime</Label>
                <ScriptBlock>
                  if ([System.DateTime]::Equals($_.CreationTime,[System.DateTime]::MinValue)) { return "" } else { return $_.CreationTime }
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>Description</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>InstallClient</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>InstallPackageName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>InstallTime</Label>
                <ScriptBlock>
                  if ([System.DateTime]::Equals($_.InstallTime,[System.DateTime]::MinValue)) { return "" } else { return $_.InstallTime }
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>LastUpdateTime</Label>
                <ScriptBlock>
                  if ([System.DateTime]::Equals($_.LastUpdateTime,[System.DateTime]::MinValue)) { return "" } else { return $_.LastUpdateTime }
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>DisplayName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProductName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProductVersion</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ReleaseType</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>RestartRequired</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SupportInformation</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>PackageState</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>CompletelyOfflineCapable</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>SelfServicingPackage</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>CapabilityId</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Custom Properties</Label>
                <ScriptBlock>
                  $a = "`r`n"
                  $_.CustomProperties | foreach { $a = $a + $_.Path + "\" + $_.Name + " : " + $_.Value + "`r`n" }
                  return $a
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>Features</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>BasicCapabilityObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.BasicCapabilityObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Name</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>State</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>AdvancedCapabilityObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.AdvancedCapabilityObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Name</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>State</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>DisplayName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>Description</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>DownloadSize</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>InstallSize</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>BasicDriverObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.BasicDriverObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Driver</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>OriginalFileName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>InBox</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ClassName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>BootCritical</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProviderName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Date</Label>
                <ScriptBlock>
                  if ([System.DateTime]::Equals($_.Date,[System.DateTime]::MinValue)) { return "" } else { return $_.Date }
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>Version</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>AdvancedDriverObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.AdvancedDriverObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>Driver</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>OriginalFileName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>InBox</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ClassName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ClassDescription</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ClassGuid</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>BootCritical</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ProviderName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Date</Label>
                <ScriptBlock>
                  if ([System.DateTime]::Equals($_.Date,[System.DateTime]::MinValue)) { return "" } else { return $_.Date }
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>Version</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ManufacturerName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>HardwareDescription</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Architecture</Label>
                <ScriptBlock>
                    $a = "Unknown"
                    if($_.Architecture -eq 0){ $a="x86" }
                    elseif($_.Architecture -eq 5) {$a="arm"}
                    elseif($_.Architecture -eq 9) {$a="x64"}
                    elseif($_.Architecture -eq 6) {$a="ia64"}                  
                    return $a
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>HardwareId</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ServiceName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>CompatibleIds</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>ExcludeIds</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
        <Name>WimBootEntryObjectList</Name>
        <ViewSelectedBy>
            <TypeName>Microsoft.Dism.Commands.WimBootEntryObject</TypeName>
        </ViewSelectedBy>
        <ListControl>
            <ListEntries>
                <ListEntry>
                    <ListItems>
                        <ListItem>
                            <PropertyName>DataSourceID</PropertyName>
                        </ListItem>
                        <ListItem>
                            <PropertyName>ImageFile</PropertyName>
                        </ListItem>
                    </ListItems>
                </ListEntry>
            </ListEntries>
        </ListControl>
    </View>
    <View>
      <Name>ReservedStorageStateObjectList</Name>
      <ViewSelectedBy>
        <TypeName>Microsoft.Dism.Commands.ReservedStorageStateObject</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>ReservedStorageState</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
  </ViewDefinitions>
</Configuration>
