Archiv der Kategorie: Allgemein

Die ersten Schritte mit Wireshark

Wireshark ist „das“ Tool für die Analyse von Netzwerkverbindungen, sprich von Paketen, die im Rahmen einer Netzwerkverbindung übertragen. Es gibt natürlich Alternativen, doch sind diese entweder nicht kostenlos oder nicht so komfortabel. Von Microsoft gab es vor vielen Jahren den Network Monitor, der offenbar mit der Version 3.4 eingestellt wurde. Er ist zwar noch als Download erhältlich, doch empfehle ich ihn nicht, denn Wireshark ist die deutlich flexiblere Alternative.

Ist man lediglich an HTTP/HTTPS-Paketen interessiert, wie sie z.B. bei PowerShell-Remoting anfallen, gibt es mit HttpDebuggerPro (nicht kostenlos) und Fiddler4, alternative Tools, die eventuell etwas einfacher zu bedienen sind.

Wireshark unterstützt sämtliche in Frage kommenden Protokolle, bietet eine komfortable Filtersyntax, ist bestens dokumentiert, es gibt eine große, weltweite Community (und sogar eine eigene Konferenz) und ist trotz unzähliger Einstellungen und angesichts einer Fülle von Details, die eine Paketanalyse zwangsläufig liefert, relativ einfach zu bedienen, u.a. dank einer durchdachten Benutzerführung. Es ist wirklich faszinierend, wie vielschichtig und detailreich die Internet-Protokolle sind. Vor allem angesichts der Tatsache, dass alles bereits in den 70er Jahren entstand und damit bereits über 40 Jahre alt ist.

Die Downloadresse von Wireshark ist: https://www.wireshark.org

Die Installation der Windows-Version ist schnell erledigt.

Für das allerste Kennenlernen empfehle ich den Datenverkehr zur eigenen Homepage zu analysieren. Hier kam man im Allgemeinen davon ausgehen, dass wirklich nur ein paar Seiten per HTTP abgerufen werden und keine Anfragen gegen Dutzende von Werbenetzwerken und Websites zur Datenauswertung gestartet werden, die alle im Detail in der Ausgabe erscheinen.

Tipp: Beim Betrachten einzelner Pakete fiel mir auf, dass nahezu überall der Begriff „Arcadyan_cc“ enthalten ist. Zunächst vermutete ich (natürlich;), dass mein Notebook jede Anfrage auch einen ominösen Rechner im Internet sendet und dieser sogar meinen Computer anpingt, um irgendwelche Schwachstellen zu finden. Eine kurze Internet-Recherche ergab, dass dahinter eine Firma aus Taiwan steckt, die u.a. Router und Modems herstellt. Eines dieser Produkte heißt bei uns Speedport und dürfte Telekom-Kunden bestens bekannt sein.

Das Einrichten eines Filters ist bei Wireshark sehr einfach. Gib in die Filterleiste z.B.

http.host contains „training“

ein, um nur Pakete von Http-Verbindungen zu sehen, die von einem Host stammen, in dessen Name „Training“ vorkommt. Ist der Filter in Ordnung wird er grün eingefärbt, ansonsten rot.

Es versteht sich von selber, dass man mit Wireshark Stunden verbringen kann und natürlich wissen muss, was einem da an Details präsentiert wird.

Noch ein Tipp zum Schluss, der Euch eventuell eine lästige Suche erspart. Werden auf einmal nur noch Pakete mit einem „UNKNOWN“-Protokoll angezeigt, habt ihr es irgendwie geschafft, alle Protokolle zu deaktivieren. Wer [Strg]+[Umschalt]+[E] wird die Protokollliste angezeigt und es können alle Protokolle wieder aktiviert werden.

Also, viel Spaß bei der Paketanalyse.

Immer wieder nett, Paketanalyse mit Wireshark

Die aktuellste PackageManagement Preview – März 2016

Dieser Eintrag ist eher eine „Note to myself“ – in Schulungen suche ich oft eine Weile nach dem aktuellsten Link für die PackageManagement-Preview für die PowerSHell 4.0, so dass PowerShellGet und Install-Module zur Verfügung stehen. Wie ea aussieht, datiert die aktuellste Version vom März letzten Jahres:

