VMware vSphere PowerCLI ist eine Reihe von PowerShell-Modulen zur Verwaltung der VMware-Infrastruktur über die Eingabeaufforderung. Sie können PowerCLI verwenden, um einen Standing von virtuellen Maschinen, Datenspeichern, Netzwerken oder Benutzern abzurufen, verschiedene Einstellungen zu verwalten, neue Objekte zu erstellen und PowerShell in Automatisierungsaufgaben für ESXi, vCenter Server, vSphere, vSAN und andere VMware-Produkte zu verwenden.

Derzeit entwickelt VMware eine PowerCLI-Model nur für PowerShell Core (7.0+). Diese PowerShell-Model ist plattformübergreifend und kann unter Home windows, Linux oder macOS verwendet werden. Für frühere PowerCLI-Module für Home windows PowerShell 5.x werden nur Sicherheitsfixes veröffentlicht. Es wird empfohlen, eine aktualisierte PowerShell Core-Model zu verwenden.

Wie installiere ich das VMware PowerCLI-Modul unter Home windows?

Sie können die VMware PowerCLI in Home windows on-line oder offline installieren.

Um PowerCLI aus der PowerShell-Galerie on-line zu installieren, führen Sie den folgenden Befehl aus:

Set up-Module -Identify VMware.PowerCLI

PowerCLI vSphere Model 6.5 oder früher wurde als MSI-Installationsprogramm verteilt.

Wenn Sie das Modul nur für den aktuellen Benutzer installieren möchten:

Set up-Module VMware.PowerCLI -Scope CurrentUser

Standardmäßig wird die neueste PowerCLI-Model aus der PowerShell-Galerie installiert. Wenn Sie eine bestimmte PowerCLI-Model installieren möchten, können Sie die vollständige Liste der verfügbaren Versionen anzeigen und die gewünschte Model installieren:

In finding-Module -Identify VMware.PowerCLI -AllVersions|make a selection model
Set up-Module -Identify VMware.PowerCLI -RequiredVersion 12.4.0.17860403

vmware powercli installiert eine bestimmte Version

Während der Set up werden Sie aufgefordert, Ihren NuGet-Anbieter zu aktualisieren. Bestätigen Sie außerdem die Set up aus einem nicht vertrauenswürdigen PowerShell Gallery-Repository. Sie können es zu einem vertrauenswürdigen machen, indem Sie das verwenden Set_PSRepository cmdlet.

Überprüfen Sie, ob die PowerCLI-Module installiert wurden, und zeigen Sie ihre Versionen an:

Get-Module -ListAvailable VMware* | Choose Identify,model

vmware powercli verfügbare module

Um Ihre PowerCLI-Modulversion zu aktualisieren, führen Sie einfach den folgenden Befehl aus:

Replace-Module -Identify VMware.PowerCLI

Wenn Sie das Choco-Paketverwaltungsmodul in Home windows installiert haben, finden Sie das PowerCLI-Modul im Repository:

choco seek vmware

und installiere es:

choco set up vmware-powercli-psmodule

Das PowerCLI-Modul ist in winget noch nicht verfügbar.

Wenn Sie PowerCLI auf einem isolierten Laptop (nicht verbundene Umgebung) installieren möchten, können Sie ein Offline-Installationsprogramm verwenden.

  1. Obtain einer ZIP-Datei mit dem PowerCLI-Modul https://code.vmware.com/internet/device/vmware-powercli (die Größe des ZIP-Archivs mit der aktuellen VMware-PowerCLI 12.4.1 beträgt ca. 80 MB);
  2. Entpacken Sie das Archiv in das Verzeichnis mit PowerShell-Modulen auf dem Laptop (eine Liste der PoSh-Modulverzeichnisse erhalten Sie mit $env:PSModulePath). Meistens C:Program FilesWindowsPowerShellModules wird genutzt.
  3. Entsperren Sie die aus dem Web heruntergeladenen Dateien:
    cd “c:Program FilesWindowsPowerShellModules”
    Get-ChildItem * -Recurse | Unblock-Report
  4. Öffnen Sie die PowerShell-Konsole und stellen Sie sicher, dass das PowerCLI-Modul jetzt verfügbar ist: Get-Module -Identify VMware.PowerCLI –ListAvailable

