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

Re: way to find vm which are not removed disk

$
0
0

Thanks,

 

$Cluster = "MyCluster"

$Datastores = "MyDS"

$VMFolder = "MyFolder"

 

$ESXHost = Get-Cluster $Cluster | Get-VMHost | select -First 1

 

foreach($Datastore in Get-Datastore $Datastores) {

  # Collect .vmx paths of registered VMs on the datastore

  $registered = @{}

  Get-VM -Datastore $Datastore | %{$_.Extensiondata.LayoutEx.File | where {$_.Name -like "*.vmx"} | %{$registered.Add($_.Name,$true)}}

 

   # Set up Search for .VMX Files in Datastore

  New-PSDrive -Name TgtDS -Location $Datastore -PSProvider VimDatastore -Root '\' | Out-Null

  $unregistered = @(Get-ChildItem -Path TgtDS: -Recurse | `

    where {$_.FolderPath -notmatch ".snapshot" -and $_.Name -like "*.vmx" -and !$registered.ContainsKey($_.Name)})

  Remove-PSDrive -Name TgtDS

 

   #Register all .vmx Files as VMs on the datastore

   foreach($VMXFile in $unregistered) {

      New-VM -VMFilePath $VMXFile.DatastoreFullPath -VMHost $ESXHost -Location $VMFolder -RunAsync

   }

}

 

 

==========================================================================

 

Can we do this wrt DS cluster against single DS ?

Also I am not clear why we need section "#Register all .vmx Files as VMs on the datastore", all we need is vms or vmx file where VM is remove from incentory but was not remove from disk

Also I am not clean why we want to do "$ESXHost = Get-Cluster xxx | Get-VMHost | select -First 1"

 

I guess below code is enough , which will go tho all DS cluster to find vm which are un-register ... kindly suggest

==========================================================================

foreach($Datastore in (Get-Datastorecluster xxxx)) {

# Collect .vmx paths of registered VMs on the datastore

  $registered = @{}

  Get-VM -Datastore $Datastore | %{$_.Extensiondata.LayoutEx.File | where {$_.Name -like "*.vmx"} | %{$registered.Add($_.Name,$true)}}

# Set up Search for .VMX Files in Datastore

  New-PSDrive -Name TgtDS -Location $Datastore -PSProvider VimDatastore -Root '\' | Out-Null

  $unregistered = @(Get-ChildItem -Path TgtDS: -Recurse | `

    where {$_.FolderPath -notmatch ".snapshot" -and $_.Name -like "*.vmx" -and !$registered.ContainsKey($_.Name)}) | Export-Csv -NoTypeInformation -UseCulture c:\vm-unregister.csv

  Remove-PSDrive -Name TgtDS

}


Viewing all articles
Browse latest Browse all 230656

Trending Articles



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