https://www.microsoft.com/en-us/download/details.aspx?id=51451

Auf der einen Seite ist es etwas seltsam, dass das PowerShell-Team eine so simple Angelegenheit wie das PackageManagement-Projekt nicht endlich offiziell freigeben kann. Der „wahre“ Grund könnte sein, dass man die Anwnender dazu bringen will stattdessen WMF 5.1 zu installieren, was auch unter Windows 7 und Windows Server 2008 R2 problemlos möglich ist.

Die ersten Schritte mit den AWS-Cmdlets (inkl. Problemlösung)

Amazon stellt für die Nutzung ihrer inzwischen sehr umfangreichen Amazon Webservices (AWS) ein sehr umfangreiches Modul (über 2.500 Cmdlets!) zur Verfügung. Die AWS Tools for Windows PowerShell stehen u.a. über die PowerShell Gallery zur Verfügung.

Eine ausführliche Übersicht gibt es unter der folgenden Adresse: https://aws.amazon.com/de/powershell/. Dort gibt es auch einen Button für den direkten Download einer Msi-Datei, über die das .NET SDK und die Cmdlets installiert werden.

Die Dokumentation ist, typisch für AWS, vorbildlich mit ein paar kleineren Abstrichen.

Das Modul muss direkt per Import-Module geladen werden.

Ein kleiner „Trick“ zählt die Anzahl der Cmdlets, in dem die Verbose-Ausgabe auf den Standardausgabekanal umgeleitet und damit in die Pipeline gelegt wird.

Die Authentifizierung erfolgt über einen Access Key und einen Secret Key, die man zuvor in der AWS-Konsole im Browser anlegen muss. Der Secret Key wird nur einmalig beim Anlegen eines neuen Key angezeigt und kann als Csv-Datei heruntergeladen werden.

Mit den beiden Zutaten wird per Set-AWSCredentials ein Profil angelegt.

Hier kam es bei mir zu einer Fehlermeldung, die besagte, dass der Pfad %userprofile%\.asws\credentials nicht gefunden werden konnte. Dieser Fehler muss wohl mit der Version der AWS-Tools (3.3.45.0) und anderen Faktoren zu tun haben. Der Fehler trat nicht mehr auf, nachdem ich im Benutzerprofil ein Verzeichnis mit dem Namen .aws angelegt hatte.

Interessant ist, dass die Keys aber nicht in diesem Verzeichnis, sondern als Json-Datei RegisteredAccounts.json unter %userprofile%\AppData\Local\AWSToolkit abgelegt werden.

Anschließend wurde das Profil per Get-AWSCredentials -ListStoredCredentials aufgelistet. Per Clear-AWSCredentials kann ein Profil wieder gelöscht werden.

Die weitere Vorgehensweise ist dann sehr einfach. Bei allen Cmdlets wie z.B. Get-S3Bucket erfolgt die Authentizierung über das Profil, das per ProfileName-Parameter angegeben wird.

Frohe Weihnachten…

Ich wünsche allen Lesern dieses Blogs frohe, sorgenfreie und gesegnete Weihachten und einen guten Start in das neue Jahr 2017.

Speziell was das Thema PowerShell angeht wird es wie fast in jedem Jahr auch 2017 abwechslungsreich bleiben. Mit SSH und einer „PowerShell 6.0“ auf allen Plattformen kommt ein neues Thema dazu, andere Themen wie Testen von Skripten, DSC-Ressourcen und allgemein Einstellungen mit dem Pester-Modul oder generell die Bedeutung einer „Release-Pipeline“ für Skripte und DSC-Ressourcen werden an Bedeutung zunehmen. Interessant wird es sein zu beobachten inwieweit Cloud-Angeboote wie Microsoft OMS (Operations Management Suite), mit der sich Windows Server überwachen lassen, auch in Deutschland angenommen werden.

