VMware vSphere PowerCLI VMware इंफ्रास्ट्रक्चर को कमांड प्रॉम्प्ट से प्रबंधित करने के लिए पावरशेल मॉड्यूल का एक सेट है। आप PowerCLI का उपयोग वर्चुअल मशीन, डेटास्टोर, नेटवर्क, या उपयोगकर्ताओं की स्थिति प्राप्त करने, विभिन्न सेटिंग्स प्रबंधित करने, नए ऑब्जेक्ट बनाने, और ESXi, vCenter सर्वर, vSphere, vSAN, और अन्य VMware उत्पादों के लिए ऑटोमेशन कार्यों में पावरशेल का उपयोग करने के लिए कर सकते हैं।
वर्तमान में, VMware केवल पावरशेल कोर (7.0+) के लिए PowerCLI संस्करण विकसित कर रहा है। यह पावरशेल संस्करण क्रॉस-प्लेटफॉर्म है और Windows, Linux, या macOS में उपयोग किया जा सकता है। केवल सुरक्षा फिक्स पहले के PowerCLI मॉड्यूल के लिए जारी किए जाते हैं जो Windows PowerShell 5.x के लिए हैं। अपडेटेड पावरशेल कोर संस्करण उपयोग करने की अनुशंसा की जाती है।
Windows पर VMware PowerCLI मॉड्यूल कैसे इंस्टॉल करें?
आप VMware PowerCLI को Windows में ऑनलाइन या ऑफलाइन इंस्टॉल कर सकते हैं।
PowerShell गैलरी से ऑनलाइन PowerCLI इंस्टॉल करने के लिए, नीचे दी गई कमांड चलाएं:
Install-Module -Name VMware.PowerCLI
PowerCLI vSphere संस्करण 6.5 या पहले MSI इंस्टॉलर के रूप में वितरित किया गया था।
यदि आप मॉड्यूल को केवल वर्तमान उपयोगकर्ता के लिए इंस्टॉल करना चाहते हैं:
Install-Module VMware.PowerCLI -Scope CurrentUser
डिफ़ॉल्ट रूप से, PowerShell गैलरी से नवीनतम PowerCLI संस्करण इंस्टॉल होता है। यदि आप विशिष्ट PowerCLI संस्करण इंस्टॉल करना चाहते हैं, तो उपलब्ध सभी संस्करणों की पूरी सूची प्रदर्शित करें और जो चाहें इंस्टॉल करें:
Find-Module -Name VMware.PowerCLI -AllVersions|select version
Install-Module -Name VMware.PowerCLI -RequiredVersion 12.4.0.17860403

इंस्टॉलेशन के दौरान, आपको अपने NuGet प्रदाता को अपडेट करने के लिए प्रेरित किया जाएगा। साथ ही, अविश्वसनीय PowerShell गैलरी रिपॉजिटरी से इंस्टॉलेशन की पुष्टि करें। आप Set_PSRepository cmdlet का उपयोग करके इसे विश्वसनीय बना सकते हैं।
जांचें कि PowerCLI मॉड्यूल इंस्टॉल हो गए हैं और उनके संस्करण प्रदर्शित करें:
Get-Module -ListAvailable VMware* | Select Name,version

