AzurePSDrive.Format.ps1xml

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
  <Controls>
    <Control>
      <Name>AzurePSDriveFormatControl</Name>
      <CustomControl>
        <CustomEntries>
          <CustomEntry>
            <CustomItem>
              <Frame>
                <LeftIndent>4</LeftIndent>
                <CustomItem>
                  <Text>Directory: </Text>
                  <ExpressionBinding>
                      <ScriptBlock>$drv = $_.PSDRIVE; $_.PSPARENTPATH -replace ".*#" -replace "^.[^\\/]*","${drv}:"</ScriptBlock>
                  </ExpressionBinding>
                  <NewLine/>
                </CustomItem>
              </Frame>
            </CustomItem>
          </CustomEntry>
        </CustomEntries>
      </CustomControl>
    </Control>
  </Controls>

  <ViewDefinitions>
    <View>
      <Name>AzurePSDriveDefaultView</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.PowerShell.SHiPS.SHiPSDirectory</TypeName>
          <TypeName>AllResources</TypeName>
          <TypeName>StorageAccount</TypeName>
          <TypeName>Blobs</TypeName>
          <TypeName>Blob</TypeName>
          <TypeName>FileShareLeaf</TypeName>
          <TypeName>FileFolder</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
        <AutoSize/>
        <TableHeaders>
          <TableColumnHeader><Label>Mode</Label></TableColumnHeader>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <Wrap/>
            <TableColumnItems>
              <TableColumnItem><PropertyName>SSItemMode</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
          </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>AllWebAppTable</Name>
      <ViewSelectedBy>
          <TypeName>AzurePSDriveWebApp</TypeName>
          <TypeName>Microsoft.Azure.Management.WebSites.Models.Site</TypeName>
          <TypeName>Microsoft.Azure.Management.WebSites.Models.Resource</TypeName>
      </ViewSelectedBy>
       <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
        <TableHeaders>
        <TableColumnHeader><Width>30</Width><Label>Name</Label></TableColumnHeader>
        <TableColumnHeader><Width>8</Width><Label>State</Label></TableColumnHeader>
        <TableColumnHeader><Width>30</Width><Label>ResourceGroup</Label></TableColumnHeader>
        <TableColumnHeader><Width>50</Width><Label>EnabledHostNames</Label></TableColumnHeader>
        <TableColumnHeader><Width>20</Width><Label>Location</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
        <TableRowEntry>
          <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>State</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>ResourceGroup</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>EnabledHostNames</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          </TableColumnItems>
        </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>AllResourcesTable</Name>
      <ViewSelectedBy>
          <TypeName>AzurePSDriveResourceType</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <TableHeaders>
        <TableColumnHeader><Width>50</Width><Label>Name</Label></TableColumnHeader>
        <TableColumnHeader><Width>40</Width><Label>ResourceType</Label></TableColumnHeader>
        <TableColumnHeader><Width>25</Width><Label>ResourceGroupName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>ResourceType</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>ResourceGroupName</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>StorageFileShare</Name>
      <ViewSelectedBy>
          <TypeName>FileShare</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
      <AutoSize/>
      <TableHeaders>
        <TableColumnHeader><Label>Name</Label></TableColumnHeader>
        <TableColumnHeader><Label>ConnectionString</Label></TableColumnHeader>
      </TableHeaders>
      <TableRowEntries>
        <TableRowEntry>
        <Wrap/>
        <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>ConnectionString</PropertyName></TableColumnItem>
        </TableColumnItems>
        </TableRowEntry>
      </TableRowEntries>
      </TableControl>
    </View>
    <View>
        <Name>Microsoft.Azure.Commands.Compute.Models.PSVirtualMachineListStatus</Name>
        <ViewSelectedBy>
          <TypeName>AzurePSDriveVM</TypeName>
          <TypeName>Microsoft.Azure.Commands.Compute.Models.PSVirtualMachineListStatus</TypeName>
        </ViewSelectedBy>
        <GroupBy>
            <PropertyName>PSParentPath</PropertyName>
            <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
        </GroupBy>
        <TableControl>
          <TableHeaders>
            <TableColumnHeader>
              <Label>Name</Label>
              <Alignment>Left</Alignment>
            </TableColumnHeader>
            <TableColumnHeader>
              <Label>ResourceGroupName</Label>
              <Alignment>Right</Alignment>
            </TableColumnHeader>
            <TableColumnHeader>
              <Label>Location</Label>
              <Alignment>Right</Alignment>
            </TableColumnHeader>
            <TableColumnHeader>
              <Label>VmSize</Label>
              <Alignment>Right</Alignment>
            </TableColumnHeader>
            <TableColumnHeader>
              <Label>OsType</Label>
              <Alignment>Right</Alignment>
            </TableColumnHeader>
            <TableColumnHeader>
              <Label>NIC</Label>
              <Alignment>Right</Alignment>
            </TableColumnHeader>
            <TableColumnHeader>
              <Label>ProvisioningState</Label>
              <Alignment>Right</Alignment>
            </TableColumnHeader>
            <TableColumnHeader>
              <Label>PowerState</Label>
              <Alignment>Right</Alignment>
            </TableColumnHeader>
          </TableHeaders>
          <TableRowEntries>
            <TableRowEntry>
              <TableColumnItems>
                <TableColumnItem>
                  <ScriptBlock>$_.Name</ScriptBlock>
                </TableColumnItem>
                <TableColumnItem>
                  <ScriptBlock>$_.ResourceGroupName</ScriptBlock>
                </TableColumnItem>
                <TableColumnItem>
                  <ScriptBlock>$_.Location</ScriptBlock>
                </TableColumnItem>
                <TableColumnItem>
                  <ScriptBlock>$_.HardwareProfile.VmSize</ScriptBlock>
                </TableColumnItem>
                <TableColumnItem>
                  <ScriptBlock>$_.StorageProfile.OsDisk.OsType</ScriptBlock>
                </TableColumnItem>
                <TableColumnItem>
                  <ScriptBlock>
                    $nics = $_.NetworkProfile.NetworkInterfaces;
                    foreach ($nic in $nics)
                    {
                      $nic.Id.Substring($nic.Id.LastIndexof('/') + 1);
                    }
                  </ScriptBlock>
                </TableColumnItem>
                <TableColumnItem>
                  <ScriptBlock>$_.ProvisioningState</ScriptBlock>
                </TableColumnItem>
                <TableColumnItem>
                  <ScriptBlock>$_.PowerState.Replace("VM ", "")</ScriptBlock>
                </TableColumnItem>
              </TableColumnItems>
            </TableRowEntry>
          </TableRowEntries>
        </TableControl>
    </View>
    <View>
      <Name>VirtualmachineTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Compute.virtualMachines</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>VMName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>VMSize</Label></TableColumnHeader>
        <TableColumnHeader><Label>OS</Label></TableColumnHeader>
        <TableColumnHeader><Label>SKU</Label></TableColumnHeader>
        <TableColumnHeader><Label>OSVersion</Label></TableColumnHeader>
        <TableColumnHeader><Label>AdminUserName</Label></TableColumnHeader>
        <TableColumnHeader><Label>NetworkInterfaceName</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.HardwareProfile.VmSize</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.StorageProfile.ImageReference.Offer</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.StorageProfile.ImageReference.Sku</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.StorageProfile.ImageReference.Version</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.OSProfile.AdminUsername</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$nicIds = @(); foreach ($nicId in $_.Properties.NetworkProfile.NetworkInterfaces.id) { $nicIdTokens = $nicId.Split('/'); $nicIds += $nicIdTokens[$nicIdTokens.Count-1]}; $nicIds</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VirtualmachineExtensionTable</Name>
      <ViewSelectedBy>
       <TypeName>Microsoft.Compute.virtualMachines.extensions</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>ExtensionName</Label></TableColumnHeader>
        <TableColumnHeader><Label>VirtualMachineName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>ExtensionType</Label></TableColumnHeader>
        <TableColumnHeader><Label>TypeHandlerVersion</Label></TableColumnHeader>
        <TableColumnHeader><Label>Publisher</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.ResourceName.Split('/')[0]</ScriptBlock></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.Type</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.TypeHandlerVersion</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.Publisher</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>AvailabilitySetsTable</Name>
      <ViewSelectedBy>
       <TypeName>Microsoft.Compute.availabilitySets</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>AvailabilitySetName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>SKU</Label></TableColumnHeader>
        <TableColumnHeader><Label>VirtualMachineName</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Sku.name</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$vmNameTokens = $_.Properties.virtualMachines.id.Split('/'); $vmName = $vmNameTokens[$vmNameTokens.Count-1]; $vmName</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>NetworkInterfaceTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Network.networkInterfaces</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>NetworkInterfaceName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>VirtualMachineName</Label></TableColumnHeader>
        <TableColumnHeader><Label>PublicIpAddressName</Label></TableColumnHeader>
        <TableColumnHeader><Label>NetworkSecurityGroupName</Label></TableColumnHeader>
        <TableColumnHeader><Label>IsPrimary</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$vmTokens = $_.Properties.virtualMachine.Id.Split('/');$vmName = $vmTokens[$vmTokens.Count-1]; $vmName</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$publicIPAddresses = @(); foreach ( $ipConfiguration in $_.Properties.IpConfigurations) { $publicIPAddressTokens = $ipConfiguration.properties.publicIPAddress.id.Split('/'); $publicIPAddresses += $publicIPAddressTokens[$publicIPAddressTokens.Count - 1]};$publicIPAddresses</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$nsgTokens = $_.Properties.NetworkSecurityGroup.Id.Split('/'); $nsg = $nsgTokens[$nsgTokens.Count - 1]; $nsg</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.primary</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>PublicIPAddressesTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Network.publicIPAddresses</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>PublicIPAddressName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>IPAddress</Label></TableColumnHeader>
        <TableColumnHeader><Label>IPAddressVersion</Label></TableColumnHeader>
        <TableColumnHeader><Label>IPAllocationMethod</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.ipAddress</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.publicIPAddressVersion</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.publicIPAllocationMethod</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VirtualNetworksTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Network.virtualNetworks</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>VirtualNetworkName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>AddressPrefixes</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.addressSpace.addressPrefixes</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
     </View>
    <View>
      <Name>NetworkSecurityGroupTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Network.networkSecurityGroups.Rules</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>NetworkSecurityGroupName</Label></TableColumnHeader>
        <TableColumnHeader><Label>RuleType</Label></TableColumnHeader>
        <TableColumnHeader><Label>RuleName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Description</Label></TableColumnHeader>
        <TableColumnHeader><Label>Protocol</Label></TableColumnHeader>
        <TableColumnHeader><Label>Access</Label></TableColumnHeader>
        <TableColumnHeader><Label>Direction</Label></TableColumnHeader>
        <TableColumnHeader><Label>SourcePortRange</Label></TableColumnHeader>
        <TableColumnHeader><Label>DestinationPortRange</Label></TableColumnHeader>
        <TableColumnHeader><Label>SourceAddressPrefix</Label></TableColumnHeader>
        <TableColumnHeader><Label>DestinationAddressPrefix</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><ScriptBlock>$nsgTokens = $_.id.Split('/'); $nsgTokens[$nsgTokens.count-3]</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$nsgTokens = $_.id.Split('/'); $nsgTokens[$nsgTokens.count-2]</ScriptBlock></TableColumnItem>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.Description</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.Protocol</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.Access</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.Direction</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.SourcePortRange</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.DestinationPortRange</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.SourceAddressPrefix</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.DestinationAddressPrefix</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>RouteTablesTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Network.routeTables.routes</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>RouteTableName</Label></TableColumnHeader>
        <TableColumnHeader><Label>RouteName</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>AddressPrefix</Label></TableColumnHeader>
        <TableColumnHeader><Label>NextHopType</Label></TableColumnHeader>
        <TableColumnHeader><Label>NextHopIpAddress</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><ScriptBlock>$routeTableTokens = $_.id.Split('/'); $routeTableTokens[$routeTableTokens.count-3]</ScriptBlock></TableColumnItem>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.AddressPrefix</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.NextHopType</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.NextHopIpAddress</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>StorageAccountsTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Storage.storageAccounts</TypeName>
          <TypeName>Microsoft.ClassicStorage.storageAccounts</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>StorageAccountName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>CreationTime</Label></TableColumnHeader>
        <TableColumnHeader><Label>Tags</Label></TableColumnHeader>
        <TableColumnHeader><Label>Endpoints</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.provisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.creationTime</ScriptBlock></TableColumnItem>
          <TableColumnItem><PropertyName>Tags</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$primaryEndpointsObj = $_.Properties.primaryEndpoints; if ($null -eq $primaryEndpointsObj) { $endpoints = ""; foreach ($endpoint in $_.Properties.endpoints) {$endpoints += "$endpoint`n"; }; return $endpoints}; $endpoints = ""; $primaryEndpointsObj | Get-Member -Type NoteProperty | ForEach-Object { $value = $primaryEndpointsObj."$($_.Name)"; $endpoints += "$value`n"; }; return $endpoints</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>WebSitesTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Web.sites</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <TableHeaders>
        <TableColumnHeader><Width>30</Width><Label>SiteName</Label></TableColumnHeader>
        <TableColumnHeader><Width>10</Width><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Width>10</Width><Label>State</Label></TableColumnHeader>
        <TableColumnHeader><Width>20</Width><Label>OutboundIpAddresses</Label></TableColumnHeader>
        <TableColumnHeader><Width>60</Width><Label>EnabledHostInfo</Label></TableColumnHeader>
        <TableColumnHeader><Width>40</Width><Label>WebSpace</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.State</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.OutboundIpAddresses.Replace(',', "`n").Trim()</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$hostInfoString = ''; foreach ($hostInfo in $_.Properties.hostNameSslStates){ $hostname = $($hostInfo.name); if ($hostname -eq $_.Properties.defaultHostName) { $hostname = $hostname + '*'; }; $hostInfoString += "$hostname SSl=$($hostInfo.sslState)`n" }; $hostInfoString.trim()</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.WebSpace</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ServerFarmsTable</Name>
      <ViewSelectedBy>
          <TypeName>Microsoft.Web.serverfarms</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>ServerFarmName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>NumberOfWorkers</Label></TableColumnHeader>
        <TableColumnHeader><Label>NumberOfSites</Label></TableColumnHeader>
        <TableColumnHeader><Label>WebSpace</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.ProvisioningState</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.numberOfWorkers</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.numberOfSites</ScriptBlock></TableColumnItem>
          <TableColumnItem><ScriptBlock>$_.Properties.WebSpace</ScriptBlock></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>SubscriptionTable</Name>
      <ViewSelectedBy>
       <TypeName>Subscription</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <TableHeaders>
        <TableColumnHeader><Label>Mode</Label></TableColumnHeader>
        <TableColumnHeader><Label>SubscriptionName</Label></TableColumnHeader>
        <TableColumnHeader><Label>SubscriptionId</Label></TableColumnHeader>
        <TableColumnHeader><Label>TenantId</Label></TableColumnHeader>
        <TableColumnHeader><Label>State</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <TableColumnItems>
          <TableColumnItem><PropertyName>SSItemMode</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>SubscriptionName</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>SubscriptionId</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>TenantId</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>State</PropertyName></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ResourceGroupTable</Name>
      <ViewSelectedBy>
       <TypeName>ResourceGroup</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <TableHeaders>
        <TableColumnHeader><Label>Mode</Label></TableColumnHeader>
        <TableColumnHeader><Label>ResourceGroupName</Label></TableColumnHeader>
        <TableColumnHeader><Label>Location</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProvisioningState</Label></TableColumnHeader>
        <TableColumnHeader><Label>Tags</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <TableColumnItems>
          <TableColumnItem><PropertyName>SSItemMode</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>ResourceGroupName</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Location</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>ProvisioningState</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Tags</PropertyName></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ResourceProviderTable</Name>
      <ViewSelectedBy>
       <TypeName>ResourceProvider</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <TableHeaders>
        <TableColumnHeader><Label>Mode</Label></TableColumnHeader>
        <TableColumnHeader><Label>ProviderName</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <TableColumnItems>
          <TableColumnItem><PropertyName>SSItemMode</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>ResourceTypeTable</Name>
      <ViewSelectedBy>
       <TypeName>ResourceType</TypeName>
      </ViewSelectedBy>
      <GroupBy>
          <PropertyName>PSParentPath</PropertyName>
          <CustomControlName>AzurePSDriveFormatControl</CustomControlName>
      </GroupBy>
      <TableControl>
       <AutoSize/>
       <TableHeaders>
        <TableColumnHeader><Label>Mode</Label></TableColumnHeader>
        <TableColumnHeader><Label>ResourceTypeName</Label></TableColumnHeader>
       </TableHeaders>
       <TableRowEntries>
        <TableRowEntry>
         <Wrap/>
         <TableColumnItems>
          <TableColumnItem><PropertyName>SSItemMode</PropertyName></TableColumnItem>
          <TableColumnItem><PropertyName>resourceTypeName</PropertyName></TableColumnItem>
         </TableColumnItems>
        </TableRowEntry>
       </TableRowEntries>
      </TableControl>
    </View>
 </ViewDefinitions>
</Configuration>