colinardo
Goto Top

Administrator.de : Editor-Hilfsmittel für Powershell-Supporter

Servus @all,

heute mal zur Abwechslung ein Browserseitiges User-Script mit einer Erleichterung für alle Powershell-Supporter hier im Forum.

Es kommt ja hier nicht gerade selten vor das man Neulingen zeigen muss wo sie etwas nachschlagen können. Das artet dann meist für uns Supporter in der Art aus, dass man erst den Link für das jeweilige CMDLet aus der Powershell-Doku manuell nach schlägt und dann im Kommentar-Editor als Link formatiert einsetzen muss - ein mühseliger Prozess der Zeit kostet wenn man ihn sehr oft manuell vollzieht.

Einige werden sicher schon von User-Skripten gehört haben oder auch aktiv einsetzen, mit denen man sich Webseiten nach Gusto selbst um Funktionen erweitern kann. Hier setzt das folgende User-Script an. Es automatisiert den obigen Prozess derart, indem es der Symbolleiste des hiesigen Kommentar-Editors einen weiteren Button hinzufügt, mit dem sich der Text eines CMDLets automatisch durch einen Link zur Microsoft-Doku ersetzen lässt. Der Prozess des Nachschlagens geschieht im Hintergrund unsichtbar per Ajax-Request.

back-to-topDer Ablauf

Der Ablauf sieht wie auch bei anderen Formatierungen so aus, dass man zuerst das zu ersetzende CMDLet im Editor markiert, und dann den Button zur Umwandlung betätigt

screenshot

back-to-topDas Ergebnis

Ist der durch den Doku-Link ersetzte Text.

screenshot

Manuelles Nachschlagen ist Geschichte face-smile.

Das User-Script lässt sich dann in den meisten Browsern mit einem Add-On wie Tampermonkey (chrome), Greasemonkey (Firefox), usw. einbinden und nutzen.
Dazu erstellt man in den Erweiterungen ein neues User-Skript und fügt das unten stehende Skript dort ein und aktiviert das User-Skript.
Von da an ist auf den Administrator.de-Seiten in den Kommentar/Beitrags-Feldern die neue Funktion nutzbar.

Hier als Beispiel Chrome mit Tampermonkey

screenshot

back-to-topDas Skript


// ==UserScript==
// @name         powershell cmdlet link replacer
// @namespace    http://administrator.de/
// @version      1.0
// @description  Replaces Powershell CMDlet-Names with link to documentation
// @author       @colinardo
// @include      /^https?://(.*\.)?administrator\.de(\/.+)?/
// @match        https://www.tampermonkey.net/index.php?version=4.14&ext=dhdg&updated=true
// @icon         https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net
// @require      https://code.jquery.com/jquery-3.6.0.min.js
// @grant        none
// ==/UserScript==

