Bagikan melalui


Modul yang Memerlukan Penerimaan Lisensi

SINOPSIS

Departemen hukum untuk beberapa penerbit modul mengharuskan pelanggan harus 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 menyetujui lisensi, pengguna harus menunjukkan bahwa mereka menerima lisensi atau operasi gagal.

Persyaratan Penerbitan 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 akar.
  • Manifes modul harus berisi Uri Lisensi.
  • Modul harus diterbitkan dengan Format PowerShellGet Versi 2.0 ke atas.

Dampak pada Instal/Simpan/Perbarui-Modul

  • Cmdlet Instal/Simpan/Perbarui mendukung parameter baru AcceptLicense yang berulah seolah-olah pengguna melihat lisensi.
  • Jika RequiredLicenseAcceptance true dan AcceptLicense tidak ditentukan, pengguna ditampilkan license.txt, dan diminta dengan: Do you accept these license terms (Yes/No/YesToAll/NoToAll).
    • Jika lisensi diterima
      • Save-Module: modul disalin ke sistem pengguna
      • Install-Module: modul disalin ke sistem pengguna ke folder yang tepat (berdasarkan cakupan)
      • Update-Module: modul diperbarui.
    • Jika lisensi ditolak.
      • Operasi dibatalkan.
      • Semua cmdlet memeriksa metadata (memerlukanLicenseAcceptance dan Versi Format) 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 tercantum dalam katalog lokal saat 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 agar izin diinstal. 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 RequireLicenseAcceptance ke true.

Contoh 2: Menginstal 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 memperlihatkan 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 perintah 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: Menginstal Modul dengan dependensi yang memerlukan penerimaan lisensi

Modul 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

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

Install-Module -Name ModuleWithDependency -AcceptLicense

Contoh 7: Menginstal 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 memperlihatkan 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 perintah untuk menerima lisensi.

Contoh 10: Memperbarui Modul 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 memperlihatkan lisensi dari license.txt file dan meminta pengguna untuk menerima lisensi.

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

Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense

Modul diperbarui tanpa perintah untuk menerima lisensi.

Detail Selengkapnya

Memerlukan Penerimaan Lisensi untuk Skrip

Memerlukan dukungan Penerimaan Lisensi di PowerShellGallery

Mewajibkan Penerimaan Lisensi di Sebarkan ke Azure Automation