Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
СИНОПСИС
Юридические отделы некоторых издателей модулей требуют, чтобы клиенты явным образом приняли лицензию перед установкой модуля из коллекции PowerShell. Если пользователь устанавливает, обновляет или сохраняет модуль с помощью PowerShellGet, напрямую или в качестве зависимости для другого пакета, и для этого модуля требуется согласие пользователя с лицензией, пользователь должен указать, что он принимает лицензию, иначе операция завершится ошибкой.
Требования к публикации модулей
Модули, которые требуют от пользователей принятия лицензии, должны соответствовать следующим требованиям:
- Секция PSData манифеста модуля должна содержать RequireLicenseAcceptance = $True.
- Модуль должен содержать license.txt файл в корневом каталоге.
- Манифест модуля должен содержать License Uri.
- Модуль должен быть опубликован в формате PowerShellGet версии 2.0 и выше.
Влияние на установку/сохранение/Update-Module
- Командлеты Install/Save/Update поддерживают новый параметр AcceptLicense , который ведет себя так, как будто пользователь увидел лицензию.
- Если RequiredLicenseAcceptance имеет значение True, а AcceptLicense не указан, пользователю отображается символ
license.txt, и ему предлагается указать:Do you accept these license terms (Yes/No/YesToAll/NoToAll).- Если лицензия принята
- Save-Module: модуль копируется в систему пользователя
- Install-Module: модуль копируется в систему пользователя в соответствующую папку (в зависимости от области действия)
- Update-Module: модуль обновлен.
- Если лицензия отклонена.
- Операция отменена.
- Все командлеты проверяют метаданные (requireLicenseAcceptance и Format Version), которые указывают на необходимость принятия лицензии
- Если версия формата клиента старше 2.0, операция завершается ошибкой и пользователю предлагается обновить клиент.
- Если модуль был опубликован с версией формата старше 2.0, флаг requireLicenseAcceptance игнорируется.
- Если лицензия принята
Зависимости модулей
- Во время операции установки/сохранения/обновления, если зависимый модуль (что-то другое зависит от модуля) требует принятия лицензии, то требуется поведение принятия лицензии (см. выше).
- Если версия модуля уже указана в локальном каталоге как установленная в системе, мы обойдем проверку лицензии.
- Если во время операции установки/сохранения/обновления для зависимого модуля требуется лицензия, а принятие лицензии не происходит, операция завершается ошибкой и выполняется в соответствии с обычными процессами для пакета, который не удалось установить/сохранить/обновить.
Влияние на -Force
Указание –Force НЕДОСТАТОЧНО для принятия лицензии.
–AcceptLicense требуется для получения разрешения на установку. Если –Force указано, RequiredLicenseAcceptance имеет значение True и –AcceptLicense НЕ указано, операция завершается ошибкой.
ПРИМЕРЫ
Пример 1: Обновите манифест модуля, чтобы требовать принятия лицензии
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
Эта команда обновляет файл манифеста и устанавливает флаг RequireLicenseAcceptance в значение true.
Пример 2: Установка модуля, требующего принятия лицензии
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"):
Эта команда показывает лицензию из license.txt файла и предлагает пользователю принять лицензию.
Пример 3: Установка модуля, требующего принятия лицензии, с помощью -AcceptLicense
Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Модуль устанавливается без запроса на принятие лицензии.
Пример 4: Установка модуля, требующего принятия лицензии, с -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: Установка модуля с зависимостями, требующими принятия лицензии
Модуль ModuleWithDependency зависит от модуля ModuleRequireLicenseAcceptance. Пользователю будет предложено принять лицензию.
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: Установка модуля с зависимостями, требующими принятия и -AcceptLicense
Модуль ModuleWithDependency зависит от модуля ModuleRequireLicenseAcceptance. Пользователю не предлагается принять лицензию, так как указано значение AcceptLicense .
Install-Module -Name ModuleWithDependency -AcceptLicense
Пример 7: Установите модуль, требующий принятия лицензии, на клиент старше 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'.
Пример 8: Модуль сохранения, требующий принятия лицензии
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"):
Эта команда показывает лицензию из license.txt файла и предлагает пользователю принять лицензию.
Пример 9: Модуль сохранения, требующий принятия лицензии с -AcceptLicense
Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved
Модуль сохраняется без запроса на принятие лицензии.
Пример 10: Модуль обновления, требующий принятия лицензии
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"):
Эта команда показывает лицензию из license.txt файла и предлагает пользователю принять лицензию.
Пример 11: Модуль обновления, требующий принятия лицензии с -AcceptLicense
Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Модуль обновляется без запроса на принятие лицензии.
Дополнительные сведения
Требование принятия лицензии на скрипты
Требуется поддержка по принятию лицензий в PowerShellGallery
Требование принятия лицензии при развертывании в службе автоматизации Azure
PowerShell Gallery