if ($('div.edit-icons') != null){  
  var el = $('textarea');  
  if (el != null){
    var btn = $('<a class="edit-cmd " id="edit-cmd-pic-9999" title="Powershell CMDLet-Docu Linker" href="#"><img class="icon-edit-comment" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOdQAADnUBuWNRMgAAA6FJREFUeNqt0s2LlWUYx/Hfdd3PfZ5nnvMyjTPHmfEopuYYZhZKbxIVVlZimzZpbYK0Fi1CKJBSDNsGUkGLFkKTiVDRTspIbBGSOUz0oqSIpeVE82JnznjO83Jf19Uigv4AP3/Ad/Ul/M+2fT+5Ihr2y5qGWiWimXYPl2eB0X7CXx1BLSaUIZgjIlE1MyUimIuSHDcKAcDWN2f42L4hfez1syvJNzYmMSkZOVHRbmGcREAhgCODmoEBUzMABhAFx/5kBACNkZq7/8VP40pj6eFKkt6XFwqYwFRQrQSUZYB3Ag0BjAAVgZlAtQTUYJF/hvnxM+7orqQs0nWtOE7WZyV3bx1F/t7zSW9sJGSdrmaeNZNSMiLpiUhmFnqqITMJC2bSdj45x9seXOEBYGigtk4UVU9SuTpXxBrKvgNP15NbFpfJ9SwkjkNSFtLHkERF+sgkMZUaYO2B1rJz3JdWGQCcTzYZYGRFNtNRfWX873KuI/rWc4M6XA9alKqeg4qEEhZUJFw3DWpGp47spJx7Lg4AAI7uMhUqQojrsXAnI//a4Wnu5soHd45w6gvuFsKmEqkKw4IzU3benwYAXr68Wz706uQSAlZDBZ7Vta8HpF5wZdqw98OraPZ7vP3CUngq4NhMJcBUyMyUyU0AAL/7ZNWSanMMwKhIyPM8cD1RnZ0vsWoYeGnbKEII+PLMVXR7JfK8YDNVDSEmoql0cPj8ii1vEAMAO9qgauxIzDvDbDunrRsSHHq5hbUtw4HxCxg/MY9GNYJ3CqiIWQCBLny2u3/qpsVrfPTvl9E9TKoLvUJiJ7p/+5Bsvr3PfT05hf0f/YGZDmOwBsxc6wqTuiTS3MwiF8XfAcBA8+Yo8puPxexwb1GU3Bqg6ju7WmgkJR/85CIOn2xjz/ZVeOTOGn6fztHsr/D48V9x9KsryaL+hHpa+QYALs56jTbdvWYtwfpFdCFiRD9cnLFDX/xJ56dgi+oxnbs0B5YFdDNBLYFdnprniEzMODNX+RkAct8s6YkDV3YAfAQmyIuAbreHNHGosCLPc3S6JfIih4pApUSaRKglDuTTU2MbNj78/fGj4fQHO8qoLIrPo8g9pYKokTosGRzAtfkeLfQE1VqK1oihUvFwBGVmbi8UMt0pOa2mE+8/S70te39h3Ej0wJ4LVO/zcTcHjY06W796kE5M/GY/XsrotpVNPHpHhMWL6hAFGmkF356dtuOTc2i1RsqPdw/Jf6F/AFBd+WprgKvfAAAAAElFTkSuQmCC" alt="image"></a>')  
    btn.on('click',(e)=> {  
      e.preventDefault();
      var selText = el.value.substring(el.selectionStart, el.selectionEnd).trim();
      if (selText != ""){  
        $.getJSON('https://docs.microsoft.com/api/apibrowser/powershell/search?search=' + selText,(data) =>{  
          if (data.results.length > 0){
          	el.setRangeText('[https://docs.microsoft.com' + data.results[0].url + ' ' + data.results.displayName + ']',el.selectionStart,el.selectionEnd);  
          }else{
          	alert("Kein Ergebnis für '" + selText + "' gefunden!");  
          }
        }).fail((e)=>{
          var err = JSON.parse(e.responseText).error.details;
	  alert("ERROR: " + err.code + "\n\n" + err.message);  
        });
      }else{
        alert("Bitte vorher den Namen eines gültigen Powershell-CMDLets markieren!");  
      }
    });
    btn.appendTo('div.edit-icons');  
  }
}

Das genutzte Icon in der Symbolleiste kann sich ja jeder selbst du ein Icon seiner Wahl ersetzen (Zeile 17 den img 'src' Link anpassen).

Vielleicht spart das dem ein oder anderen etwas Zeit. Mit etwas Anpassung lässt sich das ganze dann nach ähnlichem Schema auch für andere Dokumentations-Seiten nutzen. Im Fall der obigen Powershell-CMDLet Doku gab es die Daten komfortabel direkt als JSON zurückgeliefert.

Viel Spaß damit.

Gruß @colinardo

Content-Key: 1841155248

Url: https://administrator.de/contentid/1841155248

Printed on: May 2, 2024 at 18:05 o'clock

Member: Herbrich19
Herbrich19 Feb 21, 2022 at 15:12:42 (UTC)
Goto Top
Gepriesen sei Das Rauhe Haus,

Echt cool und vielen Dank für das coole Script. Werde ich gleich in meinen Reverse Proxy einbinden. (Nutze ein RP den ich mal programmiert habe, weil ich so Scripte Zentral für alle Geräte im Netzwerk bereitstellen kann.)

Liebe Grüße an die IT-Welt,
J. Herbrich