अपने PowerCLI मॉड्यूल संस्करण अपडेट करने के लिए, बस कमांड चलाएं:
Update-Module -Name VMware.PowerCLI
यदि आपके Windows में Choco पैकेज मैनेजमेंट मॉड्यूल इंस्टॉल है, तो आप रिपॉजिटरी में PowerCLI मॉड्यूल ढूंढ सकते हैं:
choco search vmware
और इसे इंस्टॉल करें:
choco install vmware-powercli-psmodule
PowerCLI मॉड्यूल अभी तक winget में उपलब्ध नहीं है।
यदि आप किसी आइसोलेटेड कंप्यूटर (डिस्कनेक्टेड वातावरण) पर PowerCLI इंस्टॉल करना चाहते हैं, तो आप ऑफलाइन इंस्टॉलर का उपयोग कर सकते हैं।
- PowerCLI मॉड्यूल के साथ ZIP फाइल डाउनलोड करें https://code.vmware.com/web/tool/vmware-powercli (वर्तमान VMware-PowerCLI 12.4.1 के साथ ZIP आर्काइव का आकार लगभग 80 MB है);
- आर्काइव को कंप्यूटर पर पावरशेल मॉड्यूल वाली डायरेक्टरी में अनजिप करें (आप
$env:PSModulePathका उपयोग करके PoSh मॉड्यूल डायरेक्टरी की सूची प्राप्त कर सकते हैं)। आमतौर परC:\Program Files\WindowsPowerShell\Modulesउपयोग किया जाता है। - इंटरनेट से डाउनलोड की गई फाइलों को अनब्लॉक करें:
cd “c:\Program Files\WindowsPowerShell\Modules”
Get-ChildItem * -Recurse | Unblock-File - पावरशेल कंसोल खोलें और सुनिश्चित करें कि PowerCLI मॉड्यूल अब उपलब्ध है:
Get-Module -Name VMware.PowerCLI –ListAvailable
पावरशेल मॉड्यूल के ऑफलाइन इंस्टॉलेशन के बारे में और पढ़ें।
वर्तमान पावरशेल ISE या Visual Studio Code सत्र में PowerCLI मॉड्यूल इम्पोर्ट करने के लिए, निम्न कमांड चलाएं:
Import-Module VMware.VimAutomation.Core
मॉड्यूल लोड करते समय आपको यह त्रुटि संदेश दिखाई दे सकता है:
Import-Module: File C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.4.0.18627054\VMware.VimAutomation.Sdk.psm1 cannot be loaded because running scripts is disabled on this system.
फिर आपको पावरशेल स्क्रिप्ट निष्पादन नीति कॉन्फ़िगर करनी होगी। वर्तमान सत्र में मॉड्यूल उपयोग करने की अनुमति देने के लिए:
Set-ExecutionPolicy Unrestricted -Scope Process
आप रिमोट कंप्यूटर पर इंस्टॉल PowerCLI मॉड्यूल उपयोग कर सकते हैं। ऐसा करने के लिए, PSRemoting का उपयोग करके इसे रिमोटली इम्पोर्ट करें:
$session = New-PSSession -ComputerName mun-svr01
PowerCLI मॉड्यूल को अपने कंप्यूटर पर इम्पोर्ट करें:
Import-Module -PSsession $session -Name VMware.VimAutomation.Core
जब आपका काम पूरा हो जाए तो सत्र बंद करना न भूलें:
Remove-PSSession $session
Linux पर PowerCLI मॉड्यूल इंस्टॉल करना
आप PowerCLI को Windows और Linux दोनों में इंस्टॉल और उपयोग कर सकते हैं। पहले अपने Linux होस्ट पर पावरशेल कोर इंस्टॉल करें। फिर कंसोल में निम्न कमांड्स चलाकर VMware PowerCLI इंस्टॉल करें:
pwsh
Install-Module -Name VMware.PowerCLI

मॉड्यूल को अपने सत्र में इम्पोर्ट करें:
Import-Module VMware.PowerCLI
VMware vSphere और VMs प्रबंधित करने के लिए बुनियादी PowerCLI कमांड्स
आप PowerCLI मॉड्यूल में cmdlets की सूची इस प्रकार प्राप्त कर सकते हैं (2200 से अधिक कमांड उपलब्ध हैं):
Get-Command –Module *vmware*

VMware कस्टमर एक्सपीरियंस इम्प्रूवमेंट प्रोग्राम (CEIP) अधिसूचना अक्षम करने के लिए:
Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false
vCenter सर्वर या ESXi होस्ट से कनेक्ट करने के लिए:
Connect-VIServer <vCenter_or_ESXi_FQDN>
यदि आप अपने vCenter सर्वर के लिए सेल्फ-साइन SSL सर्टिफिकेट उपयोग कर रहे हैं, तो PowerCLI कनेक्शन ब्लॉक कर देगा:
Connect-VIServer Error: Invalid server certificate. Use Set-PowerCLIConfiguration to set the value for the InvalidCertificateAction option to Prompt if you'd like to connect once or to add a permanent exception for this server. Additional Information: Could not establish trust relationship for the SSL/TLS secure channel with authority.
सेल्फ-साइन सर्टिफिकेट इग्नोर करने के लिए:
Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn
आपके ESXi (या vCenter) सर्वर पर रजिस्टर्ड वर्चुअल मशीनों की सूची प्रदर्शित करने के लिए:
Get–VM
केवल पावर्ड ऑफ VMs दिखाने के लिए:
Get-VM | Where {$_.Powerstate -ne “PoweredOn”} | Select Name, VMHost, NumCPU, MemoryMB, Version|Format-Table

