Mattermost und Powershell - eine große Kraft oder kleine Automatisierung für sich

Published on August 06, 2018

Mattermost und Powershell - eine große Kraft oder kleine Automatisierung für sich

    Sofort reservieren - Ich arbeite in einem Unternehmen, das nicht direkt mit der IT verbunden ist. Das IT-Budget ist daher gering. Dementsprechend stehen uns viele Programme und zugehörige Einrichtungen nicht zur Verfügung, so dass wir dies tun müssen. Und wenn es im Unternehmen neben der IT-Abteilung mehrere Hundert Benutzer gibt, die den Monitor kaum von der Maus unterscheiden, wird die Arbeit wie eine separate Suche.

    Daher ist das Schreiben von mir für Administratoren in kleinen Unternehmen sehr nützlich .

    Viele (oder nicht viele) haben von einem so wunderbaren Werkzeug wie dem Mattermost gehört .
    Für diejenigen, die noch nichts gehört haben - dies ist ein solcher Slack, aber nur in Eigenregie. Innerhalb des Unternehmens ist der allgemeine Chat das Nützlichste.

    Es ist elementar, wenn Sie möchten, ist es sehr einfach, einen Bot zu verschrauben (ich verwende beispielsweise Hubot), der alle Arten von Aufgabenwarnungen durch Redmaying oder Überwachung abschließt und einige Geschäftsprozesse automatisiert, die in ein Frage- und Antwortskript umgewandelt werden können. .

    Jeder ist sich in diesem Chat wohl, aber es gibt nur eine Sache. In der Tat tötet nicht nur eine, sondern das Fehlen einer normal strukturierten Benutzerliste. Natürlich können Sie Openfire + Miranda verwenden, aber die Anwesenheit des Mattermost-Clients für Telefone mit der Möglichkeit der Push-Benachrichtigung überwiegt alle diese Nachteile. Da die Anzahl der Benutzer nicht ein Dutzend ist, gibt es auch nicht zwei Abteilungen, manchmal stellt sich die Frage - wer arbeitet heute an der Rezeption in einer Außenstelle? Welches ist online? Wie schön und zugänglich diese Informationen an einem Ort dem Durchschnittsbenutzer zu vermitteln, ist eine andere Frage. Einen sich ausbreitenden Baum mit Optionen für Anfragen und Antworten für einen Chatbot zu zeichnen, ist immer noch ein Spaß. Deshalb präsentiere ich speziell für einen solchen Anlass einen Knie am Knie.

    Der Dienst für Mattermost, geschrieben durch die bequeme Ausführung verschiedener Powershell-Skripts aus Schrägstrich- / benutzerdefinierten Befehlen. Tatsächlich können Sie es für verschiedene Bedürfnisse verwenden, indem Sie es per URL referenzieren, aber ich habe es geschrieben, um Knöpfe in das kleine Küken zu zeichnen. Jeder liebt Knöpfe, sogar Siegel und Tanten aus der Buchhaltung. Jeder Windows-Administrator sollte in der Lage sein, mit PowerShell zu schreiben. Es ist also nützlich!

    Die ungefähre Arbeit sieht folgendermaßen aus: Der



    Dienst ist für die Arbeit mit Windows-Systemen mit Powershell v3 + ausgelegt. Um es auszuführen, benötigen Sie das Recht, PowerShell-Skripts auszuführen und einen Socket zu öffnen. Es gibt keine Authentifizierung im Skript, daher rate ich Ihnen nicht, etwas destruktives in die Configs zu schreiben und eine bloße Beute ins Internet zu stellen. Auf der anderen Seite können Sie den Pfad länger vorschreiben, aber dies ist ein Amateur.

    Der Dienst selbst besteht aus dem Skript selbst und der Datei config, die die auszuführenden Skripts und die an die Eingabe übertragenen Daten angibt ( in der Dokumentation, Abschnitt 8 beschrieben ).

    Einträge in der Konfig

    [script]
    Script=.\Dummy-Script.ps1
    IncomingVariables=text,team_domain,user_name
    

    bedeutet, dass beim Zugriff auf die URL / das Skript Dummy-Script.ps1 gestartet wird, das sich im selben Verzeichnis wie ButtonCommander befindet, mit den eingehenden Variablen text, team_domain und user_name.

    Der Dienst empfängt Daten aus Skripts und sendet sie an den Kanal, von dem die Anforderung stammt. Wenn die Daten in der Form von JSON vorliegen, erfolgt keine Konvertierung in eine einfache Nachricht, und die ursprüngliche JSON wird an das Mattermost gesendet. Auf diese Weise werden die Schaltflächen erstellt.

    Das Skript kann auch angehalten werden oder die Konfigurationsdatei erneut lesen, indem auf eine spezielle URL verwiesen wird. In anderen Fällen werden die Beschreibung und die Installation direkt im Repository beschrieben, so dass ich nicht kopieren und einfügen werde. Das Skript wurde ausgeführt und in der Arbeitsversion angeordnet. Es funktioniert ziemlich lange ohne Fehler.

    Verbindung zum Repository

    PS: Author ist kein Schriftsteller und kein Programmierer, sondern ein Geburtshelfer mit breitem Profil, daher schreibt er so gut er kann.
    PPS: Es geht um Team Edition, die (oh Schmerz, Schmerz!) Keine LDAP-Berechtigung hat. Ich kann nicht mehr die Anmeldeseite durch meine eigene ersetzen (nginx + python), aber diese Arbeit ist so ungeheuerlich, dass ich es für ein Verbrechen halte, sie hochzuladen.