Moduli per cui è richiesta l'accettazione della licenza
RIEPILOGO
Gli uffici legali di alcuni editori di moduli richiedono che i clienti accettino in modo esplicito la licenza prima di installare il modulo da PowerShell Gallery. Se un utente installa, aggiorna o salva un modulo con PowerShellGet, direttamente o come dipendenza per un altro pacchetto, e tale modulo richiede all'utente di accettare una licenza, l'utente deve confermare l'accettazione della licenza o l'operazione ha esito negativo.
Requisiti di pubblicazione per i moduli
I moduli che prevedono la richiesta di accettazione della licenza da parte degli utenti devono soddisfare i requisiti seguenti:
- La sezione PSData del manifesto del modulo deve includere RequireLicenseAcceptance = $True.
- Il modulo deve contenere il file license.txt nella directory radice.
- Il manifesto del modulo deve contenere l'URI della licenza.
- Il modulo deve essere pubblicato con la versione 2.0 e successive del formato PowerShellGet.
Impatto sui cmdlet Install/Save/Update-Module
- I cmdlet Install/Save/Update supportano il nuovo parametro AcceptLicense che specifica un comportamento corrispondente alla presa in visione e accettazione della licenza da parte dell'utente.
- Se RequiredLicenseAcceptance è True e il parametro AcceptLicense non viene specificato, l'utente visualizza
license.txt
e il messaggioDo you accept these license terms (Yes/No/YesToAll/NoToAll)
.- Se la licenza viene accettata
- Save-Module: il modulo viene copiato nel sistema dell'utente
- Install-Module: il modulo viene copiato nel sistema dell'utente nella cartella appropriata, in base all'ambito
- Update-Module: il modulo viene aggiornato.
- Se la licenza non viene accettata.
- L'operazione viene annullata.
- Tutti i cmdlet controllano se sono presenti i metadati (requireLicenseAcceptance e versione del formato) a indicare che è richiesta l'accettazione della licenza
- Se la versione del formato del client è precedente alla 2.0, l'operazione ha esito negativo e viene richiesto all'utente di aggiornare il client.
- Se il modulo è stato pubblicato con una versione del formato precedente alla 2.0, il flag requireLicenseAcceptance viene ignorato.
- Se la licenza viene accettata
Dipendenze del modulo
- Durante le operazioni Install/Save/Update, se un modulo dipendente (qualcos'altro dipende dal modulo) richiede l'accettazione della licenza, è richiesto il comportamento di accettazione della licenza sopra descritto.
- Se la versione del modulo è già elencata nel catalogo locale come installata nel sistema, il controllo della licenza non viene eseguito.
- Durante le operazioni Install/Save/Update, se un modulo dipendente richiede una licenza e la licenza non viene accettata, l'operazione ha esito negativo e si seguono i processi normali per i casi di installazione/salvataggio/aggiornamento non riusciti per il pacchetto.
Impatto su -Force
Specificare –Force
NON è sufficiente per accettare una licenza. Per autorizzare l'installazione è richiesto il parametro –AcceptLicense
. Se si specifica il parametro –Force
, RequiredLicenseAcceptance è True e il parametro –AcceptLicense
NON viene specificato, l'operazione ha esito negativo.
ESEMPI
Esempio 1: aggiornare il manifesto del modulo per richiedere l'accettazione della licenza
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
Questo comando aggiorna il file manifesto e imposta il flag RequireLicenseAcceptance su true.
Esempio 2: installare un modulo che richiede l'accettazione della licenza
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"):
Questo comando visualizza la licenza dal file license.txt
e richiede all'utente di accettare la licenza.
Esempio 3: installare un modulo che richiede l'accettazione della licenza con -AcceptLicense
Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Il modulo viene installato senza visualizzare alcuna richiesta di accettazione della licenza.
Esempio 4: installare un modulo che richiede l'accettazione della licenza 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
Esempio 5: installare un modulo con dipendenze che richiede l'accettazione della licenza
Il modulo ModuleWithDependency dipende dal modulo ModuleRequireLicenseAcceptance. All'utente viene richiesto di accettare la licenza.
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"):
Esempio 6: installare un modulo con dipendenze che richiede l'accettazione della licenza e il parametro -AcceptLicense
Il modulo ModuleWithDependency dipende dal modulo ModuleRequireLicenseAcceptance. All'utente non viene richiesto di accettare la licenza perché è specificato il parametro AcceptLicense.
Install-Module -Name ModuleWithDependency -AcceptLicense
Esempio 7: installare un modulo che richiede l'accettazione della licenza in un client meno recente di 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'.
Esempio 8: salvare un modulo che richiede l'accettazione della licenza
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"):
Questo comando visualizza la licenza dal file license.txt
e richiede all'utente di accettare la licenza.
Esempio 9: salvare un modulo che richiede l'accettazione della licenza con -AcceptLicense
Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved
Il modulo viene salvato senza alcuna richiesta di accettazione della licenza.
Esempio 10: aggiornare un modulo che richiede l'accettazione della licenza
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"):
Questo comando visualizza la licenza dal file license.txt
e richiede all'utente di accettare la licenza.
Esempio 11: aggiornare un modulo che richiede l'accettazione della licenza con -AcceptLicense
Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Il modulo viene aggiornato senza alcuna richiesta di accettazione della licenza.
Altre informazioni
Richiedere l'accettazione della licenza per gli script
Richiedere il supporto dell'accettazione della licenza in PowerShell Gallery
Richiedere l'accettazione della licenza per la distribuzione in Automazione di Azure