Archive

Archive for July, 2014

Import-Export delle note delle VM tramite PowerCLI

24 Jul 2014 Leave a comment

Nel precedente post ho presentato un paio di script per importare e esportare i custom attributes, ma capita di aver bisogno di fare la stessa cosa anche per le note delle vm.

Anche in questo caso, con pochissime righe in PowerCLI il tutto si risolve velocemente.

Export

Per esportare è sufficiente connettersi al vCenter, esportare tutte le note e disconnettersi:

Connect-VIserver -server VCsource.vlab.local
$vmList = Get-VM
$noteList = @()
foreach ($vm in $vmList) {
    $row = "" | Select Name, Notes
    $row.name = $vm.Name
    $row.Notes = $vm | select Notes
    $notelist += $row
}
$noteList | Export-Csv ".\exported-notes.csv" –NoTypeInformation

Disconnect-VIServer "*" -Confirm:$False

 

Import

E ora reimportiamo il tutto:

Connect-VIserver -server VCdest.vlab.local

$noteList = Import-Csv ".\exported-notes.csv"
foreach($nLine in $noteList){
    if ( $nLine.Notes -ne ""){
        Set-VM -VM $nLine.Name -Notes $nLine.Notes -Confirm:$false
    }
}

Disconnect-VIServer "*" -Confirm:$False

Categories: vmware, vsphere Tags: ,

Import-Export VM notes with PowerCLI

24 Jul 2014 1 comment

In a previous post I blogged about exporting and importing custom attributes, but sometimes you need to do the same also for notes.

A little PowerCLI and all is done quickly.

Export

Just connect to our source vCenter, export all notes and disconnect:

Connect-VIserver -server VCsource.vlab.local
$vmList = Get-VM
$noteList = @()
foreach ($vm in $vmList) {
$row = “” | Select Name, Notes
$row.name = $vm.Name
$row.Notes = $vm | select Notes
$notelist += $row
}
$noteList | Export-Csv “.\exported-notes.csv” –NoTypeInformation

Disconnect-VIServer “*” -Confirm:$False

 

Import

And now lets import all notes:

Connect-VIserver -server VCdest.vlab.local

$noteList = Import-Csv “.\exported-notes.csv”
foreach($nLine in $noteList){
if ( $nLine.Notes -ne “”){
Set-VM -VM $nLine.Name -Notes $nLine.Notes -Confirm:$false
}
}

Disconnect-VIServer “*” -Confirm:$False

Categories: vmware, vsphere Tags: ,

Import–Export VM custom attributes from vCenter with PowerCLI

21 Jul 2014 1 comment

Some time ago, during a migration, I needed to migrate all VM custom attributes from a cluster in a first vCenter to another one.

As easy (and boring…) as is to just retype the attributes value, there was over 400 VMs, and I didn’t want to do this by hand.

So…PowerCLI to the rescue! Here the two little script I used for this task.

 

Export

First lets connect to our source vCenter and export all custom attributes:

Connect-VIserver -server VCsource.vlab.local

$attList = @()
$attList = Get-CustomAttribute -TargetType VirtualMachine
$attList | Export-Csv “.\exported-attributes.csv” –NoTypeInformation

then lets export all attributes values and disconnect:

$valueList =@()
Get-cluster CL01 | get-vm | % {
for($i = 0; $i -lt $_.CustomFields.Count; $i ++ ){
$row = “” | Select VMname, FieldKey, FieldValue
$row.VMname = $_.Name
$row.FieldKey = $_.CustomFields.Keys[$i]
$row.FieldValue = $_.CustomFields.Values[$i]
$valueList += $row
}
}
$valueList | Export-Csv “.\exported-attributes-value.csv” -NoTypeInformation

 

Disconnect-VIServer –server “*” -Confirm:$False

 

Import

Ok, now we have all vm moved to the destination vCenter and is time to import all attributes.

First connect to destination vCenter and re-create attributes:

Connect-VIserver -server VCdest.vlab.local

$attList = @()
$attList = Import-Csv “.\exported-attributes.csv”
foreach ($CustAttrib in $attList){
New-CustomAttribute -Name $CustAttrib.Name -TargetType $CustAttrib.TargetType
}

and, at last, lets import all attribute values and disconnect:

$NewAttribs = Import-Csv “.\exported-attributes-value.csv”
foreach($line in $NewAttribs){
# if value is empty, skip it (just to have all the import go faster)
if( $line.FieldValue -ne “”) {
Set-CustomField -Entity (get-vm $line.VMName) -Name $line.FieldKey -Value $line.FieldValue -confirm:$false
}
}

Disconnect-VIServer “*” -Confirm:$False

 

Easy peasy, doesn’t it?  Occhiolino

Categories: vmware, vsphere Tags: ,

Import–Export dei custom attributes delle VM tramite PowerCLI

21 Jul 2014 Leave a comment

Qualche tempo fa, durante una migrazione, mi e’ capitato di dover migrare tutti i valori degli attributi custom delle VM da un vCenter ad un altro.

Per quanto fosse un compito facile (basta ricreare gli attributi e copiare via via i valori), c’erano più di 400 VM e non volevo farlo a mano.

Niente di meglio che usare un po’ di PowerCLI ! Ecco qui i due piccoli script che ho usato.

 

Export

Per prima cosa connettiamoci al vCenter sorgente e esportiamo tutti i custom attribute:

Connect-VIserver -server VCsource.vlab.local

$attList = @()
$attList = Get-CustomAttribute -TargetType VirtualMachine
$attList | Export-Csv “.\exported-attributes.csv” –NoTypeInformation

ora esportiamo anche tutti i valori dei custom attibute delle varie VM e disconnettiamoci:

$valueList =@()
Get-cluster CL01 | get-vm | % {
for($i = 0; $i -lt $_.CustomFields.Count; $i ++ ){
$row = “” | Select VMname, FieldKey, FieldValue
$row.VMname = $_.Name
$row.FieldKey = $_.CustomFields.Keys[$i]
$row.FieldValue = $_.CustomFields.Values[$i]
$valueList += $row
}
}
$valueList | Export-Csv “.\exported-attributes-value.csv” -NoTypeInformation

 

Disconnect-VIServer –server “*” -Confirm:$False

 

Import

Ok, ora è il momento di importare tutto nel vCenter destinazione (ovviamente dopo aver migrato le varie VM).

Per prima cosa connettiamoci al vCenter destinazione e ricreiamo gli attribute:

Connect-VIserver -server VCdest.vlab.local

$attList = @()
$attList = Import-Csv “.\exported-attributes.csv”
foreach ($CustAttrib in $attList){
New-CustomAttribute -Name $CustAttrib.Name -TargetType $CustAttrib.TargetType
}

ed infine importiamo i valori e disconnettiamoci:

$NewAttribs = Import-Csv “.\exported-attributes-value.csv”
foreach($line in $NewAttribs){
# if value is empty, skip it (just to have all the import go faster)
if( $line.FieldValue -ne “”) {
Set-CustomField -Entity (get-vm $line.VMName) -Name $line.FieldKey -Value $line.FieldValue -confirm:$false
}
}

Disconnect-VIServer “*” -Confirm:$False

 

Meglio così che farsi un lungo e noioso lavoro di copiatura no?  Occhiolino

Categories: vmware, vsphere Tags: ,