que estaba recibiendo los siguientes errores y pensó que era porque el complemento ya estaba cargado, pero no parece ser el caso.
ERROR: The specified mount name 'vmstores' is already in use.
ERROR: The specified mount name 'vis' is already in use.
La solución proporcionada anteriormente es sin duda mucho más simplista que lo que comencé a escribir a continuación.
Supongo que el único factor que contribuirá a esto es ver si el snapin está registrado primero.
$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
}
concedido todavía estoy muy muy muy nuevo a la sintaxis PS.
posible duplicado de [Cómo comprobar si el complemento de PowerShell ya está cargado antes de llamar a Add-PSSnapin] (http://stackoverflow.com/questions/1477994/how-to-check-if-powershell-snap-in -is-already-loaded-before-calling-add-pssnapin) – JohnC