Megosztás a következőn keresztül:


Licenc elfogadást igénylő modulok

ÁTTEKINTÉS

Egyes modul-közzétevők jogi részlegei megkövetelik, hogy az ügyfeleknek explicit módon el kell fogadniuk a licencet, mielőtt telepítenék a moduljukat a PowerShell-galéria. Ha egy felhasználó közvetlenül vagy egy másik csomag függőségeként telepít, frissít vagy menti egy modult a PowerShellGet használatával, és a modul megköveteli, hogy a felhasználó elfogadja a licencet, a felhasználónak jeleznie kell, hogy elfogadja a licencet, különben a művelet meghiúsul.

Modulok követelményeinek közzététele

Azoknak a moduloknak, amelyek a licenc elfogadását szeretnék megkövetelni a felhasználóktól, meg kell felelniük a következő követelményeknek:

  • A moduljegyzék PSData szakaszának tartalmaznia kell a következőt: RequireLicenseAcceptance = $True.
  • A modulnak tartalmaznia kell license.txt fájlt a gyökérkönyvtárban.
  • A moduljegyzéknek tartalmaznia kell a licenc URI-ját.
  • A modult a PowerShellGet Format 2.0-s vagy újabb verziójával kell közzétenni.

A telepítési/mentési/Update-Module hatása

  • Az Install/Save/Update parancsmagok egy új AcceptLicense paramétert támogatnak, amely úgy viselkedik, mintha a felhasználó látta volna a licencet.
  • Ha a RequiredLicenseAcceptance értéke True, és az AcceptLicense nincs megadva, a felhasználó számára megjelenik a license.txt, és a következő üzenetet kéri: Do you accept these license terms (Yes/No/YesToAll/NoToAll).
    • Ha a licencet elfogadják
      • Save-Module: a modul átmásolódik a felhasználó rendszerébe
      • Install-Module: a modul a felhasználó rendszerébe másolódik a megfelelő mappába (hatókör alapján)
      • Update-Module: a modul frissül.
    • Ha a licencet elutasítják.
      • A művelet megszakad.
      • Minden parancsmag ellenőrzi azokat a metaadatokat (requireLicenseAcceptance és Format Version), amelyek szerint licencelfogadásra van szükség
      • Ha az ügyfél formátumverziója 2.0-nál régebbi, a művelet meghiúsul, és a felhasználót az ügyfél frissítésére kéri.
      • Ha a modult 2.0-snál régebbi formátumverzióval tették közzé, a rendszer figyelmen kívül hagyja a requireLicenseAcceptance jelzőt.

Modul függőségek

  • A telepítés/mentés/frissítés művelet során, ha egy függő modul (valami más függ a modultól) licencelfogadást igényel, akkor a licencelfogadási viselkedés (fent) szükséges.
  • Ha a modul verziója már szerepel a helyi katalógusban a rendszerre telepítettként, akkor megkerüljük a licencellenőrzést.
  • A telepítési/mentési/frissítési művelet során, ha egy függő modulhoz licenc szükséges, és a licenc elfogadása nem történik meg, a művelet meghiúsul, és a csomag telepítése/mentése/frissítése esetén a szokásos folyamatokat követi.

A -Force hatása

A megadás –Force NEM elegendő a licenc elfogadásához. –AcceptLicense a telepítés engedélyéhez szükséges. Ha –Force meg van adva, a RequiredLicenseAcceptance értéke Igaz, és –AcceptLicense NINCS megadva, a művelet sikertelen lesz.

PÉLDÁK

1. példa: A moduljegyzék frissítése a licenc elfogadásának megköveteléséhez

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

Ez a parancs frissíti a jegyzékfájlt, és a RequireLicenseAcceptance jelzőt true (igaz) értékre állítja.

2. példa: Licencelfogadást igénylő modul telepítése

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"):

Ez a parancs megjeleníti a licencet a fájlból license.txt , és felszólítja a felhasználót, hogy fogadja el a licencet.

3. példa: Licencelfogadást igénylő modul telepítése -AcceptLicense

Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense

A modul telepítése a licenc elfogadására vonatkozó kérés nélkül történik.

4. példa: Licencelfogadást igénylő modul telepítése -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

5. példa: Modul telepítése licencelfogadást igénylő függőségekkel

A ModuleWithDependency modul a ModuleRequireLicenseAcceptance modultól függ. A rendszer kéri a felhasználót, hogy fogadja el a licencet.

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"):

6. példa: Modul telepítése licencelfogadást és -AcceptLicense igénylő függőségekkel

A ModuleWithDependency modul a ModuleRequireLicenseAcceptance modultól függ. A rendszer nem kéri a felhasználót a licenc elfogadására, mivel az AcceptLicense meg van adva.

Install-Module -Name ModuleWithDependency -AcceptLicense

7. példa: Licencelfogadást igénylő modul telepítése a PSGetFormatVersion 2.0-nál régebbi ügyfélre

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

8. példa: Licencelfogadást igénylő modul mentése

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"):

Ez a parancs megjeleníti a licencet a fájlból license.txt , és felszólítja a felhasználót, hogy fogadja el a licencet.

9. példa: Licencelfogadást igénylő modul mentése -AcceptLicense

Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved

A modul mentése a licenc elfogadására vonatkozó kérés nélkül történik.

10. példa: Licencelfogadást igénylő frissítési modul

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"):

Ez a parancs megjeleníti a licencet a fájlból license.txt , és felszólítja a felhasználót, hogy fogadja el a licencet.

11. példa: Licencelfogadást igénylő modul frissítése -AcceptLicense

Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense

A modul frissítése a licenc elfogadására vonatkozó kérés nélkül történik.

További részletek

Licencelfogadás megkövetelése szkriptekhez

Licencelfogadási támogatás megkövetelése a PowerShellGalleryben

Licencelfogadás megkövetelése a Azure Automation üzembe helyezéskor