Mein neues zur Buch zur PowerShell 5.0 wird auch hoffentlich im ersten Quartal erscheinen, so dass mir schon alleine aus diesem Grund die Arbeit nicht ausgehen wird.

Vielleicht sehen wir uns 2017 auf einer PowerShell-Schulung oder auf einem Treffen der PowerShell User Group, z.B. am 12.1.2017 in Stuttgart.

Ihr
Peter Monadjemi

Das Ende meiner Loseblatt-Sammlung, das Ende einer Ära und das fehlende Schlusswort der letzten Aktualisierung

Vor einigen Tagen kam die letzte Aktualisierung der Loseblattsammlung mit dem Titel „Automatisierte Administration mit Scriptsprachen unter Windows NT 4.0/2000, 2003 und 2008“, für die ich über 10 Jahre als Herausgeber beim WEKA Verlag (vormals Interest Verlag) in Augsburg zuständig war.

Loseblatt. Das weckt natürlich Erinnerungen an die späten 80er und frühen 90er Jahre und sicher nicht nur positive. Damals wurden die Loseblatt-Werke zu allen möglichen Themen rund um das Thema Computer in allen Magazinen mit großem Aufwand beworben. Die Angebote klangen auch verlockend – über 1.000 Seiten Praxis-Know how, zusammmengestellt von namhaften Experten, in zwei voluminösen A5-Ringbüchern für nur 59 DM (Preis fiktiv), jederzeit kündbar, Geldzurückgarantie usw. Der Preis war natürlich nur ein Lockangebot für ein Abonnement, das, sobald es zustande kam, nicht mehr ganz so einfach kündbar war. Die meisten Abonnenenten liessen ihr Abo vermutlich mehr aus Bequemlichkeit weiterlaufen und erhielten alle paar Wochen einen Schwung von Blättern im DIN A5-Format, die sie theoretisch selber in den großen Ringordner im A5-Format einsortieren sollten, den sie als Teil des Begrüßungspakets erhalten hatten. Damals, als Internet noch etwas war, das jemand im fernen Kalifornien erfunden hatte, war ein Loseblatt-Abo eine Gewähr dafür an jene Informationen zu kommen, die ansonsten nur mit sehr viel Aufwand erhältlich gewesen wären.

Spätestens vor 5 Jahren hätte das Loseblatt-Werk eigentlich „tot“ sein müssen, da es inzwischen auch jede Menge Angebote im Internet gab, die Informationen so aufbereiteten, dass sie aktuell, informativ und leicht konsumierbar waren. Mein Scripting-Handbuch hielt sich tapfer trotz stetig sinkender Abo-Zahlen – am Ende im unteren zweistelligen Bereich. Jetzt ist Schluss und ich denke, dass es insgesamt gut so ist, da ich es niemanden mehr zumuten möchte Informationen zur PowerShell oder Windows Server alleine aus dem Lesen von A5-Seiten zu beziehen.

Leider wurde in der letzten Aktualisierung vom Dezember diesen Jahres mein Schlusswort im Editorial nicht abgedruckt. Für den unwahrscheinlichen Fall, dass ein ehemaliger Abonnent diesen Blog-Eintrag lesen sollte, hier sind die Sätze, die ich gerne noch an die verbliebenen Leser gerichtet hätte:


Mit dieser Aktualisierung wird das Loseblattwerk Scripting eingestellt. Die erste Aktualisierung erschien im Jahr 2000. Damals waren Themen wie Hyper-V, System Center, Azure und auch PowerShell noch visionäre Themen. Heute, 16 Jahre später, sind sie Alltag für alle, die sich in ihrem beruflichen Umfeld mit Microsoft-Produkten im Server-Umfeld beschäftigen müssen. Konstant geblieben ist über die Jahre die Notwendigkeit sich weiterbilden zu müssen und dabei Spaß am Beschäftigen mit neuen Themen zu haben. Wer sich diese Fähigkeiten erhält, ist für alles was in Zukunft noch kommen mag gut vorbereitet. Und natürlich: Vielen Dank, dass Sie dem Werk so lange die Treue gehalten haben.

eBook zum Thema PowerShell und Azure

