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.txtse 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.

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