2012-03-15 8 views
7

मुझे पावरहेल में निम्नलिखित संकलन समस्या मिल रही है।जोड़ने से पहले स्नैपिन को कैसे सत्यापित करें?

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.

त्रुटि स्पष्ट रूप से उल्लेख करती है कि मुझे स्नैप-इन का नाम सत्यापित करने की आवश्यकता है। जब मैं पहली बार स्वयं निष्पादित करता हूं तो इसे सफलतापूर्वक जोड़ा गया था।

स्नैप-इन कैसे सत्यापित करें, यदि नहीं तो मौजूद है?

+0

संभावित डुप्लिकेट [कैसे जांचें कि PowerShell स्नैप-इन पहले से ही एड-पीएसएसएनएपीएन कॉल करने से पहले लोड हो चुका है] (http://stackoverflow.com/questions/1477994/how-to-check-if-powershell-snap-in -is-पहले से ही-लोडेड पहले कॉल करने वाले एड-pssnapin) – JohnC

उत्तर

11

आप इसे लोड कर सकते हैं, यदि वह पहले से लोड नहीं है:

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

आप भी इसे वैसे भी लोड और त्रुटि को अनदेखा कर सकते हैं:

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

मैं निम्नलिखित त्रुटियाँ हो रही थी और इसकी वजह थी सोचा स्नैपिन पहले ही लोड हो चुका था लेकिन ऐसा लगता है कि यह मामला नहीं है।

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

ऊपर दिया गया समाधान निश्चित रूप से नीचे लिखना शुरू करने से कहीं अधिक सरल है।

मुझे लगता है कि एक योगदान कारक यह देखने के लिए होगा कि स्नैपिन पहले पंजीकृत है या नहीं।

$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 
} 

ने मुझे अभी भी पीएस वाक्यविन्यास के लिए बहुत ही नया नया दिया है।