Résoudre l’erreur ‘Install-Module failed to download’ lors de l’installation de PowerCli
Hier, j’ai voulu installer le dernier package Powercli 12.0. J’ai donc désinstaller les anciens packages .. mais en voulant installer la dernière version , j’ai obtenu un message d’erreur.. « Package ‘VMware.VimAutomation.Sdk’ failed to download ».
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
. PS D:\> Install-Module -Name VMware.PowerCLI -Scope AllUsers WARNING: Source Location 'https://www.powershellgallery.com/api/v2/package/VMware.VimAutomation.Sdk/12.0.0.15939651' is not valid. PackageManagement\Install-Package : Package 'VMware.VimAutomation.Sdk' failed to download. At C:\Program Files (x86)\WindowsPowerShell\Modules\PowerShellGet\2.2.1\PSModule.psm1:9683 char:34 + ... talledPackages = PackageManagement\Install-Package @PSBoundParameters + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (C:\Users\david....15939651.nupkg:String) [Install-Package], Exception + FullyQualifiedErrorId : PackageFailedInstallOrDownload,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage . |
La raison ?
Powershell gallery pour offrir un meilleur niveau de sécurté ne prend plus en charge le TLS 1.0 et 1.1. A partir d’avril 2020, l’utilisation de TLS 1.2 est obligatoire .
As of April 2020, TLS 1.2 is set to be the default for the PowerShell Gallery.
Please note that TLS 1.0 and 1.1 was already unsupported, but the actual deprecation when PowerShell Gallery will now stop accepting any connections using TLS 1.0 and 1.1 has occurred.
We recommend that all client-server combinations use TLS 1.2 (or a later version) to maintain connection to the PowerShell Gallery.
https://devblogs.microsoft.com/powershell/powershell-gallery-tls-support/
La Solution ?
Elle est notée dans le même article un peu plus bas, il faut utilisé pour la session en cours le TLS 1.2, puis installer le module PowershellGet en version 2.2.4.
La commande « [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 » vous permet d’utiliser par défaut la version 1.2 du protocole TLS pour la session en cours.
L’installation du module PowerShellGet dans la version 2.2.4, permet lors de l’installation d’un module Powershell :
-
- D’enregistrer automatiquement la version TLS par défaut de votre session.
- De basculer vers la version TLS 1.2 pendant l’opération d’installation pour permettre de communiquer avec le Repository « Powershell Gallery »
- Puis de rebasculer sur le protocole de sécurisation TLS par défaut.
1 2 3 4 5 6 7 |
. PS D:\> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 PS D:\> Install-Module PowerShellGet -RequiredVersion 2.2.4 -SkipPublisherCheck . |
On peut alors relancer l’installation du module Powercli. 12.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
. PS D:\> Install-Module -name VMWare.powercli -Scope AllUsers PS D:\> Get-Module vmware* -ListAvailable Directory: C:\Program Files (x86)\WindowsPowerShell\Modules ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Script 12.0.0.... VMware.CloudServices {Connect-Vcs, Get-VcsOrganizationRole, Get-VcsService, Get-VcsServiceRole...} Script 7.0.0.1... VMware.DeployAutomation {Add-DeployRule, Add-ProxyServer, Add-ScriptBundle, Copy-DeployRule...} Script 7.0.0.1... VMware.ImageBuilder {Add-EsxSoftwareDepot, Add-EsxSoftwarePackage, Compare-EsxImageProfile, Export-EsxImageProfile...} Manifest 12.0.0.... VMware.PowerCLI Script 7.0.0.1... VMware.Vim Script 12.0.0.... VMware.VimAutomation.Cis.Core {Connect-CisServer, Disconnect-CisServer, Get-CisService} Script 12.0.0.... VMware.VimAutomation.Cloud {Add-CIDatastore, Connect-CIServer, Disconnect-CIServer, Get-Catalog...} Script 12.0.0.... VMware.VimAutomation.Common {Get-Task, New-OAuthSecurityContext, Stop-Task, Wait-Task} Script 12.0.0.... VMware.VimAutomation.Core {Add-PassthroughDevice, Add-VirtualSwitchPhysicalNetworkAdapter, Add-VMHost, Add-VMHostNtpServer...} Script 12.0.0.... VMware.VimAutomation.Hcx {Connect-HCXServer, Disconnect-HCXServer, Get-HCXAppliance, Get-HCXComputeProfile...} Script 7.12.0.... VMware.VimAutomation.HorizonView {Connect-HVServer, Disconnect-HVServer} Script 12.0.0.... VMware.VimAutomation.License Get-LicenseDataManager Script 12.0.0.... VMware.VimAutomation.Nsxt {Connect-NsxtServer, Disconnect-NsxtServer, Get-NsxtPolicyService, Get-NsxtService} Script 12.0.0.... VMware.VimAutomation.Sdk Get-ErrorReport Script 12.0.0.... VMware.VimAutomation.Security {Add-AttestationServiceInfo, Add-KeyProviderServiceInfo, Add-TrustAuthorityKeyProviderServer, Add-TrustAuthorityKeyProviderServerCertificate...} Script 11.5.0.... VMware.VimAutomation.Srm {Connect-SrmServer, Disconnect-SrmServer} Script 12.0.0.... VMware.VimAutomation.Storage {Add-EntityDefaultKeyProvider, Add-KeyManagementServer, Add-VsanFileServiceOvf, Add-VsanObjectToRepairQueue...} Script 1.3.0.0 VMware.VimAutomation.StorageUtility Update-VmfsDatastore Script 12.0.0.... VMware.VimAutomation.Vds {Add-VDSwitchPhysicalNetworkAdapter, Add-VDSwitchVMHost, Export-VDPortGroup, Export-VDSwitch...} Script 12.0.0.... VMware.VimAutomation.Vmc {Add-VmcSddcHost, Connect-Vmc, Disconnect-Vmc, Get-AwsAccount...} Script 12.0.0.... VMware.VimAutomation.vROps {Connect-OMServer, Disconnect-OMServer, Get-OMAlert, Get-OMAlertDefinition...} Script 12.0.0.... VMware.VimAutomation.WorkloadMan... {Get-WMNamespace, Get-WMNamespacePermission, Get-WMNamespaceStoragePolicy, New-WMNamespace...} Script 6.5.1.7... VMware.VumAutomation {Add-EntityBaseline, Copy-Patch, Get-Baseline, Get-Compliance...} . |
A lire :
Pingback: OneView - Package PowerShell - Mon Post-It