Archiv der Kategorie: Tools

Anwendungen ausliefern mit PDQ Deploy von Arsenal Software

PDQ Deploy von Arsenal Software ist eine durchdachte und erstaunlich gut gemachte Anwendung, die das Verteilen von Software-Paketen im Netzwerk so einfach wie möglich machen soll. PDQ Deploy eignet sich vor allem für kleinere Firmen, Behörden oder Schulen für die eine große Lösung wie ein SSCM alleine schon aufgrund seiner Komplexität nicht in Frage kommt. Es wird auch kein Windows Server benötigt, theoertisch genügt bereits ein Windows 7-Computer. Ein Active Directory wird insofern eingebunden, das bei der Auswahl der Zielcomputer eine AD-Suche durchgeführt wird.

PDQ Deploy gibt es in drei Varianten: Enterprise, Pro und kostenlos. Die kostenlose Version kann uneingeschränkt genutzt werden, was ich sehr sympatisch finde, allerdings stehen viele Funktionen, etwa beim Erstellen eigener Pakete, die Möglichkeit Pakete zeitgesteuert zu verteilen und die Warteschlage, in die Pakete eingereiht werden, die aus irgendeinem Grund nicht zugestellt werden konnten, nicht zur Verfügung. Außerdem enthält die Paketbibliothek nicht über 150 Pakete der am häufigsten eingesetzen Zubehörprogramme, sondern nur ein paar. Für das Kennenlernen ist die kostenlose Version aber ideal geeignet.

Auch die PowerShell spielt bei der aktuellen Version eine Rolle, in dem ein einzelner Schritt als Teil eines Pakets, der bei der Installation ausgeführt wird, durch PowerShell-Befehle, als Alternative zu Stapeldateibefehlen, abgebildet werden kann. Ansonsten können PowerShell-Skripte als Paket verteilt und auf dem Zielsystem zur Ausführung gebracht werden – ein kleines Skript, das eine Melodie abspielt, und das per PDQ Deploy auf einen anderen Computer ausgeführt wird, war der Grund, dass ich beim googlen überhaupt auf das Tool aufmerksam wurde (es gibt natürlich noch ein Modul mit dem Namen PowerShellArsenal). Wie man es schafft, dass auf dem Computer des Kollegen ein Weihnachtslied abgespielt wird kann man unter der folgenden Adrese lesen:

http://www.adminarsenal.com/admin-arsenal-blog/powershell-music-remotely/.

Nach ein paar Tagen des Ausprobierens bin ich von der Leichtigkeit mit der sich Anwendungen „verteilen“ lassen sehr beeindruckt.

Hinter PDQ Deploy steckt die Softwarefirma Admin Arsenal aus Salt Lake City/USA. Weitere Informationen gibt es unter http://www.adminarsenal.com/. Der Webauftritt ist wirklich sehr originell. Ein weiteres Argument, das für das Tool spricht;)

Mein derzeitiges Fazit zu PQD Deploy: Klare Kaufempfehlung für alle, die die Softwareverteilung in ihrem Netzwerk bislang noch zu Fuss erledigen müssen.

Mit PDQDeploy macht das Ausliefern von Anwendugnen im lokalen Netzwerk richtig Spaß
Mit PDQDeploy macht das Ausliefern von Anwendugnen im lokalen Netzwerk richtig Spaß

PoshWizard – eine kleine DSL für das Erstellen von Assistenten

Angeregt durch PScribo und einen Vortrag von Kirk Munro auf dem letzten DevOps und PowerShell Summit habe ich selber eine kleine Domain Specific Language (DSL) mit dem Namen PoshWizard erstellt, mit deren Hilfe sich relativ einfach Assistenten erstellen lassen, die den Anwender durch eine Folge von Eingaben führen und mit den eingegebenen Werten am Schluss eine Aktion ausführen.

Der folgende Text erzeugt einen Assistenten mit insgesamt fünf Fenstern:

Das Ergebnis ist ein WPF-Fenster mit einem TabControl, das für jeden Schritt ein Register enthält (ursprünglich wollte ich alle übrigen Register bis auf das aktuelle ausblenden, aber in dieser Varianten steht eine zusätzliche Navigationsebene zur Verfügung und sie ist vor allem etwas leichter umzusetzen).

Am Ende müssen die eingegebenen Daten lediglich über Variablen angesprochen werden. Im Grunde also ganz einfach.

EIn per PoshWizard angelegtes Fenster

EIn per PoshWizard angelegtes Fenster

Die ganze DSL steht als Modul unter GitHub zur Verfügung:

https://github.com/pemo11/PoshWizard

Ich bin gespannt, ob jemand das Modul einsetzen wird und freue mich natürlich über ein FeedBack. Ob das Modul „produktionsreif“ ist, kann ich im Moment noch nicht beurteilen, da ich es noch nicht ausgiebig getestet habe (es fehlen außerdem noch Tests, die der Autor von PScribo konsequent für jede Function verwendet). Auch die Optik ist sicherlich noch verbesserungswürdig was die Platzierung der einzelnen Bedienelemente angeht. Außerdem fehlt noch die eine oder andere Funktionalität. Ein Beispiel ist ein Wenn-Befehl, durch den eine im letzten Schritt getroffene Auswahl für die Entscheidung verwendet wird welches Fenster als nächstes angezeigt wird. Insgesamt bin ich mit dem Ergebnis aber sehr zufrieden, vor allem angesichts des Umstandes, dass ich aktuell ledlgich ein paar Stunden in die Umsetzung investiert habe. Ich sehe es in erster Linie als ein Beispiel dafür welches Potential in der PoweShell in diesem Bereich steckt.

Die ersten Schritte mit PScribo

PScribo von Ian Brighton ist eine Art „PowerShell-Reporting-Tool“, auf welches das Attribut genial auch bei nüchterner Betrachtung zutrifft. Warum? Weil es, genau wie Pester, genau das macht was es machen soll und das mit einer verblüffenden Leichtigkeit. Aktuell steht es nur als Zip-Datei unter GitHub zur Verfügung. Dort hat der Autor aber bereits angekündigt, dass es demnächst auch über die PowerShell Gallery zur Verfügung stehen wird und damit per Install-Module PScribo hinzugefügt werden kann.

Hier ein kleines Beispiel, das ein paar Eckdaten eines AD in einem Report zusammenfasst.

Die Idee ist, dass mit Hilfe der Befehle einer Dokumente-DSL (eine Domänenenspezifische Sprache umfasst Befehle, die im Rahmen einer „Problemdomäne“ zur Lösung von Problemen verwendet werden – dahinter stecken bei der PowerShell in der Regel nur Functions) der Aufbau des Dokuments beschrieben wird. Per Section wird z. B. ein neuer Bereich eingeleitet, per PageBreak ein Seitenumbruch und per Paragraph ein neuer Absatz. Die eigentlichen Daten werden per Table ausgeben, auf Wunsch auch als Liste. Eine weitere Stärke von PScribo ist die Leichtigkeit, mit der sich Tabellen formatieren lassen. Zeilenweise und spaltenweise. Das unscheinbare TOC zu Beginn der Dokumentdefinition fügt ein Inhaltsverzeichnis ein, zu dem automatisch alle Sektionen zusammengefasst werden.

Der Aufruf sieht wie folgt aus:

Das Ergebnis sind jeweils eine Docx- und eine Html-Datei im aktuellen Verzeichnis. Das kleine Beispiel kann natürlich nur einen Teil der Möglichkeiten andeuten. Der Autor stellt im Examples-Unterverzeichnis des Modulverzeichnisses mehrere Dutzend Beispeiele zur Verfügung, die keine Fragen mehr offen lassen sollten. DSL haben Potential. Auf dem DevOps und PowerShell Summit 2016 zeigte PowerShell-Exprte Kirk Munro wie DSLs per PowerShell umgesetzt werden. Das Video sollte es in Kürze auf YouTube geben.

PowerShell-Skripte als Windows-Dienste ausführen mit Always Up von CoreTechnologies

Möchte man erreichen, dass ein PowerShell kontinuierlich ausführt und bereits mit dem Windows-Start startet, genügt es im einfachsten Fall, eine Verknüpfung auf Powershell.exe im Autostart-Ordner anzulegen, die Ps1-Datei über den File-Schalter festzulegen und in das Skript eine Endlosschleife einzubauen, die dafür sorgt, dass es nicht von alleine wieder seine Ausführung beendet. Oft ist diese Sparversion vollkommen ausreichend. Wer eine etwas robustere Variante bevorzugt, bei der sich auf Wunsch auch ein Systemkonto auswählen lässt, unter dem das Skript ausgeführt wird, macht aus dem PowerShell-Skript einen Systemdienst. Ob das Skript einen Port oder ein Verzeichnis überwacht und bei jeder Aktivität z.B. eine Meldung in das Ereignisprotokoll schreibt, spielt dabei keine Rolle.

Für die Umsetzung sind keinerlei Programmierkenntnisse erforderlich. Es gibt eine erstaunlich große Auswahl an Tools, die einem die Arbeit abnnehmen. Eines davon ist der PowerGUI Script Editor als Teil von PowerGUI, bei jedem jedes Skript wahlweise als Exe-Datei oder als Systemdienst gespeichert werden kann, der anschließend per New-Service-Cmdlet nur noch registriert werden muss.

Eine Alternative ist das (kommerzielle) Tool AlwaysUp von CoreTechnologies Consulting, einer kleinen Softwarefirma aus Oakland, einem „Vorort“ von San Francisco in den USA. Die Aufgabe des Tools ist es, die Ausführung einer beliebigen Anwendung als Dienst zu ermöglichen, der mit dem Erstellen auch registriert wird und anschließend startet. Das Tool kann aber auch einiges mehr. Unter anderem überwacht es die Ausführung des Dienstes und führt eine Aktion aus, wenn z.B. der Speicherbedarf einen zuvor festgelegten Wert überschreitet. Wer möchte, kann in diesem Fall auch ein (weiteres) Powershell-Skript starten. Sind Dialogfelder involviert, die ausgefüllt oder weggeklickt werden müssen, geht es mit AutoIt eventuell etwas einfacher. Wer ein PowerShell-Skript als Dienst ausführen möchte, führt (natürlich PowerShell.exe aus und legt den Pfad der Ps1-Datei über den File-Schalter fest. Damit das Ausführen von Profilskripten die Ausführung nicht verzögert, setze ich den NoProfile-Schalter voraus.

Insgesamt macht Always Up einen sehr guten Eindruck. Das Tool kostet knapp 50 US$ (Preisangabe ohne Gewähr). Auf der Webseite des Herstellers gibt es eine Version, die 30 Tage getestet werden kann:

http://www.coretechnologies.com/

Always Up führt jede Anwendung als Windows-Dienst auch, wenn es unbedingt sein muss, auch ein PowerShell-Skript

Always Up führt jede Anwendung als Windows-Dienst auch, wenn es unbedingt sein muss, auch ein PowerShell-Skript