Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SINOPSIS
Los departamentos legales de algunos editores de módulos requieren que los clientes acepten explícitamente la licencia antes de instalar su módulo desde la Galería de PowerShell. Si un usuario instala, actualiza o guarda un módulo mediante PowerShellGet, ya sea directamente o como una dependencia de otro paquete, y ese módulo requiere que el usuario acepte una licencia, el usuario debe indicar que acepta la licencia o se produce un error en la operación.
Publicar requisitos para módulos
Los módulos que deseen requerir que los usuarios acepten la licencia deben cumplir los siguientes requisitos:
- La sección PSData del manifiesto del módulo debe incluir RequireLicenseAcceptance = $True.
- El módulo debe contener license.txt archivo en el directorio raíz.
- El manifiesto del módulo debe contener el URI de licencia.
- El módulo debe publicarse con PowerShellGet Format versión 2.0 y posteriores.
Impacto en la instalación/ahorro/Update-Module
- Los cmdlets Install/Save/Update admiten un nuevo parámetro AcceptLicense que se comporta como si el usuario viera la licencia.
- Si RequiredLicenseAcceptance es True y no se especifica AcceptLicense , se muestra al usuario el
license.txt, y se le solicita:Do you accept these license terms (Yes/No/YesToAll/NoToAll).- Si se acepta la licencia
- Save-Module: el módulo se copia en el sistema del usuario
- Install-Module: el módulo se copia en el sistema del usuario en la carpeta adecuada (según el alcance)
- Update-Module: el módulo se actualiza.
- Si se rechaza la licencia.
- La operación se cancela.
- Todos los cmdlets comprueban los metadatos (requireLicenseAcceptance y Format Version) que indican que se requiere una aceptación de licencia
- Si la versión de formato del cliente es anterior a la 2.0, se produce un error en la operación y se pide al usuario que actualice el cliente.
- Si el módulo se publicó con una versión de formato anterior a la 2.0, se ignora la marca requireLicenseAcceptation.
- Si se acepta la licencia
Dependencias del módulo
- Durante la operación de instalación/guardado/actualización, si un módulo dependiente (algo más depende del módulo) requiere la aceptación de la licencia, entonces se requiere el comportamiento de aceptación de la licencia (arriba).
- Si la versión del módulo ya aparece en el catálogo local como instalada en el sistema, omitiríamos la verificación de licencia.
- Durante la operación de instalación/guardado/actualización, si un módulo dependiente requiere una licencia y no se produce la aceptación de la licencia, la operación falla y sigue los procesos normales para el paquete que no se pudo instalar/guardar/actualizar.
Impacto en -Force
Especificar –Force NO es suficiente para aceptar una licencia.
–AcceptLicense para obtener permiso para instalar. Si –Force se especifica, RequiredLicenseAcceptance es True y –AcceptLicense NO se especifica, se produce un error en la operación.
EJEMPLOS
Ejemplo 1: Actualizar manifiesto del módulo para requerir la aceptación de la licencia
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
Este comando actualiza el archivo de manifiesto y establece la marca RequireLicenseAcceptance en true.
Ejemplo 2: Módulo de instalación que requiere aceptación de licencia
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"):
Este comando muestra la licencia desde license.txt el archivo y solicita al usuario que acepte la licencia.
Ejemplo 3: Módulo de instalación que requiere la aceptación de la licencia con -AcceptLicense
Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
El módulo se instala sin ningún aviso para aceptar la licencia.
Ejemplo 4: Instalar el módulo que requiere la aceptación de la licencia con -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
Ejemplo 5: Instalar módulo con dependencias que requieren la aceptación de la licencia
El módulo ModuleWithDependency depende del módulo ModuleRequireLicenseAcceptance. Se solicita al usuario que acepte la licencia.
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"):
Ejemplo 6: Instalar un módulo con dependencias que requieren la aceptación y -AcceptLicense de la licencia
El módulo ModuleWithDependency depende del módulo ModuleRequireLicenseAcceptance. No se solicita al usuario que acepte la licencia ya que se especifica AcceptLicense .
Install-Module -Name ModuleWithDependency -AcceptLicense
Ejemplo 7: Instalación del módulo que requiere la aceptación de la licencia en un cliente anterior a 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'.
Ejemplo 8: Guardar módulo que requiere aceptación de licencia
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"):
Este comando muestra la licencia desde license.txt el archivo y solicita al usuario que acepte la licencia.
Ejemplo 9: Guardar módulo que requiere la aceptación de la licencia con -AcceptLicense
Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved
El módulo se guarda sin ningún aviso para aceptar la licencia.
Ejemplo 10: Módulo de actualización que requiere la aceptación de la licencia
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"):
Este comando muestra la licencia desde license.txt el archivo y solicita al usuario que acepte la licencia.
Ejemplo 11: Módulo de actualización que requiere la aceptación de la licencia con -AcceptLicense
Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
El módulo se actualiza sin ningún aviso para aceptar la licencia.
Más detalles
Requerir aceptación de licencia para scripts
Requerir compatibilidad con la aceptación de licencias en PowerShellGallery
Requerir la aceptación de la licencia en la implementación en Azure Automation
PowerShell Gallery