Some times we may need to find out whether VMDK files are shared with some other vms. Using below script we an easily find that. We just need to give the vm name & it will check for all the vmdk paths in all the VMS
connect-viserver vcentername
$vmname=read-host -Prompt “Enter the VM Name”
if (get-vm $vmname -erroraction SilentlyContinue)
{
$vdisk=get-vm $vmname |Get-VMHardDiskDrive
$allvms=get-vm
foreach ($allvm in $allvms)
{
if ($allvm.name -ne $vmname)
{
$vmdiskpath=get-vm $allvm |get-harddisk
foreach($disk in $vdisk)
{
if ($vmdiskpath.filename -eq $disk.filename)
{
$msg=”There is a VMDKS sharing with ”
$msg2=$allvm.name
$fullmsg=$msg+$msg2
Write-Host $fullmsg -ForegroundColor DarkGreen
}
}
}
}
}
else
{
Write-Host “VM is not available in the vCenter, please check the vm name”
}