Quantcast
Channel: VMware Communities: Message List
Viewing all articles
Browse latest Browse all 201333

Re: To list VM, cluster, hosts, folders, vmdk file path

$
0
0

Hi,

 

I just integrated the folderpath function that LucD has created by the past and it should work.

 

function Get-FolderPath{

<#

.SYNOPSIS

    Returns the folderpath for a folder

.DESCRIPTION

    The function will return the complete folderpath for

    a given folder, optionally with the "hidden" folders

    included. The function also indicats if it is a "blue"

    or "yellow" folder.

.NOTES

    Authors:    Luc Dekens

.PARAMETER Folder

    On or more folders

.PARAMETER ShowHidden

    Switch to specify if "hidden" folders should be included

    in the returned path. The default is $false.

.EXAMPLE

    PS> Get-FolderPath -Folder (Get-Folder -Name "MyFolder")

.EXAMPLE

    PS> Get-Folder | Get-FolderPath -ShowHidden:$true

#>

 

    param(

    [parameter(valuefrompipeline = $true,

    position = 0,

    HelpMessage = "Enter a folder")]

    [VMware.VimAutomation.ViCore.Impl.V1.Inventory.FolderImpl[]]$Folder,

    [switch]$ShowHidden = $false

    )

 

    begin{

        $excludedNames = "Datacenters","vm","host"

    }

 

    process{

        $Folder | %{

            $fld = $_.Extensiondata

            $fldType = "yellow"

            if($fld.ChildType -contains "VirtualMachine"){

                $fldType = "blue"

            }

            $path = $fld.Name

            while($fld.Parent){

                $fld = Get-View $fld.Parent

                if((!$ShowHidden -and $excludedNames -notcontains $fld.Name) -or $ShowHidden){

                    $path = $fld.Name + "\" + $path

                }

            }

            $row = "" | Select Path

            $row.Path = $path

            $row

        }

    }

}

 

 

 

 

$AuditVM = @()

ForEach ($vm in (Get-Cluster Maquette_DEV | Get-VM )) {

    foreach ($vmguest in @($vm | Get-VMguest)) {

            foreach ($cluster in @($vm | Get-Cluster )) {

                foreach ($datastore in @(Get-VM $vm | Get-Datastore)) {

                    foreach ($Network in @(Get-VM $vm | Get-NetworkAdapter)) {

    $objGuest= "" | Select State, Name,CPU, Memory, IPAddress, OSFullName, Cluster, Folder, UsedspaceGB, Datastore, Description, MacAddress, Path, NetworkName, NetworkAdapter

    $objGuest.State= $vmguest.state

    $objGuest.CPU = $vm.NumCPU

    $objGuest.Memory = $vm.MemoryMB

    $objGuest.Description= $vm.Notes

    $objGuest.Folder= Get-folder $vm.Folder | Get-folderpath

    $objGuest.Name = $vm.Name

    $objGuest.IPAddress = [string]::Join(',',$vmguest.IPAddress)

    $objGuest.OSFullName = $vmguest.OSFullName

    $objGuest.UsedSpaceGb = $vm.UsedSpaceGB

    $objGuest.Cluster = $cluster.Name

    $objGuest.Datastore = $datastore.Name

    $objGuest.MacAddress = $Network.MacAddress

    $objGuest.Path = $vm.Extensiondata.Config.Files.VmPathName

    $objGuest.NetworkName = $Network.NetworkName

    $objGuest.NetworkAdapter = $Network.Name

    $AuditVM += $objGuest

    }

    }

    }

    }

}

 

$AuditVM

 

Regards,

Julien


Viewing all articles
Browse latest Browse all 201333

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>