I have copied this script from a previous thread of yours. I'm new to power shell scripting so please fogive me if you have already answered this on a another thread, I have been tasked with trying to gather all folders and subfolder along with permissions assigned for each folder as well as export to csv file in the following format if possible.
folder name or Parent or Subfolder: VM machine name: Permissions: DataCenter:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
connect-viserver servername
function
get-children-reverse($entity,$path){
if($entity.Name -ne "vm"){
$path = $entity.Name + "\" + $path
}
foreach($child in $entity.ChildEntity){
$childfld = Get-View -Id $child
switch($childfld.gettype().name){
"Folder" {
Write-Host ($childfld.Name + "\" + $path)
get-children-reverse
$childfld $path
}
"VirtualMachine"{
$vm = $childfld.Name + "\" + $path
Write-Host $vm
}
"Datacenter"{
Write-Host ($childfld.Name + "\" + $path)
get-children-reverse
$childfld $path
}
"ClusterComputeResource" {
Write-Host ($childfld.Name + "\" + $path)
foreach($esxMoRef in $childfld.Host){
$esx = Get-View -Id $esxMorEF
$h = $esx.Name+ "\" + $childfld.Name + "\" + $path
Write-Host $h
}
}
}
}
}
# Virtual machines & Templates
Write-Host
"Virtual Machines & Templates`n"
Get-Datacenter
| %{
$dc = Get-View -Id ($_).id
$folder = Get-View -Id $dc.VmFolder
get-children-reverse
$folder $dc.Name
}
# Hosts & Clusters
Write-Host
"`nHosts & Clusters`n"
Get-Datacenter
| %{
$dc = Get-View -Id ($_).id
$folder = Get-View -Id $dc.HostFolder
get-children-reverse
$folder $dc.Name
}
Export-Csv
"c:\Temp\vmfolder.csv"