Führen Sie den folgenden Befehl aus, um das PowerCLI-Modul in die aktuelle PowerShell ISE- oder Visible Studio Code-Sitzung zu importieren:

Import-Module VMware.VimAutomation.Core

Beim Weighted down des Moduls wird möglicherweise diese Fehlermeldung angezeigt:

Import-Module: Report C:Program FilesWindowsPowerShellModulesVMware.VimAutomation.Sdk12.4.0.18627054VMware.VimAutomation.Sdk.psm1 can't be loaded as a result of operating scripts is disabled in this gadget.

Dann müssen Sie die PowerShell-Skriptausführungsrichtlinie konfigurieren. So erlauben Sie die Verwendung des Moduls in der aktuellen Sitzung:

Set-ExecutionPolicy Unrestricted -Scope Procedure

Sie können ein auf einem Far off-Laptop installiertes PowerCLI-Modul verwenden. Importieren Sie es dazu aus der Ferne mit PSRemoting:

$consultation = New-PSSession -ComputerName mun-svr01

Importieren Sie das PowerCLI-Modul auf Ihren Laptop:

Import-Module -PSsession $consultation -Identify VMware.VimAutomation.Core

Vergessen Sie nicht, die Sitzung zu schließen, wenn Sie fertig sind:

Take away-PSSession $consultation

Installieren des PowerCLI-Moduls unter Linux

Sie können PowerCLI sowohl unter Home windows als auch unter Linux installieren und verwenden. Installieren Sie zunächst PowerShell Core auf Ihrem Linux-Host. Führen Sie dann die folgenden Befehle in der Konsole aus, um VMware PowerCLI zu installieren:

pwsh
Set up-Module -Identify VMware.PowerCLI

Wie installiere ich PowerCLI unter Linux?

Importieren Sie das Modul in Ihre Sitzung:

Import-Module VMware.PowerCLI

Grundlegende PowerCLI-Befehle zum Verwalten von VMware vSphere und VMs

Sie können eine Liste von Cmdlets in PowerCLI-Modulen wie folgt abrufen (über 2200 Befehle sind verfügbar):

Get-Command –Module *vmware*

Befehle in PowerCLI Core abrufen

So deaktivieren Sie die CEIP-Benachrichtigung (VMware Buyer Revel in Development Program):

Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false

So stellen Sie eine Verbindung zu vCenter Server oder einem ESXi-Host her:

Attach-VIServer <vCenter_or_ESXi_FQDN>

Wenn Sie ein selbstsigniertes SSL-Zertifikat für Ihren vCenter Server verwenden, blockiert PowerCLI die Verbindung:

Attach-VIServer Error: Invalid server certificates. Use Set-PowerCLIConfiguration to set the worth for the InvalidCertificateAction approach to Urged if you want to glue as soon as or so as to add an enduring exception for this server.
Further Knowledge: May just no longer determine accept as true with dating for the SSL/TLS protected channel with authority.

So ignorieren Sie selbstsignierte Zertifikate:

Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn

So zeigen Sie eine Liste der auf Ihrem ESXi- (oder vCenter-) Server registrierten virtuellen Maschinen an:

Get–VM

So zeigen Sie nur ausgeschaltete VMs an:

Get-VM | The place {$_.Powerstate -ne “PoweredOn”} | Choose Identify, VMHost, NumCPU, MemoryMB, Model|Layout-Desk

VMware PowerCLI: listet alle ausgeschalteten VMs auf

So starten Sie eine virtuelle Maschine:

Get started-VM -VM MUNTestVM1

So starten Sie eine VM korrekt neu (mit dem VMware-Gear-Agent):

Restart-VMGuest -VM MunTestVM1 -Verify:$False

