PowerShell-moduljegyzék írása
Miután megírta a PowerShell-modult, hozzáadhat egy nem kötelező moduljegyzéket, amely információkat tartalmaz a modulról. Leírhatja például a szerzőt, meghatározhatja a modulban lévő fájlokat (például beágyazott modulokat), szkripteket futtathat a felhasználói környezet testreszabásához, betöltheti a fájlok típusát és formázását, meghatározhatja a rendszerkövetelményeket, és korlátozhatja a modul által exportálható tagokat.
Moduljegyzék létrehozása
A moduljegyzék egy PowerShell-adatfájl ( ), amely leírja egy modul tartalmát, és meghatározza a modul .psd1
feldolgozásának folyamatát. A jegyzékfájl egy szövegfájl, amely kulcsokat és értékeket tartalmazó kivonattáblát tartalmaz. A jegyzékfájlt úgy csatolhatja egy modulhoz, hogy a jegyzékfájlt ugyanúgy nevezi el, mint a modult, és tárolja a jegyzékfájlt a modul gyökérkönyvtárában.
A csak egy vagy bináris szerelvényt tartalmazó egyszerű modulok esetében .psm1
a moduljegyzék használata nem kötelező. A javaslat azonban az, hogy amikor csak lehetséges, használjon egy moduljegyzéket, mivel ezek segítenek a kód rendszerezésében és a verziószámozási információk karbantartásában. A globális szerelvény-gyorsítótárban telepített szerelvények exportálásához pedig egy moduljegyzékre van szükség. A frissíthető súgó funkciót támogató modulokhoz is szükség van egy moduljegyzékre. A frissíthető súgó a moduljegyzék HelpInfoUri kulcsának használatával megkeresi a modul frissített súgófájlja helyét tartalmazó Súgóinformációk (HelpInfo XML) fájlt. A frissíthető súgóval kapcsolatos további információkért lásd: A frissíthető súgó támogatása.
Moduljegyzék létrehozása és használata
A moduljegyzék létrehozásához az ajánlott eljárás a New-ModuleManifest parancsmag használata. Paraméterek használatával megadhatja a jegyzékfájl egy vagy több alapértelmezett kulcsát és értékét. Az egyetlen követelmény a fájl elnevezése.
New-ModuleManifest
létrehoz egy moduljegyzéket a megadott értékekkel, és tartalmazza a fennmaradó kulcsokat és azok alapértelmezett értékeit. Ha több modult kell létrehoznia, a használatával hozzon létre egy moduljegyzék-sablont, amely a különbözőNew-ModuleManifest
modulokhoz módosítható. Az alapértelmezett moduljegyzékre a Mintamodul-jegyzékfájlban láthat példát.New-ModuleManifest -Path C:\myModuleName.psd1 -ModuleVersion "2.0" -Author "YourNameHere"
Alternatív megoldásként manuálisan is létrehozhatja a moduljegyzék kivonattábláját a ModuleVersion minimális információ alapján. Mentse a fájlt a modullal azonos néven, és használja a
.psd1
fájlkiterjesztést. Ezután szerkesztheti a fájlt, és hozzáadhatja a megfelelő kulcsokat és értékeket.Adja hozzá a jegyzékfájlhoz a kívánt további elemeket.
A jegyzékfájl szerkesztéséhez bármilyen szövegszerkesztőt használhat. A jegyzékfájl azonban egy kódot tartalmazó szkriptfájl, ezért előfordulhat, hogy szkript- vagy fejlesztési környezetben szeretné szerkeszteni, például a Visual Studio Code-ban. A jegyzékfájl összes eleme nem kötelező, kivéve a ModuleVersion számot.
A moduljegyzékbe foglalhatja a kulcsok és értékek leírását a Modul jegyzékelemei táblázatban található. További információért tekintse meg a New-ModuleManifest parancsmag paraméterleírását.
Az alapmodul jegyzékelemei által nem lefedett forgatókönyvek megoldását további kódot is hozzáadhatja a moduljegyzékhez.
Biztonsági okokból a PowerShell csak az elérhető műveletek egy kis részkészletét futtatja egy modul jegyzékfájljában. Általában használhatja a utasítást, az aritmetikai és összehasonlító operátorokat, valamint az alapvető
if
PowerShell-adattípusokat.A moduljegyzék létrehozása után tesztelheti, hogy a jegyzékben leírt útvonalak helyesek-e. A modul jegyzékfájlját a Test-ModuleManifest használatával tesztelje.
Test-ModuleManifest myModuleName.psd1
Győződjön meg arról, hogy a moduljegyzék a modult tartalmazó könyvtár legfelső szintjén található.
Amikor a modult egy rendszerbe másolja és importálja, a PowerShell a modul jegyzékfájlját használja a modul importálására.
Ha szükséges, közvetlenül is tesztelheti a moduljegyzéket az Import-Module hívásával, ha a jegyzékfájlt pontokkal kiszerveződ.
Import-Module .\myModuleName.psd1
Moduljegyzék-elemek
Az alábbi táblázat a moduljegyzékbe foglalhat elemeket ismerteti.
Elem | Alapértelmezett | Leírás |
---|---|---|
RootModule (RootModule) Típus: String |
<empty string> |
A jegyzékfájlhoz társított szkriptmodul vagy bináris modulfájl. A PowerShell korábbi verziói ezt az elemet a ModuleToProcess elemnek hívták. A gyökérmodul lehetséges típusai üresek is lehet, ami létrehoz egy Jegyzékmodult, egy szkriptmodul nevét ( ), vagy egy bináris modul .psm1 nevét ( vagy .exe .dll ). Ha ebben az elemben elhelyez egy moduljegyzék ( ) vagy egy szkriptfájl .psd1 .ps1 () nevét, az hibát okoz. Például: RootModule = 'ScriptModule.psm1' |
ModuleVersion (Modulverzió) Típus: Version |
'0.0.1' |
A modul verziószáma. Ha nincs megadva érték, a New-ModuleManifest az alapértelmezett értéket használja. A sztringnek képesnek kell lennie a típusra Version konvertálásra, #.#.#.# például: . Import-Module betölti az első modult, amely a $PSModulePath megegyezik a névvel, és legalább olyan magas ModuleVersion-rel rendelkezik, mint a MinimumVersion paraméter. Egy adott verzió importálásához használja a Import-Module parancsmag RequiredVersion paraméterét.Például: ModuleVersion = '1.0' |
GUID Típus: GUID |
'<GUID>' |
A modul egyedi azonosítására használt azonosító. Ha nincs megadva érték, New-ModuleManifest a automatikusan generálja az értéket. Jelenleg nem importálhat modult GUID azonosító alapján. Például: GUID = 'cfc45206-1e49-459d-a8ad-5b571ef94857' |
Szerző Típus: String |
'<Current user>' |
A modul szerzője. Ha nincs megadva érték, New-ModuleManifest a az aktuális felhasználót használja. Például: Author = 'AuthorNameHere' |
CompanyName Típus: String |
'Unknown' |
A modul vállalata vagy szállítója. Ha nincs megadva érték, a New-ModuleManifest az alapértelmezett értéket használja.Például: CompanyName = 'Fabrikam' |
Szerzői jog Típus: String |
'(c) <Author>. All rights reserved.' |
A modul szerzői jogi nyilatkozata. Ha nincs megadva érték, a az alapértelmezett értéket használja New-ModuleManifest az aktuális <Author> felhasználóval. Szerző megadásához használja a Szerző paramétert. Például: Copyright = '2019 AuthorName. All rights reserved.' |
Leírás Típus: String |
<empty string> |
A modul által biztosított funkciók leírása. Például: Description = 'This is the module's description.' |
PowerShellVersion Típus: Version |
<empty string> |
A Modulhoz szükséges PowerShell-motor minimális verziója. Érvényes értékek: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1, 6.0, 6.1, 6.2, 7.0 és 7.1. Például: PowerShellVersion = '5.0' |
PowerShellHostName Típus: String |
<empty string> |
A modulhoz szükséges PowerShell-gazdagép neve. Ezt a nevet a PowerShell biztosítja. A gazdaprogram nevének megkereshez írja be a következőt a programba: $host.name .Például: PowerShellHostName = 'ConsoleHost' |
PowerShellHostVersion Típus: Version |
<empty string> |
A Modul által megkövetelt PowerShell-gazdagép minimális verziója. Például: PowerShellHostVersion = '2.0' |
DotNetFrameworkVersion Típus: Version |
<empty string> |
A Microsoft-.NET-keretrendszer szükséges minimális verziója. Ez az előfeltétel csak a PowerShell Desktop kiadásra érvényes, például a PowerShell 5.1-re. Például: DotNetFrameworkVersion = '3.5' |
CLRVersion Típus: Version |
<empty string> |
A modulhoz szükséges közös nyelvi modul (CLR) minimális verziója. Ez az előfeltétel csak a PowerShell Desktop kiadásra érvényes, például a PowerShell 5.1-re. Például: CLRVersion = '3.5' |
ProcessorArchitecture Típus: ProcessorArchitecture |
<empty string> |
A modulhoz szükséges processzorarchitektúra (Nincs, X86, Amd64). Érvényes értékek: x86, AMD64, Arm, IA64, MSIL és Nincs (ismeretlen vagy nem meghatározott). Például: ProcessorArchitecture = 'x86' |
RequiredModules (Kötelezőmodulok) Típus: Object[] |
@() |
A modul importálása előtt a globális környezetbe importálni kell a modulokat. Ez betölti a felsorolt modulokat, kivéve, ha azok már be vannak töltve. Előfordulhat például, hogy egyes modulokat már betölt egy másik modul. A helyett egy adott betöltni kívánt verziót is RequiredVersion ModuleVersion megadhat. A használata esetén a rendszer a legújabb elérhető verziót fogja betölteni ModuleVersion a megadott minimális verzióval. A paraméterértékben sztringeket és kivonattáblákat kombinálhat.Például: RequiredModules = @("MyModule", @{ModuleName="MyDependentModule"; ModuleVersion="2.0"; GUID="cfc45206-1e49-459d-a8ad-5b571ef94857"}) Például: RequiredModules = @("MyModule", @{ModuleName="MyDependentModule"; RequiredVersion="1.5"; GUID="cfc45206-1e49-459d-a8ad-5b571ef94857"}) |
Szükségesassemblies Típus: String[] |
@() |
A modul importálása előtt betölthető szerelvények. Megadja a modulhoz szükséges .dll szerelvényfájlneveket ( ).A PowerShell a típusok vagy formátumok frissítése, a beágyazott modulok importálása vagy a RootModule kulcs értékeként megadott modulfájl importálása előtt betölti a megadott szerelvényeket. Ezzel a paraméterrel listába sorolja a modulhoz szükséges összes szerelvényt. Például: RequiredAssemblies = @("assembly1.dll", "assembly2.dll", "assembly3.dll") |
ScriptsToProcess Típus: String[] |
@() |
Script ( ) fájlok, amelyek a hívó munkamenet-állapotában futnak .ps1 a modul importálása során. Ez lehet a globális munkamenet-állapot, vagy a beágyazott modulok esetében egy másik modul munkamenet-állapota. Ezekkel a szkriptekkel előkészítheti a környezetet, ahogyan egy bejelentkezési szkriptet is használhat.Ezek a szkriptek a jegyzékfájlban felsorolt modulok betöltése előtt futnak. Például: ScriptsToProcess = @("script1.ps1", "script2.ps1", "script3.ps1") |
TypesToProcess (Típusokfelfeldolgozás) Típus: String[] |
@() |
Írja be a modul importálása során betölteni .ps1xml szükséges fájlokat (). Például: TypesToProcess = @("type1.ps1xml", "type2.ps1xml", "type3.ps1xml") |
FormatsToProcess (Formátumokfelfeldolgozás) Típus: String[] |
@() |
Formázza a modul importálni kívánt .ps1xml fájlokat (). Például: FormatsToProcess = @("format1.ps1xml", "format2.ps1xml", "format3.ps1xml") |
NestedModules (Beágyazottmodulok) Típus: Object[] |
@() |
A RootModule modulban (alias:ModuleToProcess) megadott modul beágyazott moduljaiként importálható modulok. A modul nevének hozzáadása ehhez az elemhez hasonló, mint a hívása a szkriptből vagy Import-Module szerelvénykódból. A jegyzékfájl használatának fő különbsége az, hogy könnyebben látható, hogy mit tölt be. Ha pedig egy modul nem töltődik be, még nem fogja betölteni a tényleges modult.Más modulok mellett itt szkriptfájlokat ( .ps1 ) is betölthet. Ezek a fájlok a gyökérmodul környezetében lesznek végrehajtva. Ez egyenértékű azzal, mint a szkript forráskezelése a gyökérmodulban. Például: NestedModules = @("script.ps1", @{ModuleName="MyModule"; ModuleVersion="1.0.0.0"; GUID="50cdb55f-5ab7-489f-9e94-4ec21ff51e59"}) |
FunctionsToExport (Függvényekexportálás) Típus: String[] |
@() |
Megadja az ebből a modulból exportálandó függvényeket, a legjobb teljesítmény érdekében ne használjon helyettesítő karaktereket, és ne törölje a bejegyzést, használjon üres tömböt, ha nincsenek exportálandó függvények. Alapértelmezés szerint a függvények nincsenek exportálva. Ezzel a kulccsal listhatja a modul által exportált függvényeket. A modul exportálja a függvényeket a hívó munkamenet-állapotába. A hívó munkamenet-állapota lehet a globális munkamenet-állapot, vagy beágyazott modulok esetén egy másik modul munkamenet-állapota. Beágyazott modulok láncolata során a beágyazott modul által exportált összes függvény a globális munkamenet-állapotba lesz exportálva, kivéve, ha a lánc egyik modulja a FunctionsToExport kulcs használatával korlátozza a függvényt. Ha a jegyzékfájl exportálja a függvények aliasát, ez a kulcs eltávolíthatja azokat a függvényeket, amelyeknek az aliasa szerepel az AliasesToExport kulcsban, de ez a kulcs nem adhat függvény aliasokat a listához. Például: FunctionsToExport = @("function1", "function2", "function3") |
CmdletsToExport (Parancsmagok –Exportálás) Típus: String[] |
@() |
Megadja az ebből a modulból exportálandó parancsmagokat, a legjobb teljesítmény érdekében ne használjon helyettesítő karaktereket, és ne törölje a bejegyzést, használjon üres tömböt, ha nincsenek exportálandó parancsmagok. Alapértelmezés szerint a rendszer nem exportál parancsmagokat. Ezzel a kulccsal listhatja a modul által exportált parancsmagokat. A hívó munkamenet-állapota lehet a globális munkamenet-állapot, vagy beágyazott modulok esetén egy másik modul munkamenet-állapota. Beágyazott modulok láncolása esetén a beágyazott modul által exportált összes parancsmag a globális munkamenet-állapotba lesz exportálva, kivéve, ha a lánc egyik modulja a CmdletsToExport kulcs használatával korlátozza a parancsmagot. Ha a jegyzékfájl exportálja a parancsmagok aliasát, ez a kulcs eltávolíthatja azokat a parancsmagokat, amelyeknek az aliasai szerepelnek az AliasesToExport kulcsban, de ez a kulcs nem adhat hozzá parancsmag-aliasokat a listához. Például: CmdletsToExport = @("Get-MyCmdlet", "Set-MyCmdlet", "Test-MyCmdlet") |
VariablesToExport (VariablesToExport) Típus: String[] |
'*' |
Megadja azokat a változókat, amelyek exportálását a modul a hívó munkamenet-állapotába exportálja. Helyettesítő karakterek használata engedélyezett. Alapértelmezés szerint a rendszer az összes változót ( '*' ) exportálja. Ezzel a kulccsal korlátozhatja a modul által exportált változókat.A hívó munkamenet-állapota lehet a globális munkamenet-állapot, vagy beágyazott modulok esetén egy másik modul munkamenet-állapota. Beágyazott modulok láncolása esetén a beágyazott modul által exportált összes változó a globális munkamenet-állapotba lesz exportálva, kivéve, ha a lánc egyik modulja a VariablesToExport kulccsal korlátozza a változót. Ha a jegyzékfájl a változók aliasát is exportálja, ez a kulcs eltávolíthatja azokat a változókat, amelyek aliasai szerepelnek az AliasesToExport kulcsban, de ez a kulcs nem adhat változó aliasokat a listához. Például: VariablesToExport = @('$MyVariable1', '$MyVariable2', '$MyVariable3') |
AliasesToExport Típus: String[] |
@() |
Megadja az ebből a modulból exportálandó aliasokat, a legjobb teljesítmény érdekében ne használjon helyettesítő karaktereket, és ne törölje a bejegyzést, használjon üres tömböt, ha nincsenek exportálandó aliasok. Alapértelmezés szerint a rendszer nem exportál aliasokat. Ezzel a kulccsal listhatja a modul által exportált aliasokat. A modul exportálja az aliasokat a hívó munkamenet-állapotába. A hívó munkamenet-állapota lehet a globális munkamenet-állapot, vagy beágyazott modulok esetén egy másik modul munkamenet-állapota. Beágyazott modulok láncolata során a beágyazott modul által exportált összes aliast a rendszer végül a globális munkamenet-állapotba exportálja, kivéve, ha a lánc egyik modulja az AliasesToExport kulcs használatával korlátozza az aliast. Például: AliasesToExport = @("MyAlias1", "MyAlias2", "MyAlias3") |
DscResourcesToExport Típus: String[] |
@() |
A modulból exportálni szükséges DSC-erőforrásokat adja meg. Helyettesítő karakterek használata engedélyezett. Például: DscResourcesToExport = @("DscResource1", "DscResource2", "DscResource3") |
ModuleList Típus: Object[] |
@() |
A modulhoz csomagolt összes modult megadja. Ezek a modulok név szerint, vesszővel elválasztott sztring használatával, vagy ModuleName és GUID kulcsokat használó kivonattáblaként is megírhatóak. A kivonattábla egy nem kötelező ModuleVersion kulccsal is rendelkezik. A ModuleList kulcs modulleltárként működik. Ezeket a modulokat a rendszer nem feldolgoz automatikusan. Például: ModuleList = @("SampleModule", "MyModule", @{ModuleName="MyModule"; ModuleVersion="1.0.0.0"; GUID="50cdb55f-5ab7-489f-9e94-4ec21ff51e59"}) |
FileList Típus: String[] |
@() |
A modulhoz csomagolt összes fájl listája. Ahogy a ModuleList esetén is, a FileList is egy leltárlista, és egyéb esetben nem lesz feldolgozva. Például: FileList = @("File1", "File2", "File3") |
PrivateData (Privát adatok) Típus: Object |
@{...} |
Megadja a RootModule (alias: ModuleToProcess) kulcs által meghatározott gyökérmodulnak átállítható privát adatokat. A PrivateData egy kivonattábla, amely több elemből áll: Tags, LicenseUri, ProjectURI, IconUri, ReleaseNotes, Prerelease, RequireLicenseAcceptance, és ExternalModuleDependencies. |
Címkék Típus: String[] |
@() |
A címkék segítenek az online katalógusok modulfelderítésében. Például: Tags = "PackageManagement", "PowerShell", "Manifest" |
LicenseUri Típus: Uri |
<empty string> |
A modul licencének URL-címe. Például: LicenseUri = 'https://www.contoso.com/license' |
ProjectUri (Projekturi) Típus: Uri |
<empty string> |
A projekt fő webhelyének URL-címe. Például: ProjectUri = 'https://www.contoso.com/project' |
IconUri Típus: Uri |
<empty string> |
A modult jelképeő ikon URL-címe. Például: IconUri = 'https://www.contoso.com/icons/icon.png' |
ReleaseNotes Típus: String |
<empty string> |
A modul kibocsátási megjegyzéseit adja meg. Például: ReleaseNotes = 'The release notes provide information about the module. |
Prerelease Típus: String |
<empty string> |
Ez a paraméter a PowerShellGet 1.6.6-os parancsában lett hozzáadva. Egy előzetes verziójú sztring, amely a modult előzetes verzióként azonosítja az online katalógusban. Például: PreRelease = 'This module is a prerelease version. |
RequireLicenseAcceptance Típus: Boolean |
$true |
Ez a paraméter a PowerShellGet 1.5-ben lett hozzáadva. Jelző annak jelzésére, hogy a modulhoz explicit felhasználói elfogadás szükséges-e a telepítéshez, frissítéshez vagy mentéshez. Például: RequireLicenseAcceptance = $false |
ExternalModuleDependencies (Külső modul függőségei) Típus: String[] |
@() |
Ez a paraméter a PowerShellGet v2-ben lett hozzáadva. Azon külső modulok listája, amelyektől ez a modul függ. Például: ExternalModuleDependencies = @("ExtModule1", "ExtModule2", "ExtModule3") |
HelpInfoURI Típus: String |
<empty string> |
A modul HelpInfo URI-ja. Például: HelpInfoURI = 'https://www.contoso.com/help' |
DefaultCommandPrefix Típus: String |
<empty string> |
A modulból exportált parancsok alapértelmezett előtagja. Bírálja felül az alapértelmezett előtagot a Import-Module -Prefix használatával. Például: DefaultCommandPrefix = 'My' |
Mintamodul-jegyzék
A következő mintamodul-jegyzékfájl a használatával lett létrehozva a PowerShell 7-ben, és New-ModuleManifest
tartalmazza az alapértelmezett kulcsokat és értékeket.
#
# Module manifest for module 'SampleModuleManifest'
#
# Generated by: User01
#
# Generated on: 10/15/2019
#
@{
# Script module or binary module file associated with this manifest.
# RootModule = ''
# Version number of this module.
ModuleVersion = '0.0.1'
# Supported PSEditions
# CompatiblePSEditions = @()
# ID used to uniquely identify this module
GUID = 'b632e90c-df3d-4340-9f6c-3b832646bf87'
# Author of this module
Author = 'User01'
# Company or vendor of this module
CompanyName = 'Unknown'
# Copyright statement for this module
Copyright = '(c) User01. All rights reserved.'
# Description of the functionality provided by this module
# Description = ''
# Minimum version of the PowerShell engine required by this module
# PowerShellVersion = ''
# Name of the PowerShell host required by this module
# PowerShellHostName = ''
# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''
# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''
# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# CLRVersion = ''
# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''
# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()
# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()
# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()
# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()
# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @()
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()
# Variables to export from this module
VariablesToExport = '*'
# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()
# DSC resources to export from this module
# DscResourcesToExport = @()
# List of all modules packaged with this module
# ModuleList = @()
# List of all files packaged with this module
# FileList = @()
# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{
PSData = @{
# Tags applied to this module. These help with module discovery in online galleries.
# Tags = @()
# A URL to the license for this module.
# LicenseUri = ''
# A URL to the main website for this project.
# ProjectUri = ''
# A URL to an icon representing this module.
# IconUri = ''
# ReleaseNotes of this module
# ReleaseNotes = ''
# Prerelease string of this module
# Prerelease = ''
# Flag to indicate whether the module requires explicit user acceptance for install/update/save
RequireLicenseAcceptance = $true
# External dependent modules of this module
# ExternalModuleDependencies = @()
} # End of PSData hashtable
} # End of PrivateData hashtable
# HelpInfo URI of this module
# HelpInfoURI = ''
# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''
}
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: