Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
SYNOPSIS
Les services juridiques de certains éditeurs de modules exigent que les clients acceptent explicitement la licence avant d’installer leur module à partir de PowerShell Gallery. Si un utilisateur installe, met à jour ou enregistre un module à l’aide de PowerShellGet, que ce soit directement ou en tant que dépendance d’un autre package, et que ce module nécessite que l’utilisateur accepte une licence, l’utilisateur doit indiquer qu’il accepte la licence ou l’opération échoue.
Publier les exigences pour les modules
Les modules qui souhaitent demander aux utilisateurs d’accepter la licence doivent remplir les conditions suivantes :
- La section PSData du manifeste du module doit inclure RequireLicenseAcceptance = $True.
- Le module doit contenir license.txt fichier dans le répertoire racine.
- Le manifeste du module doit contenir l’URI de licence.
- Le module doit être publié avec le format PowerShellGet version 2.0 et ultérieure.
Impact sur l’installation/l’enregistrement/l'Update-Module
- Les applets de commande Install/Save/Update prennent en charge un nouveau paramètre AcceptLicense qui se comporte comme si l’utilisateur avait vu la licence.
- Si la valeur RequiredLicenseAcceptance est True et que AcceptLicense n’est pas spécifiée, l’utilisateur voit le
license.txt, et on lui demande :Do you accept these license terms (Yes/No/YesToAll/NoToAll).- Si la licence est acceptée
- Save-Module : le module est copié dans le système de l’utilisateur
- Install-Module : le module est copié sur le système de l’utilisateur dans le dossier approprié (en fonction de la portée)
- Update-Module : le module est mis à jour.
- Si la licence est refusée.
- L’opération est annulée.
- Toutes les applets de commande vérifient les métadonnées (requireLicenseAcceptance et Format Version) qui indiquent qu’une acceptation de licence est requise
- Si la version du format du client est antérieure à la version 2.0, l’opération échoue et demande à l’utilisateur de mettre à jour le client.
- Si le module a été publié avec une version de format antérieure à 2.0, l’indicateur requireLicenseAcceptance est ignoré.
- Si la licence est acceptée
Dépendances des modules
- Lors de l’opération d’installation/d’enregistrement/de mise à jour, si un module dépendant (quelque chose d’autre dépend du module) nécessite l’acceptation de la licence, alors le comportement d’acceptation de la licence (ci-dessus) est requis.
- Si la version du module est déjà répertoriée dans le catalogue local comme étant installée sur le système, nous contournons la vérification de la licence.
- Lors de l’opération d’installation/d’enregistrement/de mise à jour, si un module dépendant nécessite une licence et que l’acceptation de la licence ne se produit pas, l’opération échoue et suit les processus normaux pour l’installation/l’enregistrement/la mise à jour du package.
Impact sur -Force
Spécifier –Force n’est PAS suffisant pour accepter une licence.
–AcceptLicense est requis pour l’autorisation d’installation. Si –Force est spécifié, RequiredLicenseAcceptance a la valeur True et –AcceptLicense n’est PAS spécifié, l’opération échoue.
EXEMPLES
Exemple 1 : Mettre à jour le manifeste du module pour exiger l’acceptation de la licence
Update-ModuleManifest -Path C:\modulemanifest.psd1 -RequireLicenseAcceptance -PrivateData @{
PSData = @{
# Flag to indicate whether the module requires explicit user acceptance
RequireLicenseAcceptance = $true
} # End of PSData hashtable
} # End of PrivateData hashtable
Cette commande met à jour le fichier manifeste et définit l’indicateur RequireLicenseAcceptance sur true.
Exemple 2 : Installer le module nécessitant l’acceptation de la licence
Install-Module -Name ModuleRequireLicenseAcceptance
License Acceptance
License 2.0
Copyright (c) 2016 PowerShell Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
Do you accept the license terms for module 'ModuleRequireLicenseAcceptance'.
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
Cette commande affiche la licence à partir du license.txt fichier et invite l’utilisateur à accepter la licence.
Exemple 3 : Installer le module nécessitant l’acceptation de la licence avec -AcceptLicense
Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Le module est installé sans qu’il soit demandé d’accepter la licence.
Exemple 4 : Installation du module nécessitant l’acceptation de la licence avec -Force
Install-Module -Name ModuleRequireLicenseAcceptance -Force
PackageManagement\Install-Package : License Acceptance is required for module 'ModuleRequireLicenseAcceptance'. Please specify '-AcceptLicense' to perform this operation.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.1.3.3\PSModule.psm1:1837 char:21
+ ... $null = PackageManagement\Install-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], E
xception
+ FullyQualifiedErrorId : ForceAcceptLicense,Install-PackageUtility,Microsoft.PowerShell.PackageManagement.Cmdlets
.InstallPackage
Exemple 5 : Installer le module avec des dépendances nécessitant l’acceptation de la licence
Le module ModuleModuleWithDependency dépend du module ModuleRequireLicenseAcceptance. L’utilisateur est invité à accepter la licence.
Install-Module -Name ModuleWithDependency
License Acceptance
MIT License 2.0
Copyright (c) 2016 PowerShell Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
Do you accept the license terms for module 'ModuleRequireLicenseAcceptance'.
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
Exemple 6 : Installer le module avec des dépendances nécessitant l’acceptation de la licence et -AcceptLicense
Le module ModuleModuleWithDependency dépend du module ModuleRequireLicenseAcceptance. L’utilisateur n’est pas invité à accepter la licence car AcceptLicense est spécifié.
Install-Module -Name ModuleWithDependency -AcceptLicense
Exemple 7 : Installation d’un module nécessitant l’acceptation d’une licence sur un client antérieur à PSGetFormatVersion 2.0
Install-Module -Name ModuleRequireLicenseAcceptance
WARNING: The specified module 'ModuleRequireLicenseAcceptance' with PowerShellGetFormatVersion
'2.0' is not supported by the current version of PowerShellGet. Get the latest version of the
PowerShellGet module to install this module, 'ModuleRequireLicenseAcceptance'.
Exemple 8 : Enregistrement du module nécessitant l’acceptation d’une licence
Save-Module -Name ModuleRequireLicenseAcceptance -Path C:\Saved
License Acceptance
License 2.0
Copyright (c) 2016 PowerShell Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
Do you accept the license terms for module 'ModuleRequireLicenseAcceptance'.
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
Cette commande affiche la licence à partir du license.txt fichier et invite l’utilisateur à accepter la licence.
Exemple 9 : Enregistrer le module nécessitant l’acceptation de la licence avec -AcceptLicense
Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved
Le module est enregistré sans qu’il soit nécessaire d’accepter la licence.
Exemple 10 : Mise à jour du module nécessitant l’acceptation d’une licence
Update-Module -Name ModuleRequireLicenseAcceptance
License Acceptance
License 2.0
Copyright (c) 2016 PowerShell Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.
Do you accept the license terms for module 'ModuleRequireLicenseAcceptance'.
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
Cette commande affiche la licence à partir du license.txt fichier et invite l’utilisateur à accepter la licence.
Exemple 11 : Mise à jour du module nécessitant l’acceptation de la licence avec -AcceptLicense
Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Le module est mis à jour sans qu’il soit nécessaire d’accepter la licence.
Plus d’informations
Exiger l’acceptation de la licence pour les scripts
Exiger la prise en charge de l’acceptation de licence sur PowerShellGallery
Exiger l’acceptation de la licence lors du déploiement sur Azure Automation
PowerShell Gallery