Script to import virtual machines from data warehouses

Is there a quick way to import all of the virtual machines on a data store in a vCenter?  A kind of browse VMX files and import?

More to the point.  I have the only store of data that has been moved to a new location with approximately 100 VM on it.  I want to import all the virtual machines on this unique to a single host data store to the new location.

Thank you

Boston Tech Guy

You can specify the name of this 1 data store in the variable $Datastores .

And if you change this line

$ESXHost= Get-Cluster$Cluster| Get-VMHost|select-First1

in

$ESXHost=Get-VMHost -Name MyEsx

It should do the trick.

Tags: VMware

Similar Questions

  • Script to find virtual machines on data warehouses that begin by...

    I'm looking for a script that will list all VM on specific data with the initial T1SDX1 letters warehouses. I tried to use a certain liners, I found, but they do not seem to work. Here's what I'm not, but it does not list the VM.

    Get-Cluster "Test Cluster" | Get-vm |?{($_.extensiondata.config.datastoreurl|%{$_.name}) -like "T1SDX1"}| Export-Csv "H:\Excel_Reports\vms_on_whatDS.csv"
    

    I tried to use the same command - and -contains the command. Both show no results. I tried a single line, I found here, but it signals a TON of data I don't need and does not even get the info, I need.

    Get-Cluster "your_cluster"|Get-vm |?{($_.extensiondata.config.datastoreurl|%{$_.name}) -match "^T"}
    

    In fact, I found an old script I used who shot all s VM on all data warehouses. It works, I'll just filter across the worksheet.

    Here's the script if anyone cares or she wants:

    $Today = (Get-Date -Format "yyyyMMdd-HH.mm")
    $vcenter = $defaultVIServers
    $report = Get-Datacenter | Get-Datastore | Foreach-Object {
        $ds = $_.Name
        $_ | Get-VM | Select-Object Name,@{n='DataStore';e={$ds}} |
        }
    $report | Export-Csv "H:\Excel_Reports\DS.stats.$vcenter.$today.csv" -NoTypeInformation -UseCulture
    
  • List of virtual machines in data warehouses

    Hi all

    I want to list all virtual machines in warehouses of data starting with "MDF".  I tried

    Get - VM - Datastore (Get-Datastore-name MDF *) | Select-object - property name, data store > VMplusdatastore.txt

    But it does not list the names of data store for a reason any?

    Also some VM will have records on more than a logic unit number - I suppose that it is not translated here?

    Wouldn't be better to do the opposite?

    Hi Simon,.

    the problem with your script is that the virtual computer object does not have a property data store. That is why the data column store is empty in the output. The following script will combine virtual machine names and the data store for all with names beginning with MDF data warehouses:

    Get-Datastore -Name MDF* | ForEach-Object {
      $Datastore = $_
      $Datastore | Get-VM | ForEach-Object {
        $Report = "" | Select-Object -property Name, Datastore
        $Report.Name = $_.Name
        $Report.Datastore = $Datastore.name
        $Report
      }
    } > VMplusdatastore.txt
    

    If a virtual machine disks on multiple data stores, it will display all the combinations.

    Best regards, Robert

  • Moving propelled out of virtual machines between data warehouses

    I need to create a script to move a list of virtual machines in the current in another data store.

    The script must move the first VM, wait for the operation to complete, and then move the second and so on.

    Y at - it no samples can I start from?

    Concerning

    Marius

    You can check VMRelocatedEvent with Get-ViEvent.

    Something like that

    $targetVM = "MyVM.

    $finished = $false

    {while(!$finished)}

    If ((Get-Date) Get-VIEvent-Start. AddMinutes(-15) - MaxSamples ([int]: MaxValue) |

    where {$_-is [VMware.Vim.VmRelocatedEvent] - and $_.} {Vm.Name - eq $targetVM)}

    $finished = $true

    }

    else {}

    Sleep 30

    }

    }

  • ESXi 4.1 upgrade to ESXi 5.5 while all virtual machines and data warehouses

    We have two servers ESXi 4.1.0 348481 (Essentials) and we need to upgrade to ESXi 5.5 for support of Windows Server R2 2012. We intend to use the interactive upgrade. We want to ensure that the virtual machine is preserved. More precisely VMFarm001 where ESXi is installed in the same data store as VMServer1. VMServer1 is our largest server and cannot be migrated to another data store easily because we are not allowed for vMotion.

    The following layout

    VMFarm001

    Dell PowerEdge R710

    Data store:

    Storage1 - 1.36 TB

    VMServer1 - MS Server 2003

    Install ESXi

    Storage2 - 1.82 TB

    VMServer2 - MS Server 2008 R2

    VMServer3 - MS Server 2008 R2

    VMFarm002

    HP ProLiant ML350 G5

    Data store:

    Storage1 - 95GB

    Install ESXi

    ISOs

    Storage2 - 1.82 TB

    VMServer4 - MS Server 2008 R2

    VMServer5 - MS Server 2008 R2

    I have a feeling I'm worried for nothing given that option during the ESXi upgrade and keep the VMFS datastore.

    Thank you

    Yes, that's correct.

    I recently finished the upgrade of lots of stand-alone hosts ESXi 4.1 (with local storage only) to 5.1 and all were successful. The same process applies to 5.5, so you shouldn't have a problem with preservation of VMFS data warehouses (and all virtual machines).

  • Import virtual machines from vCenter to vCAC 6.0.1 failed

    Hello everyone.

    I'm trying to import existing virtual machines to vCenter 5.5 vCAC 6.0.1 with the organizing Infrastructure option but I got an error that says: Source VRM Agent. Instance name: Server IaaS. Username: vCAC user admin. Message: error while processing [RegisterVM], details of the error: value cannot be null. Parameter name: the name of the virtual machine has not been specified.

    And verification of the server log, all parameters have the correct data, except name = "VirtualMachine.Admin.Name". This one is empty. And the following line in the newspaper wrote:

    Message = [value cannot be null. [Name of the parameter: the name of the virtual machine has not been specified.]

    Everyone?. The solution works fine, I can deploy machines, their administration, destroy, etc..  I have only two users now, vcacserv (vCAC tenant admin, admin of fabric, all admin) and mrocebal (my user, user role only). The same error if I select any user as the owner of the machine.

    I have a user called vmadmin, who is admin vCenter.

    Thank you in advance.

    Hello everyone.

    Updated this thread and close it, let me tell you what happened.

    I opened a ticket with support Services and they told me that there is a problem with the development of the application. They increased the ticket with the Department of development in India. It has been 2 weeks later. We decided internally to install the 6.1.1 version and that solved our problem.

    Hope help you all.

    Miguel Romero.

    Mexico.

  • Can you pass offline virtual machines between data warehouses using the 'Migration' with the basic Kit Essentials feature?

    I speak not of Essentials Plus vMotion between hosts or migration of VMS between hosts and data warehouses online. Just curious to know if its possible to off a virtual machine and click the button to migrate to another store of data with the basic Essentials bundle.

    Welcome to the community - Yes you can - it's what we call a cold migration.

  • Newbie question: list the Configuration of virtual machines and data warehouses

    Hello

    I'm new on using powercli how to list all virtual machines in a certain data center, their memory, Procs and what data warehouses they are on.

    I know you can use get - vm | Select-object name, NumCPU MemoryMB but if I add DatastoreIdList as well, it doesn't seem to work.  What Miss me

    Thank you very much

    Laurence

    That's right, you could do

    Get-VM MyVM | Select Name,@{N="DS";E={[string]::join(',',($_.datastoreidlist|%{(Get-View -Id $_).Name}))}},Description |
        Export-Csv "C:\test.csv" -NoTypeInformation -UseCulture
    

    Just look at whether the separator for CSV is be a comma in your culture, you probably need to adjust the separator in the Join method!

  • PowerCLI script to deploy virtual machines from a template

    Hey all,.

    I have this part done script. My questions are:

    1. I want to know the nubmber of "Windows XP - X" are currently deployed, so I want to add. I don't want to use a CSV format or any other to inmport of. Yes, I am that lazy. For some reason I can't understand it!

    2. on the line I would askes 'what esx host you want to use' just hit '1' for esx1 vs type the name of the host.

    The questions above can be made? If so HELP! I worked on it for days. Thank you!

    1. Yes I have a Connect-VIServer-Server blah blah blah... Just removed.

    {

    {

    $freespaceCalc = @{name = "FreespaceGB"; Expression = { : tour ($_.)} (FreeSpaceMB * 1 MB/1 GB)}}

    $capacityCalc = @{name = "CapacityGB"; Expression = { : tour ($_.)} (CapacityMB * 1 MB/1 GB)}}

    1. User agents how manny are required

    $agentTotal = Read-Host "Enter the number of Agents WinXp you need."

    $agnetTotal = $agentTotal

    Get-Datastore. Select Name, $freespaceCalc, $capacityCalc | Sort-Object Name. FT - force - AutoSize. Out-Default

    $datastore = Read-Host "what data store you want to use?

    Get-VMHost | Select-Object Name. Sort name | FT - force - AutoSize. Out-Default

    $esxHost = Read-Host "what Esx host you want to use?

    $XP is get - VM - name WinXP-*.

    $totalXPCount = @($XP). Length

    $totalXP = (1 + $totalXPCount)

    for ($adt = ($totalXP + $agentTotal); $totalXP - $adt lt; $totalXP ++) {}

    If ($totalXPCount - eq $adt)

    {

    breaking

    }

    $machineName = "WinXP-$totalXPCount.

    $template = "Template XP-32.

    $osspec = get-OSCustomizationSpec XP

    foreach ($vm to $machineName)

    {$vm = New - VM - name $vm - model $template - host $esxHost - store of data $datastore - OSCustomizationSpec $osspec | start-vm}

    }

    The $hostIndex variable contains the index in the table $hostList of the selected host.

    This is the script has been fixed.

    Note that the SW forum has problems with hooks for you better use the attached file.

    # Current "** Create Win XP **";
    $freespaceCalc = @{ Name = "FreespaceGB"; Expression = { [Math]::Round($_.FreeSpaceMB * 1MB / 1GB ) } }
    $capacityCalc = @{ Name = "CapacityGB"; Expression = { [Math]::Round($_.CapacityMB * 1MB / 1GB) } }
    
    # User enters how manny agents are requred
    $agentTotal = [int](Read-Host "Enter how many WinXp Agents you need.")
    
    $totalXPCount = (Get-VM -Name WinXP-* | Measure-Object).Count
    if($totalXPCount -lt $agentTotal){
         for($adt = $totalXPCount + 1; $adt -le $agentTotal; $adt++){
    
              Get-Datastore | Select Name, $freespaceCalc, $capacityCalc |Sort-Object Name | ft -Force -AutoSize| Out-Default
              $datastore = Read-Host "What DataStore do you want to use?"
    
              $hostList = Get-VmHost | select Name | Sort-Object
              $i = 1
              $hostList | % {Write-Host $i ":" $_.Name; $i++}
              $hostIndex = Read-Host "Enter a number (1 -" $hostList.Count ")"
              Write-Host "You selected host" $hostIndex "with hostname" $hostList[$hostIndex - 1].Name
    
              $machineName = "WinXP-$adt"
              $template = "XP-32 Template"
              $osspec = Get-OSCustomizationSpec XP
    
              foreach ($vm in $machineName){
                   $vm = New-VM -Name $machineName -Template $template -Host $hostList[$hostIndex - 1].Name -Datastore $datastore -OSCustomizationSpec $osspec |start-vm }
         }
    }
    
  • Move virtual machines from a to another data store

    Is there a recommended (or integrated) way to move propelled out of virtual machines from a data store? Or is it a cut simple and working of dough which can be done from any client PC connected to the underlying storage providers?

    If both, store data Source and Destination are connected to the same server vCenter, do Storage vMotion. Make a right-click VM--> migrate--> change of data store and select the Destination data store.

  • How to move a virtual machine in the warehouses of data on ESXi 4.1.0

    All,

    I need to move a virtual machine from a data store to another on the same host.  I have two drive bays where each array disk is its data store on.  However, one of them has problems if I want to move two of the virtual machine to a data to another store.

    Is it possible through vsphere and if so, how?

    My host is a:

    Dell PowerEdge 2950

    vSphere Client Version 4.1.0

    VMware ESXi 4.1.0

    Hello

    1. turn off the virtual machine to be moved

    2. right click on the virtual machine, and then select Remove in the inventory (the fleeting VM on the data store)

    3. browse the data store, in the left pane, right-click on the folder of the virtual machine and select move to...

    4 browse the new data store, open the VM folder

    5. save the .vmx file

    6. start the virtual machine in the new location and make sure that it works.

  • Import a virtual machine from a backup of Symantec .sv2i

    I need to create a virtual machine from the backup of a Windows physical box created with one of the latest versions of Symantec BESR.

    VMware Converter Standalone documentation reading - I see that only the backup made with Symantec BESR 8.5 and earlier files are supported.

    Can someone please provide a solution or at least advice?

    Concerning

    Marius

    Hello

    You can create a temp disk (VMDK) to an existing virtual machine, and then put your backup file on the disk.

    Detach the VMDK and then assign to a new virtual machine as a second disc (the virtual machine you need to restore the backup to that).

    Then start the virtual machine of the Symantec BESR startup disk and restore the secondary drive on the first disk backup file.

    After that detach and remove the second disk.

    Of curse, this solution may not work after restoration because you made the physics of the machine backup and restore to a virtualized platform.

  • PowerCLI Script to migrate virtual machines with the same network Source for the new vCenter Server.

    Hi all

    I checked a few posts on the migration to the new vCenter Server virtual machine. But I'm not very good with Powercli and need some help here.

    We have a new vCenter server where we migrate virtual machines from one source vCenter server. Here are two things that I don't know how to connect together to make sure that bwfore we turn on the virtual machine to the virtual machine is connected to its source network.

    Part 1 - this script works well but do not get any network on the vCenter destination.

    cluster = Get-Cluster "clusterA.

    $inventory = get-Cluster $cluster | Get - VM | Add-Member - MemberType ScriptProperty-name "VMXPath" - value {$this.extensiondata.config.files.vmpathname}-Passthru-Force | Select-Object Name ResourcePool, folder, VMXPath |

    $inventory | Export-Csv c:\file.csv

    $inventory = import-csv c:\file.csv

    $cluster = get-group 'b '.

    {foreach ($vm to $inventory)

    $ESXHost = get-Cluster $cluster | Get-VMHost | Select - 1 first

    New-VM - VMFilePath $vm. VMXPath - VMHost $ESXHost - location $vm. Folder - ResourcePool (Get-Cluster $cluster |) Get-ResourcePool $vm. ResourcePool)

    }

    Part 2 - I want to preserve the Portgroup macaddress and the Ip of the virtual computers and connect them to the new vCenter. How can I do this with the script below. Or how can I combine them together?

    $vm_list = get-Cluster-name "clustera | Get - VM test * | Name sort

    $information = {foreach ($vm to $vm_list)

    $network_adapter_information = get-NetworkAdapter - VM $vm

    $vm | Select Name,PowerState,ResourcePool,@{N="Path; E=       {$_. ExtensionData.Summary.Config.VmPathName}},@{N="NetworkAdapter '; E = {[string]: join (":", ($network_adapter_information |))} %{$_. {{(Nom + "," + _.NetworkName $}))}}, @{N = "MacAddress"; E = {[string]: join (",", ($network_adapter_information | % {$_.}))} MacAddress}))}}

    }

    Step 2

    # Unsubscribe virtual machines

    Remove-VM - VM $vm_list-RunAsync Verbose - confirm: $false

    Step 3

    $cluster = get-group 'b '.

    {foreach ($vm to $inventory)

    $ESXHost = get-Cluster $cluster | Get-VMHost | Select - 1 first

    New-VM - VMFilePath $vm. VMXPath - VMHost $ESXHost - location $vm. Folder - ResourcePool (Get-Cluster $cluster |) Get-ResourcePool $vm. ResourcePool)

    }

    # Save virtual machines

    foreach ($info in $information)

    {

    $vmxpath = $info. Path

    $resource_pool = $info. ResourcePool.Name

    New-VM - ResourcePool (ResourcePool-Get-name $resource_pool) VMFilePath - $vmxpath - RunAsync-Verbose | Out-Null

    }

    Step 4

    # Put the network cards

    foreach ($info in $inventory)

    {

    foreach ($network_information in ($info.NetworkAdapter - split ":"))))

    {

    $virtual_machine = $info | %{$_. Name}

    $network_adapter = ($network_information-split ",") [0]

    $network_vlan = ($network_information-split ",") [1]

    Get-VM-name $virtual_machine | Get-NetworkAdapter-name $network_adapter | Together-NetworkAdapter - NetworkName $network_vlan-Verbose-RunAsync-confirm: $false | Out-Null

    }

    }

    # Start the virtual machines

    foreach ($vm to $vm_list)

    {

    Start-VM - VM $vm. Name-RunAsync Verbose - confirm: $false | Out-Null}

    }

    Thanks in advance for any help.

    Hi all

    I made some changes to the script and it worked for me. We have added a host on the destination with all exchanges and storage mapped vCenter.

    $vm_list = get-Cluster-name 'Site B - b | Get - VM | Name sort

    $information = {foreach ($vm to $vm_list)

    $network_adapter_information = get-NetworkAdapter - VM $vm

    $vm | Select Name,PowerState,ResourcePool,@{N="Path; E=       {$_. ExtensionData.Summary.Config.VmPathName}},@{N="NetworkAdapter '; E = {[string]: join (":", ($network_adapter_information |))} %{$_. {{(Nom + "," + _.NetworkName $}))}}, @{N = "MacAddress"; E = {[string]: join (",", ($network_adapter_information | % {$_.}))} MacAddress}))}}

    }

    # Unsubscribe virtual machines

    Remove-VM - VM $vm_list-Verbose - confirm: $false

    $cluster = get-Cluster "Site A - clustera.

    {foreach ($vm to $information)

    $ESXHost = get-Cluster $cluster | Get-VMHost | Select - 1 first

    New-VM - VMFilePath $vm.path - VMHost $ESXHost - location $vm. Folder - ResourcePool (Get-Cluster $cluster |) Get-ResourcePool $vm. ResourcePool)

    }

    # Save virtual machines

    foreach ($info in $information)

    {

    $vmxpath = $info. Path

    $resource_pool = $info. ResourcePool

    New-VM - ResourcePool (ResourcePool-Get-name "test1") VMFilePath - $vmxpath - RunAsync-Verbose | Out-Null

    }

    # Put the network cards

    .

    foreach ($info in $information)

    {

    foreach ($network_information in ($info.NetworkAdapter - split ":"))))

    {

    $virtual_machine = $info | %{$_. Name}

    $network_adapter = ($network_information-split ",") [0]

    $network_vlan = ($network_information-split ",") [1]

    Get-VM-name $virtual_machine | Get-NetworkAdapter-name $network_adapter | Together-NetworkAdapter - NetworkName $network_vlan-Verbose - confirm: $false | Out-Null

    }

    }

    # Start the virtual machines

    foreach ($vm to $vm_list)

    {

    Start-VM - VM $vm. Name-RunAsync Verbose - confirm: $false | Out-Null

    }

    Hope this will help many of you.

  • How to speed up the transfer of files to and from data warehouses ESXi

    Hi people!

    Our company has a large number of

    VMware ESXi 3.5 and 4.0 servers. (Note: this is not the free ESXi, the)

    Paid ESX Server.) They generally work very well for us. The only area of

    problem I have is to transfer files to and from data warehouses on

    the machines.

    Because we do not have the ESX Server paid, I can't

    use vMotion or VirtualCenter to transfer virtual machines from one location

    to the other. So, if I need to move a virtual machine to a different host,

    the only solution I have is to download the VM

    files of the database on a local or network drive and then download

    paste them into the new data store, using the vSphere Client. The problem

    with this is that I found it is extremely slow. This may take

    hours just to copy a virtual machine.

    Does anyone know of one

    best way to do that would reduce the transfer time?

    Thank you!

    -

    Tom

    Hello

    Use veeam fastscp 3.0 its freeware. You can connect n number of esxi server.

    You can move or copy directly from one server to another server...

    Concerning

    Senthil Kumar D

  • Create virtual machines from a template

    Hello

    I'm trying to deploy virtual machines from a template, and then select a specific LUN in my cluster data store. How the code below can be changed to achieve this?

    Thank you

    $VMs = get-Content "VmNames.txt".

    $SourceTemp = "WIn2k08-R2.

    $DsCluster = "DS-Cluster01".

    $Folder = "Win2K08".

    {Foreach ($VM to $VMs)

    New-VM-name $VMs - model $SourceTemp - $DsCluster - $folder location data store

    }

    Do you mean a specific data store of this datastorecluster?

    If so, you can just pass the datastorename on the parameter data store

Maybe you are looking for