2012-03-15 14 views
7

Sto ricevendo il seguente problema di compilazione in PowerShell.Come verificare lo snapshot prima di aggiungere?

Add-PSSnapin : Cannot add Windows PowerShell snap-in VMware.VimAutomation.Core because it is already added. Verify the name of the snap-in and try again.

L'errore indica chiaramente che è necessario verificare il nome dello snap-in. È stato aggiunto con successo quando eseguo la prima volta.

Come verificare lo snap-in esistente, in caso contrario aggiungere?

+0

possibile duplicato di [Come verificare se lo snap-in di PowerShell è già caricato prima di chiamare Add-PSSnapin] (http://stackoverflow.com/questions/1477994/how-to-check-if-powershell-snap-in -is-già-caricato-prima-chiamare-Add-PSSnapin) – JohnC

risposta

11

È possibile caricarlo se non è caricato già:

if(-not (Get-PSSnapin VMware.VimAutomation.Core)) 
{ 
    Add-PSSnapin VMware.VimAutomation.Core 
} 

Si potrebbe anche caricarlo comunque e ignorare l'errore:

Add-PSSnapin VMware.VimAutomation.Core -ErrorAction SilentlyContinue 
0

stavo ottenendo i seguenti errori e pensato che fosse a causa lo snap-in era già caricato ma non sembra essere il caso.

ERROR: The specified mount name 'vmstores' is already in use. 
ERROR: The specified mount name 'vis' is already in use. 

La soluzione di cui sopra è sicuramente molto più semplicistica di quanto ho iniziato a scrivere qui sotto.

Suppongo che l'unico fattore che contribuisce sarebbe guardare se lo snap-in è registrato per primo.

$snaps1 = Get-PSSnapin -Registered 
$snaps2 = Get-PSSnapin *VMWare -ErrorAction SilentlyContinue 

$vmsnap = 0 

foreach ($snap1 in $snaps1) { 
    if ($snap1.name -eq "VMware.VimAutomation.Core") { 
     Write-Host "VM Snapin Registered..." 
     $vmsnap = 1 
     } 
    } 

if ($vmsnap -eq 0) { 
    Write-Host "VMWare Snapin NOT Registered. Ensure the CLI is installed and available on machine." 
} 

if ($vmsnap -eq 1) { 
    foreach ($snap2 in $snaps2) { 
     if($snap2.name -eq "VMware.VIMAutomation.Core") { 
      Write-Host "VMware Snapin Already Loaded..." 
      $vmsnap = 2 
      } 
     } 
    } 

if ($vmsnap -ne 2) { 
    Write-Host "Loading VMware Snapin..." 
Add-PSSnapin VMware.VimAutomation.Core 
} 

concesso Sono ancora molto molto molto nuovo alla sintassi PS.

Problemi correlati