Moduler som kräver godkännande av licensen
SAMMANFATTNING
Juridiska avdelningar för vissa modulutgivare kräver att kunderna uttryckligen måste godkänna licensen innan de installerar sin modul från PowerShell-galleriet. Om en användare installerar, uppdaterar eller sparar en modul med PowerShellGet, antingen direkt eller som ett beroende för ett annat paket, och den modulen kräver att användaren godkänner en licens, måste användaren ange att de accepterar licensen eller att åtgärden misslyckas.
Publiceringskrav för moduler
Moduler som vill kräva att användarna accepterar licensen bör uppfylla följande krav:
- PSData-avsnittet i modulmanifestet bör innehålla RequireLicenseAcceptance = $True.
- Modulen ska innehålla license.txt fil i rotkatalogen.
- Modulmanifestet ska innehålla Licens-URI.
- Modulen bör publiceras med PowerShellGet-format version 2.0 och senare.
Påverkan på installation/spara/uppdatera-modul
- Cmdletarna Install/Save/Update stöder en ny parameter AcceptLicense som fungerar som om användaren såg licensen.
- Om RequiredLicenseAcceptance är Sant och AcceptLicense inte har angetts visas användaren och
license.txt
uppmanas med:Do you accept these license terms (Yes/No/YesToAll/NoToAll)
.- Om licensen godkänns
- Spara-modul: modulen kopieras till användarens system
- Install-Module: modulen kopieras till användarens system till rätt mapp (baserat på omfång)
- Uppdateringsmodul: modulen uppdateras.
- Om licensen nekas.
- Åtgärden avbryts.
- Alla cmdletar söker efter metadata (kräverLicenseAcceptance och formatversion) som säger att en licensgodkännande krävs
- Om formatversionen av klienten är äldre än 2.0 misslyckas åtgärden och användaren uppmanas att uppdatera klienten.
- Om modulen publicerades med en äldre formatversion än 2.0 ignoreras flaggan requireLicenseAcceptance.
- Om licensen godkänns
Modulberoenden
- Om en beroende modul (något annat är beroende av modulen) kräver licensgodkännande under åtgärden Installera/spara/uppdatera krävs licensgodkännandet (ovan).
- Om modulversionen redan visas i den lokala katalogen som installerad på systemet kringgår vi licenskontrollen.
- Under åtgärden Installera/spara/uppdatera, om en beroende modul kräver en licens och licensgodkännandet inte sker, misslyckas åtgärden och följer normala processer för paketet som inte kunde installera/spara/uppdatera.
Påverkan på -Force
Att –Force
ange är INTE tillräckligt för att acceptera en licens. –AcceptLicense
krävs för behörighet att installera. Om –Force
anges är RequiredLicenseAcceptance Sant och –AcceptLicense
anges INTE. Åtgärden misslyckas.
EXEMPEL
Exempel 1: Uppdatera modulmanifestet för att kräva licensgodkännande
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
Det här kommandot uppdaterar manifestfilen och anger flaggan RequireLicenseAcceptance till true.
Exempel 2: Installera modulen som kräver licensgodkännande
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"):
Det här kommandot visar licensen från license.txt
filen och uppmanar användaren att acceptera licensen.
Exempel 3: Installera modulen som kräver licensgodkännande med -AcceptLicense
Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Modulen installeras utan att du uppmanas att acceptera licensen.
Exempel 4: Installera modulen som kräver licensgodkännande med -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
Exempel 5: Installera modulen med beroenden som kräver licensgodkännande
Module ModuleWithDependency beror på modulmodulen ModuleRequireLicenseAcceptance. Användaren uppmanas att acceptera licensen.
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"):
Exempel 6: Installera modulen med beroenden som kräver licensgodkännande och -AcceptLicense
Module ModuleWithDependency beror på modulmodulen ModuleRequireLicenseAcceptance. Användaren uppmanas inte att acceptera licensen eftersom AcceptLicense har angetts.
Install-Module -Name ModuleWithDependency -AcceptLicense
Exempel 7: Installera modul som kräver licensgodkännande på en klient som är äldre än 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'.
Exempel 8: Spara modulen som kräver licensgodkännande
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"):
Det här kommandot visar licensen från license.txt
filen och uppmanar användaren att acceptera licensen.
Exempel 9: Spara modulen som kräver licensgodkännande med -AcceptLicense
Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved
Modulen sparas utan att du uppmanas att acceptera licensen.
Exempel 10: Uppdateringsmodul som kräver licensgodkännande
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"):
Det här kommandot visar licensen från license.txt
filen och uppmanar användaren att acceptera licensen.
Exempel 11: Uppdateringsmodul som kräver licensgodkännande med -AcceptLicense
Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Modulen uppdateras utan att du uppmanas att acceptera licensen.
Mer information
Kräv godkännande av licensen för skript
Kräv stöd för godkännande av licens på PowerShellGallery
Kräv godkännande av licensen vid distribuera till Azure Automation
PowerShell Gallery