Bagikan melalui


Modul yang Membutuhkan Penerimaan Lisensi

SINOPSIS

Departemen hukum untuk beberapa penerbit modul mengharuskan pelanggan secara eksplisit menerima lisensi sebelum menginstal modul mereka dari Galeri PowerShell. Jika pengguna menginstal, memperbarui, atau menyimpan modul menggunakan PowerShellGet, baik secara langsung atau sebagai dependensi untuk paket lain, dan modul tersebut mengharuskan pengguna untuk menyetujui lisensi, pengguna harus menunjukkan bahwa mereka menerima lisensi atau operasi gagal.

Menerbitkan persyaratan untuk modul

Modul yang ingin mengharuskan pengguna untuk menerima lisensi harus memenuhi persyaratan berikut:

  • Bagian PSData dari manifes modul harus menyertakan RequireLicenseAcceptance = $True.
  • Modul harus berisi file license.txt di direktori root.
  • Manifes modul harus berisi Uri Lisensi.
  • Modul harus diterbitkan dengan PowerShellGet Format Versi 2.0 dan yang lebih tinggi.

Dampak pada Instalasi/Simpan/Update-Module

  • Cmdlet Instal/Simpan/Perbarui mendukung parameter baru AcceptLicense yang berperilaku seolah-olah pengguna melihat lisensi.
  • Jika RequiredLicenseAcceptance adalah True dan AcceptLicense tidak ditentukan, pengguna akan diperlihatkan license.txt, dan diminta dengan: Do you accept these license terms (Yes/No/YesToAll/NoToAll).
    • Jika lisensi diterima
      • Simpan-Modul: modul disalin ke sistem pengguna
      • Install-Module: modul disalin ke sistem pengguna ke folder yang tepat (berdasarkan ruang lingkup)
      • Update-Module: modul diperbarui.
    • Jika lisensi ditolak.
      • Operasi dibatalkan.
      • Semua cmdlet memeriksa metadata (requireLicenseAcceptance dan Format Version) yang mengatakan penerimaan lisensi diperlukan
      • Jika versi format klien lebih lama dari 2.0, operasi gagal dan meminta pengguna untuk memperbarui klien.
      • Jika modul diterbitkan dengan versi format yang lebih lama dari 2.0, bendera requireLicenseAcceptance diabaikan.

Dependensi Modul

  • Selama operasi Instal/Simpan/Perbarui, jika modul dependen (sesuatu yang lain tergantung pada modul) memerlukan penerimaan lisensi, maka perilaku penerimaan lisensi (di atas) diperlukan.
  • Jika versi modul sudah terdaftar dalam katalog lokal sebagai diinstal pada sistem, kami akan melewati pemeriksaan lisensi.
  • Selama operasi Instal/Simpan/Perbarui, jika modul dependen memerlukan lisensi, dan penerimaan lisensi tidak terjadi, operasi gagal dan mengikuti proses normal untuk paket gagal menginstal/menyimpan/memperbarui.

Dampak pada -Force

Menentukan –Force TIDAK cukup untuk menerima lisensi. –AcceptLicense diperlukan untuk izin menginstal. Jika –Force ditentukan, RequiredLicenseAcceptance adalah True, dan –AcceptLicense TIDAK ditentukan, operasi gagal.

CONTOH

Contoh 1: Perbarui Manifes Modul untuk mewajibkan penerimaan lisensi

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

Perintah ini memperbarui file manifes dan mengatur bendera RequireLicenceAcceptance ke true.

Contoh 2: Instal Modul yang memerlukan penerimaan lisensi

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

Perintah ini menunjukkan lisensi dari license.txt file dan meminta pengguna untuk menerima lisensi.

Contoh 3: Instal Modul yang memerlukan penerimaan lisensi dengan -AcceptLicense

Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense

Modul diinstal tanpa permintaan untuk menerima lisensi.

Contoh 4: Instal Modul yang memerlukan penerimaan lisensi dengan -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

Contoh 5: Instal Modul dengan dependensi yang memerlukan penerimaan lisensi

Module ModuleWithDependency bergantung pada modul ModuleRequireLicenseAcceptance. Pengguna diminta untuk menerima lisensi.

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

Contoh 6: Instal Modul dengan dependensi yang memerlukan penerimaan lisensi dan -AcceptLicense

Module ModuleWithDependency bergantung pada modul ModuleRequireLicenseAcceptance. Pengguna tidak diminta untuk menerima lisensi karena AcceptLicense ditentukan.

Install-Module -Name ModuleWithDependency -AcceptLicense

Contoh 7: Instal modul yang memerlukan penerimaan lisensi pada klien yang lebih lama dari 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'.

Contoh 8: Simpan Modul yang memerlukan penerimaan lisensi

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

Perintah ini menunjukkan lisensi dari license.txt file dan meminta pengguna untuk menerima lisensi.

Contoh 9: Simpan Modul yang memerlukan penerimaan lisensi dengan -AcceptLicense

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

Modul disimpan tanpa permintaan untuk menerima lisensi.

Contoh 10: Modul Perbarui yang memerlukan penerimaan lisensi

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

Perintah ini menunjukkan lisensi dari license.txt file dan meminta pengguna untuk menerima lisensi.

Contoh 11: Perbarui Modul yang memerlukan penerimaan lisensi dengan -AcceptLicense

Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense

Modul diperbarui tanpa permintaan untuk menerima lisensi.

Detail lebih lanjut

Memerlukan Penerimaan Lisensi untuk Skrip

Memerlukan dukungan Penerimaan Lisensi di PowerShellGallery

Memerlukan Penerimaan Lisensi pada Penerapan ke Azure Automation