Unter GitHub gibt es seit kurzem ein eBook, das den Einsatz der PowerShell im Zusammenspiel mit Azure sehr schön beschreibt:

https://github.com/gitralf/ersteschritte/blob/master/Azure_PowerShell_Erste_Schritte.pdf

Der Autor ist Ralf Wiegand, der bei Microsoft Deutschland für das Thema „Deutsche Cloud“ zuständig ist. Seinen Blog findet ihr unter https://blogs.technet.microsoft.com/ralfwi/.

10 Jahre PowerShell – mein persönliches Fazit

10 Jahre PowerShell bedeuten für mich einen Rückblick auf einen wichtigen Teil der letzten 10 Jahre meiner beruflichen Tätigkeiten. Wie für viele Menschen in der Branche hat auch die PowerShell mir neue Möglichkeiten eröffnet. Auch wenn der Ausblick anlässlich der 10th Anniversary-Party zur Zukunft der PowerShell leider etwas unspezifisch waren (etwa zur künftigen Rolle von SSH), gehe ich davon aus, dass in den nächsten 10 Jahren noch viel passieren wird.

Da 10 Jahre PowerShell auch für mich persönlich ein Grund zur Freude und zum Feiern ist, hat mir meine Frau eine kleine „Pauerschell-Torte“ gebacken. Vielen Dank!

10 Jahre PowerShell sind auch für mich ein Grund für eine kleine Feier

10 Jahre PowerShell sind auch für mich ein Grund für eine kleine Feier

10 Jahre PowerShell – Zwischenbilanz und ein Blick in die Zukunft

Am 14. November 2016 wurde die PowerShell 1.0 offiziell als Download freigegeen – damals noch etwas unfertig mit gerade 139 Cmdlets, ohne (direkte) AD-Unterstützung, ohne Module, ohne PS-Remoting, aber mit einer vollständigen Hilfe. Es hat ein paar Jahre gedauert bis sie von den Administratoren angenommen wurde, heute hat sich sie als ein Allround-Werkzeug etabliert, das in einigen Bereichen (Exchange Server) sogar alternativlos ist. In den Jahren ist die Funktionbalität stark angewachsen – alleine von Microsoft dürften die verschiedenenen Produktteams einige Tausend Cmdlets und Functions entwickelt haben (es ist zudem erstaunlich, wie viele PowerShell-Skripte bereits bei Windows 7 dabei waren und unbemerkt von den meisten Anwendern in den tiefen vom System32-Verzeichnis ihr Schattendasein fristeten).

Natürlich ist Quantität nicht autommatisch gleich Qualität, aber bei der PowerShell stimmt das Verhältnis. Das bei den von Microosft produzierten Cmdlets nur sehr wenig „Füllmaterial“ dabei ist macht der Umstand deutlich, dass Cmdlets für das Ein- und Auspacken von Zip-Dateien erst mit der Version 5.0 dazu kamen.

Mit der PowerShell hat sich der geistige Vater Jeffrey Snover, der bei Microsoft inzwischen nicht nur zum „Distinguished Engineer“ ernannt wurde, sondern seit ein paar Jahren auch die Windows Server-Gruppe leitet, ein Denkmal geschaffen.

Ich erinnere mich noch ganz gut als ich mich sehr früh morgens zu eimem Vortrag aufmachte, der anläßlich des Microsoft IT Forums im November 2006 in Barcelona stattfand, nur um aus erster Hand etwas über die neue PowerShell zu erfahren. Anstelle eines typiscchen jung-dynamischen Microsoft-Sprechers stand da ein etwas älterer Typ mit einer Krawatte (!) in einem Raum, der eher an einem Hörsaal erinnerte, hinter einem Tisch und redete mit eher monotoner Stimme. Die kleine Enttäuschung legte sich jedoch schnell wieder. Seit Jahren sind seine Vorträge, etwa der Klassiker „PowerShell Unplugged“, für mich ein Highlight auf jeder Microsoft-Konferenz, ob TechEd (z.B. jene, die 2009 in Berlin stattand, die PowerShell 2.0 war gerade erschienen, so dass der Vortrag voller Neuerungen war, auf die man lange gewartet hatte), Build oder jetzt Ignite. Alle diese Vorträge gibt es kurz danach auf Channel 9, so dass man längst nicht mehr irgendwo hin reisen oder gar früh aufstehen muss.

