Moduly vyžadující přijetí licence
SYNOPSE
Právní oddělení některých vydavatelů modulů vyžadují, aby zákazníci před instalací modulu z Galerie prostředí PowerShell explicitně přijali licenci. Pokud uživatel nainstaluje, aktualizuje nebo uloží modul pomocí rutiny PowerShellGet, ať už přímo nebo jako závislost pro jiný balíček, a tento modul vyžaduje, aby uživatel souhlasil s licencí, musí označit, že licenci přijal, jinak operace selže.
Požadavky na publikování pro moduly
Moduly, které chtějí vyžadovat, aby uživatelé přijali licenci, by měly splňovat následující požadavky:
- Část PSData manifestu modulu by měla obsahovat RequireLicenseAcceptance = $True.
- Modul by měl obsahovat soubor license.txt v kořenovém adresáři.
- Manifest modulu by měl obsahovat identifikátor URI licence.
- Modul by měl být publikovaný ve formátu PowerShellGet verze 2.0 a novější.
Dopad na instalaci, uložení nebo aktualizaci modulu
- Rutiny install/save/update podporují nový parametr AcceptLicense , který se chová, jako by uživatel viděl licenci.
- Pokud requiredLicenseAcceptance je True a AcceptLicense není zadaný, zobrazí
license.txt
se uživateli a zobrazí se výzva:Do you accept these license terms (Yes/No/YesToAll/NoToAll)
.- Pokud je licence přijata
- Save-Module: Modul se zkopíruje do systému uživatele.
- Install-Module: Modul se zkopíruje do systému uživatele do správné složky (na základě oboru).
- Update-Module: Modul se aktualizuje.
- Pokud je licence odmítnuta.
- Operace je zrušena.
- Všechny rutiny kontrolují metadata (requireLicenseAcceptance a Formát verze), která ohlašují, že se vyžaduje přijetí licence.
- Pokud je formát verze klienta starší než 2.0, operace selže a požádá uživatele o aktualizaci klienta.
- Pokud byl modul publikován s verzí formátu starší než 2.0, příznak requireLicenseAcceptance se ignoruje.
- Pokud je licence přijata
Závislosti modulů
- Pokud během operace instalace, uložení nebo aktualizace vyžaduje přijetí licence závislý modul (na modulu závisí něco jiného), je vyžadováno chování přijetí licence (výše).
- Pokud už je verze modulu uvedená v místním katalogu jako nainstalovaná v systému, měli bychom kontrolu licencí obejít.
- Pokud během operace instalace,uložení/aktualizace vyžaduje závislý modul licenci a nedojde k přijetí licence, operace selže a bude následovat normální procesy, kdy se balíček nepodařilo nainstalovat, uložit nebo aktualizovat.
Dopad na -Force
Zadání –Force
NENÍ dostatečné k přijetí licence. –AcceptLicense
je vyžadováno pro oprávnění k instalaci. Pokud –Force
je zadán, RequiredLicenseAcceptance má hodnotu True a –AcceptLicense
není zadána, operace selže.
PŘÍKLADY
Příklad 1: Aktualizace manifestu modulu tak, aby vyžadoval přijetí 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
Tento příkaz aktualizuje soubor manifestu a nastaví příznak RequireLicenseAcceptance na true.
Příklad 2: Instalace modulu vyžadujícího přijetí 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"):
Tento příkaz zobrazí licenci ze license.txt
souboru a vyzve uživatele k přijetí licence.
Příklad 3: Instalace modulu vyžadujícího přijetí licence pomocí -AcceptLicense
Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Modul se nainstaluje bez výzvy k přijetí licence.
Příklad 4: Instalace modulu vyžadujícího přijetí licence pomocí příkazu -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
Příklad 5: Instalace modulu se závislostmi vyžadujícími přijetí licence
ModuleWithDependency závisí na modulu ModuleRequireLicenseAcceptance. Uživateli se zobrazí výzva k přijetí 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"):
Příklad 6: Instalace modulu se závislostmi vyžadujícími přijetí licence a -AcceptLicense
ModuleWithDependency závisí na modulu ModuleRequireLicenseAcceptance. Uživateli se nezobrazí výzva k přijetí licence, protože je zadána možnost AcceptLicense .
Install-Module -Name ModuleWithDependency -AcceptLicense
Příklad 7: Instalace modulu vyžadujícího přijetí licence na klientovi starším než 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'.
Příklad 8: Uložení modulu vyžadujícího přijetí 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"):
Tento příkaz zobrazí licenci ze license.txt
souboru a vyzve uživatele k přijetí licence.
Příklad 9: Uložení modulu vyžadujícího přijetí licence pomocí příkazu -AcceptLicense
Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved
Modul se uloží bez výzvy k přijetí licence.
Příklad 10: Aktualizace modulu vyžadující přijetí 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"):
Tento příkaz zobrazí licenci ze license.txt
souboru a vyzve uživatele k přijetí licence.
Příklad 11: Aktualizace modulu vyžadující přijetí licence pomocí příkazu -AcceptLicense
Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Modul se aktualizuje bez výzvy k přijetí licence.
Další podrobnosti
Vyžadování přijetí licence u skriptů
Vyžadování podpory přijetí licencí v PowerShellGallery
Vyžadování přijetí licence při nasazení ve službě Azure Automation
PowerShell Gallery