So fahren Sie eine VM herunter:

Shutdown-VMGuest -VM MunTestVM1 -Verify:$False

So zeigen Sie eine Liste mit Snapshots für eine VM an:

Get-VM -VM MunTestVM1 | Get-Snapshot| Layout-Listing

Um eine laufende VM mit VMotion auf einen anderen Host zu verschieben, wird der Transfer-VM-Befehl verwendet. Sie möchten beispielsweise alle VMs von mun-esxi1 nach mun-esxi2 verschieben:

Get-VMHost mun-esxi1|Get-Vm| Transfer-VM –Vacation spot (Get-VMHost mun-esxi2)

Verwenden Sie zum Erstellen einer neuen virtuellen Maschine die Neue-VM cmdlet:

New-VM –Identify MunTestVM1 -VMHost mun-esxi1 –ResourcePool Manufacturing –DiskGB 20 –DiskStorageFormat Skinny –Datastore MUN_MSA2000_Prod1

Verwenden Sie die Set-VM Cmdlet, um die Einstellungen der virtuellen Maschine zu ändern.

Mithilfe von PowerCLI-Cmdlets können Sie mit einem Gastbetriebssystem Ihrer virtuellen Maschinen interagieren. Dazu müssen VMware Gear in der VM installiert sein. Sie können VMware Gear wie unten gezeigt aktualisieren:

Get-VMGuest MunTestVM1 | Replace-Gear

Mit Invoke-VMS können Sie ein Skript oder Programm in einem Home windows-Gastbetriebssystem ausführen:

$script=""%programfilesp.cCommonplace FilesMicrosoft SharedMSInfomsinfo32.exe" /record "%tmpp.cinforeport""
Invoke-VMScript -ScriptText $script -VM MunTestVM1 -HostCredential $hostCred -GuestCredential $VMCred -ScriptType Bat

Um eine Datei auf alle VMs zu kopieren, führen Sie diesen Befehl aus:
Get-VM | Reproduction-VMGuestFile -Supply C:PSget-size.ps1 -Vacation spot C:PS - LocalToGuest -GuestUser administrator -GuestPassword P@ssdr0w2

Das Modul enthält Cmdlets zum Verwalten von Clustern, Rechenzentren, Datenspeichern und ESXi-Hosts:

Get-VMHost
Get-Datacenter
Get-Cluster
Get-Datastore
Get-VirtualPortGroup

So zeigen Sie eine Liste von ESXi-Hosts in einem Cluster an:

Get-Cluster munprod1 | Get-VMHost | type title

Versetzen Sie einen bestimmten ESXi-Host in den Wartungsmodus:
Set-VMhost -VMHost mun-esxi1 -State Repairs

So verbinden Sie eine iSCSI-LUN mit einem ESXi-Host und erstellen darauf einen VMFS-Datenspeicher:
Get-ScsiLun -VmHost mun-esxi1 | toes
New-Datastore -Identify 'mun_iscsi_datastore' -VMHost mun-esxi1 -Trail naa.6000xxxxxxxxxxxxxxxx -Vmfs

PowerCLI-Beispielskripts

Es gibt einige Beispiele für die Verwendung von PowerCLI, um Informationen über VMware-Infrastrukturelemente abzurufen und einige Aktionen auf der Web page zu automatisieren. Sie können die Beispiele aus den folgenden Artikeln verwenden, um Ihre eigenen PowerCLI-Skripte zu schreiben:

vSphere PowerCLI ist ein leistungsstarkes Software zur Verwaltung und Automatisierung Ihrer VMware-Infrastruktur. PowerCLI enthält mehr als 2000 Cmdlets zur Verwaltung von Cloud- und lokalen VMware-Infrastrukturen (vSphere, vSAN, vRealize Operations Supervisor, vCloud Director, Web page Restoration Supervisor, Horizon, NSX-T, VMware Cloud Services and products, VMware Cloud on AWS usw.).


https://aspiringsysadmin.com/