Guten Morgen,
ich hätte einen Verbesserungsvorschlag für das Notepad++ Paket, auf den ich aus aktuellem Anlass gestoßen bin. Es betrifft den Teil mit den Plugins (lässt sich aber vermutlich auf „localization“ und „themes“ übertragen.
Zum Einen ist es spitze, dass das berücksichtigt wird und wir hiermit ohne großen Aufwand Must-Have-Plugins automatisch mit ausrollen können.
Unsere User haben i.d.R. keine lokalen Admin-Rechte, was sie somit von der selbstständigen Plugin-Installation ausschließt oder für den IT-Helpdesk manuelle Arbeit bedeutet (bleibt es natürlich weiterhin, mit den zentral über das Paket “installierten” reduziert sich das aber drastisch).
Zum eigentlichen Vorschlag… Wir haben beim jetzigen Notepad++ Update vom Compare-Plugin zum ComparePlus-Plugin gewechselt. Wir sind bisher davon ausgegangen, dass das nur ein weiteres Vergleichs-Plugin ist und es lange Zeit nicht weiter beachtet. Nun habe ich mich aber nochmals damit beschäftigt, als ich die tatsächlichen Unterschiede zwischen den zwei Plugins anschauen wollte und habe festgestellt, dass ComaprePlus der Nachfolger vom nicht mehr weiterentwickelten Compare-Plugin ist (siehe pnedev/comparePlus: Compare plugin for Notepad++ “ComparePlus is its highly advanced successor and is meant to be its replacement so Compare-plugin will no longer be supported by me”).
Somit haben wir jetzt das ComparePlus-Plugin statt dem Compare-Plugin aufgenommen und jetzt festgestellt, dass (aus offensichtlichen Gründen) nun beide Plugins vorhanden sind (in unserem Falle einer Update-Installation wegen UninstallOld=false, bei der sauberen Deinstallation wird der komplette Notepad++ Programm-Ordner gelöscht).
Ein Blick in die Deploy-Application.ps1 verrät:
Copy-File -Path "$dirSupportFiles\plugins\*" -Destination "$($global:PackageConfig.InstallLocation)\plugins\" -Recurse
Das ist natürlich naheliegend und sinnvoll, um manuell installierte Plugins nicht zu entfernen. Das hat aber nach meinen jetzigen Überlegungen drei Nachteile:
-
Veraltete, nicht mehr gewartete Plugins bleiben so auf den Clients (ggf. mit nicht mehr gefixten Sicherheitslücken) und ein Ablösen eines Plugins durch ein anderes ist so auch nicht sauber möglich (unser ursprünglicher Use-Case). Im Fall von Comare und ComaprePlus haben diese Plugins auch die gleichen Tastenkombinationen, von daher ist unklar, welches der beiden Plugins nun tatsächlich verwendet wird
-
Wenn innerhalb eines Plugins obsolete Dateien vom „Hersteller“ gelöscht werden, verbleiben diese auf dem Client (vorhandene werden ersetzt, neue kopiert, nicht mehr vorhandene ignoriert) und bergen im Worstcase ebenfalls ein Sicherheitsrisiko
-
Man kann zentral keine Plugins „verbieten“ (wird man bei Usern mit Admin-Rechten dann anderweitig über Sicherheitslösungen verhindern müssen)
Der einfachste Ansatz aus meiner Sicht wäre es:
-
für zu löschende Plugins (für 1. und 3. Fall) einen gleichnamigen leeren Ordner unter Plugins im SupportFiles-Ordner anzulegen
-
alle gleichnamigen lokalen Ordner, die im Paket ebenfalls vorhanden sind, vorher lokal zu löschen und erst danach die Plugin-Ordner aus dem Paket zu kopieren (Würde 1., 2. Und 3. Fall adressieren)
- Man könnte ggf. beim/vor dem Kopieren noch einbauen, dass nur Ordner mit Unter-Elementen kopiert werden. Somit würden lokal auch keine nutzlosen/verwirrenden leeren Ordner abgelegt. Alternativ nachträglich leere lokale Plugin-Ordner löschen.
Ich dachte ich schreibe das hier in der Community zur Diskussion, statt es direkt an neoSupport zu schreiben. Vielleicht gibt es aus der Community noch Einwände oder andere Aspekte, die mir entgangen sind!?
So oder so vielen Dank für das in Betracht ziehen, das in das Paket mit einzubauen!
Beste Grüße
Lucas