Wer sich auf kleine Reise in die Vergangenheit begeben möchte, findet auf Channel 9 sogar noch ein Interview mit Jeffrey Snover aus dem Jahr 2006:

https://channel9.msdn.com/showpost.aspx?postid=256994

Heute am 14. November begeht das PowerShell-Team das Jubiläum mit einer ganztägigen Konferenz, die auf Channel 9 live übertragen wird, und die einige ausgefallene Vortragsthemen umfasst:

https://channel9.msdn.com/Events/PowerShell-Team/PowerShell-10-Year-Anniversary

Neben Mitgliedern des Entwicklerteams werden auch paar PowerShell-Promis wie Ex-Scripting Guy Ed Wilson, Don Jones und Chrissy Le Mare (u.a. bekannt für die SQL Server Dba Tools) mit dabei sein.

Dazu noch ein Buchtipp mit Nostalgie-Faktor: Das Buch „Introducing the MSH Command Shell and Language“ von Andy Oakley war das allererste Buch zur PowerShell. Es ist auch über 12 Jahre später immer noch lesenswert, u.a. beschreibt der Autor wie man es schafft eine Konsolenausgabe in verschiedenen Farben auszugeben. Das Buch gibt es bei Amazon bereits ab 1 Cent – für echte PowerShell-Fans eigentlich ein „Must have“.

Es ist bemerkenswert, dass der 14.11 auch der 300te Todestag des deutschen Philosophen Gottfried Wilhelm Leibniz ist. Was hat ein Philosoph mit der PowerShell zu tun? Als Codenamen für die spätere PowerShell wählte Jeffrey Snover das Wort „Monad“ als Referenz auf die Theorie der Monaden des großen deutschen Denkers. Demnach ist ein Monad das kleinste Element, aus dem alles Leben und alle Materie besteht. Von Leibniz wird auch überliefert, dass er über sich selbst sagte: „Beim Erwachen hatte ich schon so viele Einfälle, dass der Tag nicht ausreichte, um sie niederzuschreiben.“ Wäre da nicht das selbst auferlegte „To ship is to choose“-Mantra des PowerShell-Teams, würde das im übertragenen Sinne auch auf Jeffrey Snover und seine Entwickler zutreffen.

PowerShell im Zusammenspiel mit WinForms und WPF – ein umfangreicher Artikel verrät viele Details

Ein PowerShell-Skript mit einer auf WinForms oder WPF basierenden Oberfläche auszustatten ist grundsätzlich nicht schwer und eher eine Fleißarbeit als eine technische Herausforderung sobald man den „Bogen“ raus hat. Wer mehr machen möchte als einen Button und eine TextBox anzuzeigen findet sich aber schnell in den Tiefen des Internets wieder und durchstreift stundenlang einschlägige Fornen.

Per Zufall bin ich auf einen überaus umfangreichen Artikel von einem gewissen Sergueik auf CodePlex gestoßen, in dem der Autor nahezu alle Möglichkeiten beschreibt, die per WinForms und WPF zur Verfügung stehen (ein paar wichtige Themen wie Datenbindung und vor allem wie man es schafft, reaktionsfreudige Oberflächen zu erstellen fehlen soweit ich es beurteilen kann). Der gannze Artikel ähnelt eher einem Buch. Es gibt zudem unzählige Beispiele, die einzeln auf GitHub zur Verfügung stehen. Teilweise wird es etwas zu speziell, da auch viel C#-Code im Spiel ist, und am Ende geht der Autor ausführlich auf das Testen von Web-Anwendungen mit dem Selenium Framework per PowerShell ein, aber insgesamt es ein beeindrucker Überblick, in dem sehr viel Arbeit steckt:

http://www.codeproject.com/Articles/799161/Dealing-with-Powershell-Inputs-via-Basic-Windows-F

