Site icon Davoud Teimouri – Virtualization and Data Center

PowerCLI: Best Solution to Remove _deviceImage-0.iso From ESXi Datastore

What’s Issue with _deviceImage-0.iso?

Sometimes, we need to prepare a VM with specific OS and deploy it on another environment, so we have to export the VM as OVA or OVF file.

Because of installing OS, we need to mount ISO file on our machine and may be we forgot remove ISO file from CD-ROM before exporting VM.

Then if we import the OVF/OVA file to another server or environment, the ISO file will be copied to the target folder with other files.

The file will be renamed to “_deviceImage-0.iso”.

If we deployed one or two machine, there is no concern about free space on our datastore but think about 100 or more machine!

If each ISO used 3GB, we would lose more than 300GB for 100 VMs.

Solution: PowerCLI Script

There is a simple solution for single machine, we can remove ISO file in the machine configuration and delete the file from the machine’s folder.

_deviceimage-0
PowerCLI

But what is solution for more than one machine?

Here is a script that you can customize that for your environment and add some lines to get machine list from administrator. The script should be run via PowerCLI and we should connect PowerCLI console to a vCenter.

VMS=Get-Content -Path "File.txt"
ForEach ($VM in $VMS) {
    $DataCenter=Get-VM $VM | Get-DataCenter
    $DataStore=Get-VM $VM | Get-View | %{$_.Config.datastoreurl.name}
    $Folder=Get-VM $VM | Get-View | %{$_.Config.files.logdirectory.split("]")[1].TrimStart(" ")}
    $Path=$Datacenter.name+"/"+$Datastore + "/"+$Folder
    $File=$Path+"_deviceImage-0.iso"
    CD C:\
    CD vmstore:
    If (Test-Path $File) {
        Get-VM $VM | Get-CDDrive | Set-CDDrive -NoMedia -Confirm:$False
                #If you want to remove files automatically, remove -Confirm from the below line
        Remove-Item -Path $File -Confirm
        Write-Host "This file has been removed: $File"
        } Else {
        Write-Host "The file does not exist on this path: $Path"
        }
    }

Hope the script will help you to free your datastore and save your storage space.

Further Reading

VMware Horizon View Connection (Session) Duration Report

How To Disable HBA Port on Linux

NFS Client Configuration For My Dummy Colleagues

External Links

PowerCLI – The Cloud Platform Tech Zone

Exit mobile version