Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
ZUSAMMENFASSUNG
Die Rechtsabteilungen einiger Modulherausgeber verlangen, dass Kunden die Lizenz explizit akzeptieren müssen, bevor sie ihr Modul aus dem PowerShell-Katalog installieren. Wenn ein Benutzer ein Modul mithilfe von PowerShellGet installiert, aktualisiert oder speichert, sei es direkt oder als Abhängigkeit für ein anderes Paket, und dieses Modul erfordert, dass der Benutzer einer Lizenz zustimmt, muss der Benutzer angeben, dass er die Lizenz akzeptiert, oder der Vorgang schlägt fehl.
Veröffentlichen von Anforderungen für Module
Module, bei denen Benutzer die Lizenz akzeptieren müssen, sollten die folgenden Anforderungen erfüllen:
- Der PSData-Abschnitt des Modulmanifests sollte RequireLicenseAcceptance = $True enthalten.
- Das Modul sollte license.txt Datei im Stammverzeichnis enthalten.
- Das Modulmanifest sollte den Lizenz-URI enthalten.
- Das Modul sollte mit PowerShellGet Format Version 2.0 und höher veröffentlicht werden.
Auswirkungen auf Installieren/Speichern/Update-Module
- Install/Save/Update-Cmdlets unterstützen den neuen Parameter AcceptLicense , der sich so verhält, als ob der Benutzer die Lizenz gesehen hätte.
- Wenn RequiredLicenseAcceptance auf True festgelegt ist und AcceptLicense nicht angegeben ist, wird dem Benutzer die
license.txtangezeigt und mit folgendemDo you accept these license terms (Yes/No/YesToAll/NoToAll)Aufforderungssignal aufgefordert: .- Wenn die Lizenz akzeptiert wird
- Save-Module: Das Modul wird auf das System des Benutzers kopiert
- Install-Module: Das Modul wird auf das System des Benutzers in den richtigen Ordner kopiert (basierend auf dem Umfang)
- Update-Modul: Das Modul wird aktualisiert.
- Wenn die Lizenz abgelehnt wird.
- Der Vorgang wird abgebrochen.
- Alle Cmdlets prüfen auf die Metadaten (requireLicenseAcceptance und Format Version), die besagen, dass eine Lizenzannahme erforderlich ist
- Wenn die Formatversion des Clients älter als 2.0 ist, schlägt der Vorgang fehl und fordert den Benutzer auf, den Client zu aktualisieren.
- Wenn das Modul mit einer Formatversion veröffentlicht wurde, die älter als 2.0 ist, wird das requireLicenseAcceptance-Flag ignoriert.
- Wenn die Lizenz akzeptiert wird
Modul-Abhängigkeiten
- Wenn während des Installations-/Speicher-/Aktualisierungsvorgangs ein abhängiges Modul (etwas anderes hängt vom Modul ab) eine Lizenzannahme erfordert, ist das Lizenzannahmeverhalten (oben) erforderlich.
- Wenn die Modulversion bereits im lokalen Katalog als auf dem System installiert aufgeführt ist, würden wir die Lizenzprüfung umgehen.
- Wenn während des Installations-/Speicher-/Aktualisierungsvorgangs für ein abhängiges Modul eine Lizenz erforderlich ist und die Lizenzannahme nicht erfolgt, schlägt der Vorgang fehl und führt die normalen Prozesse für das Paket aus, das nicht installiert/gespeichert/aktualisiert werden konnte.
Auswirkungen auf die -Force
Die Angabe –Force ist NICHT ausreichend, um eine Lizenz zu akzeptieren.
–AcceptLicense ist für die Berechtigung zur Installation erforderlich. Wenn –Force angegeben ist, ist RequiredLicenseAcceptance True und –AcceptLicense NICHT angegeben, schlägt der Vorgang fehl.
BEISPIELE
Beispiel 1: Aktualisieren des Modulmanifests, um eine Lizenzannahme zu erzwingen
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
Mit diesem Befehl wird die Manifestdatei aktualisiert und das RequireLicenseAcceptance-Flag auf true festgelegt.
Beispiel 2: Installieren des Moduls, das eine Lizenzannahme erfordert
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"):
Dieser Befehl zeigt die Lizenz aus license.txt der Datei an und fordert den Benutzer auf, die Lizenz zu akzeptieren.
Beispiel 3: Installieren des Moduls, das eine Lizenzannahme mit -AcceptLicense erfordert
Install-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Das Modul wird installiert, ohne dass eine Aufforderung zur Lizenzannahme erforderlich ist.
Beispiel 4: Installieren des Moduls, das eine Lizenzannahme mit -Force erfordert
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
Beispiel 5: Installieren eines Moduls mit Abhängigkeiten, die eine Lizenzannahme erfordern
Das Modul ModuleWithDependency hängt vom Modul ModuleRequireLicenseAcceptance ab. Der Benutzer wird aufgefordert, die Lizenz zu akzeptieren.
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"):
Beispiel 6: Installieren eines Moduls mit Abhängigkeiten, die eine Lizenzakzeptanz und --AcceptLicense erfordern
Das Modul ModuleWithDependency hängt vom Modul ModuleRequireLicenseAcceptance ab. Der Benutzer wird nicht aufgefordert, die Lizenz zu akzeptieren, da AcceptLicense angegeben ist.
Install-Module -Name ModuleWithDependency -AcceptLicense
Beispiel 7: Installieren eines Moduls, das eine Lizenzannahme erfordert, auf einem Client, der älter als PSGetFormatVersion 2.0 ist
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'.
Beispiel 8: Speichermodul, das eine Lizenzannahme erfordert
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"):
Dieser Befehl zeigt die Lizenz aus license.txt der Datei an und fordert den Benutzer auf, die Lizenz zu akzeptieren.
Beispiel 9: Speichermodul, das eine Lizenzannahme mit -AcceptLicense erfordert
Save-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense -Path C:\Saved
Das Modul wird gespeichert, ohne dass die Lizenz akzeptiert werden muss.
Beispiel 10: Update-Modul, das eine Lizenzannahme erfordert
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"):
Dieser Befehl zeigt die Lizenz aus license.txt der Datei an und fordert den Benutzer auf, die Lizenz zu akzeptieren.
Beispiel 11: Update-Modul, das eine Lizenzannahme mit -AcceptLicense erfordert
Update-Module -Name ModuleRequireLicenseAcceptance -AcceptLicense
Das Modul wird aktualisiert, ohne dass eine Aufforderung zur Annahme der Lizenz erforderlich ist.
Weitere Details
Lizenzannahme für Skripte erforderlich
Anfordern der Unterstützung für die Lizenzannahme in PowerShellGallery
Anfordern der Lizenzannahme bei der Bereitstellung in Azure Automation
PowerShell Gallery