PowerShell unter Ubuntu – die ersten Schritte

Seit dem 18. August 2016 heißt die Windows PowerShell ganz einfach nur noch „PowerShell“ und steht als Open Source-Projekt nicht nur für Windows, sondern auch für verschiedene Linux-Distributionen und Mac OS X zur Verfügung (allerdings nicht für iOS, so dass die PowerShell z.B. nicht auf einem iPad installiert werden kann – jedenfalls solange nicht wie sich jemand die Mühe macht .NET Core für iOS zu portieren).

Dabei kommt es wie üblich auf die Feinheiten an. Open Source und damit portabel ist nicht die aktuelle PowerShell 5.0 wie wir sie kennen, die mit der kommenden Version 5.1 offiziell „Desktop Edition heißen wird, sondern eine frühe Alpha-Version einer kommenden Version 6.0. Das bedeutet konkret, dass viele wichtige Funktionen, etwa Cmdlets für WMI- und AD-Abfragen, aktuell noch nicht zur Verfügung stehen. Sie werden kommen, aber das kann noch eine Zeit dauern. Mit anderen Worten, allzu viel anfangen kann man mit der am 18.8 freigegebenen Version im Moment noch nicht.

Dennoch ist alleine der Umstand, dass die PowerShell endlich auch unter Linux läuft faszinierend genug, um es einfach einmal ausprobieren.

Die folgenden Schritte beziehen sich auf Ubuntu 16.04 Desktop:

Schritt 1: Herunterladen der Deb-Datei

Die Downloadadresse für die 0.9 Alpha für Ubuntu 16.04 ist:

https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

Schritt 2: Installieren
Was macht man mit einer Deb-Datei unter Linux? Zumindestens unter Ubuntu funktioniert der Doppelklick. Das Paket wird damit installiert, was in diesem Fall lediglich bedeutet, dass sein Inhalt in ein eigenes Verzeichnis kopiert und im Verzeichnis usr\bin eine Art Verknüpfung auf die Powershell-Programmdatei angelegt wird.

Die Suche nach dem Begriff "PowershelL" war erfolgreich

Die Suche nach dem Begriff „PowershelL“ war erfolgreich

Schritt 3: PowerShell starten
Wie startet man eine Anwendung unter Ubuntu, wenn man nur Windows kennt? Gute Frage. Ich habe mir so beholfen, dass ich zuerst das Terminal-Programm gestartet habe, dahinter steckt die Bash-Shell, dann auf vertraute Weise per cd in das Verzeichnis \usr\bin navigierte und dann die PowerShell durch Eingabe von „.\powershell“ startete. Die PowerShell startet nicht in einem eigenen Fenster, sondern läuft im aktuellen Terminalfenster.

Unter Ubuntu belegen die meisten Prozesse nur ein paar KB statt über 100MB

Unter Ubuntu belegen die meisten Prozesse nur ein paar KB statt über 100MB

Interessant ist, dass mein „Lieblingsbefehl“ Get-Process | Where WS -gt 50MB keine Ausgabe zur Folge hatte. Wie sich herausstellte, gibt es bei Ubuntu kaum einen Prozess, der mehr als 100KB (!) belegt.

PowerShell unter Ubuntu

PowerShell unter Ubuntu

Wie erwartet funktioniert einiges nicht, z.B. WMI-Abfragen über Get-CIMInstance.

Das Ganze war eher eine Art Schnelldurchlauf. Eine schönere Anleitung gibt es von Sebastian Klenk, technischer Evangelist bei Microsoft – er beschreibt in einem Blog-Eintrag wie sich die PowerShell in einer Ubuntu-VM unter Azure installieren lässt, in dem er sich von seinem Windows 10-PC unter dem neuen Ubuntu Subsystem per SSH mit dem Azure Ubuntu verbindet und über diese Verbindung die PowerShell installiert:

https://blogs.technet.microsoft.com/sebastianklenk/2016/08/19/how-to-powershell-on-linux/

Coole Sache! (aber nicht vergessen: Auch eine Ubuntu-VM kostet bei Azure Geld – Open Source hin oder her;)