Il 20 Agosto scorso è stata rilasciata la nuova versione PowerCLI 11.4.0 che include numerosi nuovi miglioramenti. Il modulo Horizon View è stato aggiornato per supportare la versione più recente di Horizon View che è la versione 7.9. Esistono alcuni aggiornamenti al modulo Storage, inclusi gli aggiornamenti e tre nuovi cmdlet. Infine, ci sono numerosi aggiornamenti ai cmdlet nel modulo HCX. Con PowerCLI 11.4.0 vengono forniti i seguenti aggiornamenti:
- Add support for Horizon View 7.9
- Added new cmdlets to the Storage module
- Updated Storage module cmdlets
- Updated HCX module cmdlets
L'update della PowerCLI di per se è semplice, come indicato anche in un mio precedente post è sufficiente lanciare il comando 'Update-Module -Name VMware.PowerCLI' ... accettare premendo 'A' e listare i moduli disponibili sul sistema con il comando 'Get-Module -Name VMware.* -ListAvailable'
... e come per le precedenti versioni, utilizzando il comando Update-Module per aggiornare i moduli, le versioni esistenti non vengono rimosse. Come vediamo dall'immagine sopra ci sono righe che contengono gli stessi moduli ma con diverse versioni. Esattamente come indicato nel precedente post "PowerCLI 11.0.0 Updates - Automatic script to remove unnecessary modules" procedo con la rimozione dei moduli non più necessari; utilizzando lo script per la rimozione automatica dei moduli più vecchi. Lo script è stato modificato per avere un Output migliorato, nel seguente modo
#!/usr/local/bin/pwsh
########################################################################################
# File : PurgeDuplicatePowerCliModules.ps1
# Author: Lorenzo Moglie
# Date : 17.10.2018
# Update : 26.08.2018
# Version : 1.5.0.0
# Disclaimer : The script is provided as is, use at your own risk.
# Description : This script list the VMware Modules Available into a TXT file. Read
# the txt file, line by line and comparing the duplicate modules
# uninstalling the older version
#######################################################################################
Get-Module -Name VMware.* -ListAvailable | select Name,Version > ModuleList.txt
$NameStr = ""
$VersionApp = ""
$Report = @()
Get-Content ./ModuleList.txt | where {$_ -ne ""} | ForEach-Object {
$line=[regex]::Replace($_, "\s+", " ")
$NameModule,$VersionModule = $line.split(' ')
$tempModule=@{}
if($NameStr -match $NameModule) {
$tempModule.NameModule = $NameModule
$tempModule.VerOne = $VersionModule
$tempModule.VerTwo = $VersionApp
if ([System.Version]::Parse($VersionModule) -lt [System.Version]::Parse($VersionApp)){
$tempModule.Removed_Ver = $VersionModule
Invoke-Expression "Uninstall-Module -Name $NameModule -RequiredVersion $VersionModule -force"
} else {
$tempModule.Removed_Ver = $VersionApp
Invoke-Expression "Uninstall-Module -Name $NameModule -RequiredVersion $VersionApp -force"
}
$temp = New-Object -TypeName PSObject -Property $tempModule
$Report += $temp
}
$NameStr = $NameModule
if (($VersionModule -match "Version") -Or ($VersionModule -match "-------")) {
# Do Nothing
} else {
$VersionApp = $VersionModule
}
}
$Report | Select NameModule, VerOne, VerTwo, Removed_Ver | Format-Table -AutoSize
rm ./ModuleList.txt
L'output è il seguente :
That's it.