वर्चुअल मशीन शुरू करने के लिए:
Start-VM -VM MUNTestVM1
VM को सही ढंग से रीस्टार्ट करने के लिए (VMware tools एजेंट का उपयोग करके):
Restart-VMGuest -VM MunTestVM1 -Confirm:$False
VM बंद करने के लिए:
Shutdown-VMGuest -VM MunTestVM1 -Confirm:$False
VM के लिए स्नैपशॉट की सूची प्रदर्शित करने के लिए:
Get-VM -VM MunTestVM1 | Get-Snapshot| Format-List
चल रही VM को दूसरे होस्ट पर vMotion का उपयोग करके ले जाने के लिए, Move-VM कमांड उपयोग किया जाता है। उदाहरण के लिए, आप mun-esxi1 से mun-esxi2 पर सभी VMs ले जाना चाहते हैं:
Get-VMHost mun-esxi1|Get-Vm| Move-VM –Destination (Get-VMHost mun-esxi2)
नई वर्चुअल मशीन बनाने के लिए, New-VM cmdlet उपयोग करें:
New-VM –Name MunTestVM1 -VMHost mun-esxi1 –ResourcePool Production –DiskGB 20 –DiskStorageFormat Thin –Datastore MUN_MSA2000_Prod1
वर्चुअल मशीन सेटिंग्स बदलने के लिए Set-VM cmdlet उपयोग करें।
PowerCLI cmdlets का उपयोग करके, आप अपनी वर्चुअल मशीनों के गेस्ट ऑपरेटिंग सिस्टम के साथ इंटरैक्ट कर सकते हैं। ऐसा करने के लिए, VM में VMware Tools इंस्टॉल होना चाहिए। आप VMware Tools को नीचे दिखाए अनुसार अपडेट कर सकते हैं:
Get-VMGuest MunTestVM1 | Update-Tools
Invoke-VMS का उपयोग करके, आप गेस्ट Windows OS में स्क्रिप्ट या प्रोग्राम चला सकते हैं:
$script = '"%programfiles%\Common Files\Microsoft Shared\MSInfo\msinfo32.exe" /report "%tmp%\inforeport"'
Invoke-VMScript -ScriptText $script -VM MunTestVM1 -HostCredential $hostCred -GuestCredential $VMCred -ScriptType Bat
सभी VMs पर फाइल कॉपी करने के लिए, यह कमांड चलाएं:
Get-VM | Copy-VMGuestFile -Source C:\PS\get-size.ps1 -Destination C:\PS\ - LocalToGuest -GuestUser administrator -GuestPassword P@ssdr0w2
मॉड्यूल में क्लस्टर, डेटासेंटर, डेटास्टोर, और ESXi होस्ट प्रबंधित करने के लिए cmdlets हैं:
Get-VMHost
Get-Datacenter
Get-Cluster
Get-Datastore
Get-VirtualPortGroup
क्लस्टर में ESXi होस्ट की सूची प्रदर्शित करने के लिए:
Get-Cluster munprod1 | Get-VMHost | sort name
विशिष्ट ESXi होस्ट को मेंटेनेंस मोड में रखें:
Set-VMhost -VMHost mun-esxi1 -State Maintenance
ESXi होस्ट पर iSCSI LUN कनेक्ट करें और उस पर VMFS डेटास्टोर बनाएं:
Get-ScsiLun -VmHost mun-esxi1 | ft
New-Datastore -Name 'mun_iscsi_datastore' -VMHost mun-esxi1 -Path naa.6000xxxxxxxxxxxxxxxx -Vmfs
टिप. PowerCLI मुफ़्त VMware vSphere हाइपरवाइज़र के साथ रीड-ओनली मोड में काम करता है। इसका मतलब है कि आप होस्ट और VM सेटिंग्स देखने के लिए कमांड्स उपयोग कर सकते हैं, लेकिन आप उन्हें बदल नहीं सकते।
PowerCLI उदाहरण स्क्रिप्ट्स
वेबसाइट पर PowerCLI का उपयोग करके VMware इंफ्रास्ट्रक्चर आइटम्स के बारे में जानकारी प्राप्त करने और कुछ कार्यों को ऑटोमेट करने के कुछ उदाहरण हैं। आप निम्नलिखित लेखों के उदाहरणों का उपयोग करके अपने स्वयं के PowerCLI स्क्रिप्ट लिख सकते हैं:
- VMFS डेटास्टोर पर फ्री डिस्क स्पेस जांचना
- VMware वर्चुअल डिस्क (VMDK फाइलें) और Windows ड्राइव वॉल्यूम मैप करना
- IP या MAC पते द्वारा VMware VMs कैसे खोजें?
- VMware ESXi होस्ट पर SNMP कॉन्फ़िगर करें
- अटके हुए VMware VM को जबरन रीस्टार्ट कैसे करें?
- VMware टेम्पलेट्स में Windows अपडेट कैसे ऑटोमेट करें?
- ESXi इंस्टॉलेशन इमेज में ड्राइवर इंजेक्ट करना
- VMware VM कंसोलिडेशन नीडेड स्टेटस अलार्म
- VM हार्डवेयर संस्करण अपग्रेड करना
vSphere PowerCLI आपके VMware इंफ्रास्ट्रक्चर को प्रबंधित और ऑटोमेट करने के लिए एक शक्तिशाली टूल है। PowerCLI में क्लाउड और ऑन-प्रिमाइसेस VMware इंफ्रास्ट्रक्चर (vSphere, vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon, NSX-T, VMware Cloud Services, VMware Cloud on AWS, आदि) को प्रबंधित करने के लिए 2000 से अधिक cmdlets शामिल हैं।