Vmware Kayıtlı Olmayan Sanal Makinelerin Tespiti ve Raporlanması

By | 3 Aralık 2024

VMware ortamlarında, kayıtlı olmayan sanal makineleri (VM) tespit etmek için PowerCLI kullanarak veri depolarını tarayabilirsiniz. Bu işlemler özellikle veri merkezi yönetiminde düzenin sağlanması açısından önemlidir.


PowerCLI Script Örneği

Removed $ErrorActionPreference = "Stop" since it is not required.
Removed $VMs = Get-VM since it's not required.
Added $VMXS = Get-ChildItem -Path TgtDS: -Recurse -Filter *.vmx | Where-Object {$_.name -notmatch "vCLS-*"} In order to remove all vCLS VMs from the results.

Below is the final script:

 Mind giving it a quick sanity check and suggesting any improvements?

$Datastores = get-datastore
$unregistered = @()
ForEach ($datastore in $datastores) {
    $psds = Get-Datastore -Name $datastore
    New-PSDrive -Name TgtDS -Location $psds -PSProvider VimDatastore -Root '\' | Out-Null
    $VMXS = Get-ChildItem -Path TgtDS: -Recurse -Filter *.vmx | Where-Object {$_.name -notmatch "vCLS-*"}
    foreach ($VMX in $VMXS) {
            try {
                Get-VM -datastore $datastore -name $VMX.name.replace('.vmx','') -ErrorAction:Stop | Out-Null
                } 
            catch {
                $unregistered += [PSCustomObject] @{
                    Name = $vmx.Name
                    DatastoreFullPath = $vmx.DatastoreFullPath
                    LastWriteTime = $vmx.LastWriteTime
                }
            }
        }
        Remove-PSDrive -Name TgtDS
}
$unregistered | export-csv -Path C:\output\UnregisteredVms1.csv -NoTypeInformation

Sonuç

Script, tüm veri depolarını tarayarak kayıtlı olmayan VM’leri tespit eder ve bunları CSV formatında bir rapor dosyasına kaydeder. Raporlama, sistem yöneticilerine ortam düzenini sağlama ve kayıt dışı VM’leri yönetme fırsatı sunar.

Kısaca, bu yöntemle VMware altyapınızı daha verimli bir şekilde yönetebilirsiniz.

Create a report of all unregistered VMs | Automation