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