PowerShell ISE VS. Visual Studio Code (mit PS Erweiterung) in Kürze

Seitdem ich mit PowerShell arbeite nutze ich die hauseigene Entwicklungsumgebung ISE von Microsoft um meine Skripte zu schreiben. Schnell suchte ich nach Alternativen und dann sind Editoren wie NotePad++ und PowerGUI gekommen, Jeder mit seinen Vor- und Nachteilen. In meinem Alltag nutze ich mittlerweile drei Editoren, je nach Aufgabengebiet und Lust. Die PowerShell Indegrated Scripting Enviroment (ISE), das immer populärer werdende Visual Studio Code und das mächtige PowerShell Studio.

PowerShell Studio nutze ich für umfangreiche Projekte und werde ich in diesem Vergleich nicht weiter betrachten.

Handling

Im Handling nehmen sich die beiden Editoren nicht viel, beide sind recht schlicht aufgebaut und viele Steuerelemente können durch Shortcuts angesprochen werden. Was mir in der ISE jedoch besser gefällt ist der Zugriff auf die Snippets über die Tastenkombination STRG+J. In VSCode ist das leider nicht möglich. In beiden kann man eigene Codevorlagen erstellen und schnell einbinden. Auch das Befehls-AddOn ist etwas was mir in der ISE ganz gut gefällt. Ich nutze es jedoch recht selten und daher ist es meist ausgeblendet. Die IntelliSense finde ich bei beiden Editoren gut und schnell. Der Vorteil bei VSCode ist, dass die Parametersets auch mit dargestellt werden.

Personalisieren

Personalisieren lassen sich beide Editoren recht einfach. Es stellt sich jedoch die Frage, wie sehr man das Aussehen ändern möchte. In der ISE kann man in dem Tool-Menü Schriftart und Farben nach belieben anpassen. In Code gibt es vorgefertigte Farbpaletten, die den ganzen Editor anpassen. Es ist aber auch möglich seine eigenes Farbschema zu erstellen. Hier bietet man einem größeren gestalterischen Spielraum. VSCode bietet nicht nur durch seinen Open Source Charakter eine Menge Erweiterungspotential, was die unzähligen Extension zeigen.

Arbeiten in Projekten

Projekte bestehen meist aus verschiedenen Dateitypen und nicht selten gibt es Ordnerstrukturen mit Konfigurations – und Inhalts – Daten. Auch spielt die Sourcecode Verwaltung mit GIT eine entscheidende Rolle. Meiner Meinung nach hat hier VSCode die Nase vorn. Auch ohne Installation von Erweiterungen werden Code Syntax Highlighting für viele Formate und Markdown Interpretationen unterstützt. Essentielle Eigenschaften beim Arbeiten in Projekten. In der Explorer Ansicht lässt sich leicht eine Ordnerstruktur durchsuchen und in der Suche schnell Dateien finden. Die ISE bringt eine solche Eigenschaft nicht mit. In dieser lassen sich zwar auch verschiedene Dateiformate öffnen und bearbeiten, die Darstellung und Formatierung der einzelnen Typen ist  aber nicht so gegeben wie in VSCode. Die schon angesprochene Source Code Verwaltung mit GIT ist mit beiden Editoren möglich. GIT muss dafür auf dem System installiert sein und in der ISE wird noch das Modul posh-git benötigt. Ich habe mich mit diesem noch nicht weiter beschäftigt, aber einen interessanten Blog gibt es hier. Aber auch die GIT-Verwaltung gefällt mir in VSCode besser.

Mein persönliches Fazit

Aus dem Beitrag hat man es schon etwas herausgehört, ich arbeite immer mehr mit Visual Studio Code. Mich überzeugen die zahlreichen Erweiterungen und Anpassungsmöglichkeiten. Es zeigt sich an einigen Stellen, dass es kein reiner PowerShell Editor ist. Wenn man sich einige Erweiterungen zugelegt hat, kann man damit sehr gut arbeiten. Vielleicht stellt sich für mich auch mal die Frage, ob ich weiterhin das mächtige Powershell Studio brauche oder nicht. Am Ende ist der Editor für jeden PowerShell Admin sein persönlicher Werkzeugkoffer. Es kommt dann darauf an wie man damit arbeitet und nicht wie teuer und groß dieser ist. Microsoft wird sicherlich keine weitere Energie in die ISE stecken und ihren Multiplattformeditor Visual Studio Code und die PowerShell Erweiterung weiter ausbauen.

Was für Editoren nutzt ihr und was könnt ihr empfehlen, schreibt es mir am besten in die Kommentare.

Veröffentlicht unter DevOps, Nice To Know, PowerShell | Verschlagwortet mit , , , , , , | Hinterlasse einen Kommentar

Der OutVariable Parameter

Einer der Default Properties bei Advanced Functions ist OutVariable, ich habe diesen mal etwas genauer untersucht.

Wie schon gesagt, der Parameter ist nur in Advanced Functions vorhanden:

simple_function

Durch CmdLetBinding steht nun der Parameter zu Verfügung. In der Syntax wird das durch [<

CommonParameters>] angezeigt, was das komplette Set der Advanced Parameter darstellt.

Soweit so gut, eine einfache Ausgabe sollte dann in die neue Variable ‚OutVar’ geschrieben werden.

Die einfache Host Ausgabe kann jedoch nicht in die angegebene Variable gespeichert werden. Dafür muss als Rückgabewert ein Objekt vorliegen.

Cool ist, dass die Variable ganz einfach erweitert werden kann:

 

Die Infos werden auch nochmal in der CommonParameters Hilfe beschrieben:

Get-Help about_commonParameters

Als Fazit kann man sagen, wieso extra ein Parameter definieren, wenn OutVariable auch zum Ergebnis führt.

Veröffentlicht unter Grundlage, Nice To Know, PowerShell, Scripting | Verschlagwortet mit , , | Hinterlasse einen Kommentar

PSConfEU – Tag Vier „AutomatedLab, PowerBI, Module und Authentifizierung“

Was macht man so am letzten Tag der PSConfEu, schaut es euch an:

Sessions

Hybrid Lab Automation

@raimundandree @NyanHP

Schaut euch dieses Tool unbedingt an! Die beiden Kollegen haben AutomatedLab etwas genauer vorgestellt und viele damit begeistert. AutomatedLab erstellt verschiedene Testumgebungen wie für AD, PKI, IIS und weitere. Mit ein paar einfachen Kommandos werden die gewünschten Umgebungen erstellt.
Auch wurde auch die Administration eines solchen Labs gezeigt. Was ist mit Remote Zugriff, oder wenn keine Internetverbindung besteht. Diese Fragen und mehr werden natürlich beantwortet.
Wie Raimund sagte, Testumgebungen stehen mit diesem Tool meist nicht mehr als 3 Tage. Da ein Neuaufbau meist schneller ist.

Go with the Flow

@sqldbawithbeard @jaap_brasser

Mit Flow und PowerBi hatte ich leider noch keine Erfahrungen gemacht. In dieser Session wurde von den Sprechern der Mechanismus hinter http://powershell.cool vorgestellt. Es ist cool als Einsteiger zu sehen wie die Tools interagieren und mit welchen einfachen Mitteln so eine Lösung kam. Die beiden Speaker sind sehr cool und es macht Spaß ihnen zuzuhören.

PowerBi

The hitchhiker’s guide to user-friendly module design

@FredWeinmann

Nach dem Mittag zeigte Fred in seinen 60 Minuten worauf beim Modul Design geachtet werden muss. Meine Empfehlung, beachtet unbedingt die allgemeinen Bestimmungen und seine Tips. Diese Stichwörter solltet ihr euch vor dem ersten Modul und seiner Session mal anschauen:

  • Dokumentation
    • Markdown
    • Command Based Help
  • Design
    • DefaultCommandPfx
    • Dynamische Parameter
    • Pipeling, Commands sollen zusammenarbeiten
  • Vermeiden
    • Ändern von Benutzerpräferenzen
      • Prompt
      • Consolen Eigenschaften
      • Farb Eigenschaften
    • Benutzerentscheidungen unterdrücken
      • Eigenschaften deaktivieren
      • Farben vorgeben

A matter of trust: Authentication and authorization in the PowerShell

@thorstenbutz

Vielleicht lag es an der wärme oder daran, dass mein Kopf voll war. Leider konnte ich der Session von Thorsten nicht ganz folgen. Gezeigt wurden unter anderem die Möglichkeiten, die allein das aktivieren von Enable-PSRemoting mit sich bringt. Ich muss mir diese Stunde aber nochmal in Ruhe anschauen und nachbetrachten, deswegen kann ich leider nicht sehr viel dazu sagen.

Lunch Breakout – Meetup und UserGroups

In der Mittagspause hat die deutsche PS Usergroup die Idee gehabt eine Sammlung der PSUGs in Deutschland und in Europa zu erstellen. Alle hatten die Möglichkeit ihre UG zu präsentieren und so neue Mitstreiter zu finden. Schaut euch die Links an und findet eine PowerShell Usergroup in euerer Nähe. Sollte es noch keine geben, gründet doch einfach eine.

  • PowerShell-UG
  • MeetUpGroup

Zusammenfassung

Coole Themen und ein toller letzter Tag. Ich habe nochmal ein paar neue Sachen endeckt, die ich vielleicht nicht so schnell einsetzten werde, aber über den Tellerrand sollte man immer schauen. Bis dahin, denn Nach der PSConfEU ist vor der PSConfEU und diese ist nächstes Jahr etwas später vom 04.06 – 07.06.2018.

Kleiner Raum, viele Leute, die Wichtigsten Infos

impoertent

Veröffentlicht unter Allgemein, PowerShell, PSConfEU2018 | Verschlagwortet mit , , , , , , | Hinterlasse einen Kommentar

PSConfEU – Tag Drei „SharePoint , Security und BurnOut“

Tag drei und weiterhin Motiviert, durch die vielen Ideen und Anregungen. Mein PSConf – Tag drei zusammengefasst:

PowerShell for SharePoint Online – How DevOps is making SharePoint Admins feel loved again

@slkrck

Das erste Mal ist es Rick Taylor passiert, dass er zu spät kam. Eine gefährliche Kombination aus Zeitzone, Wecker und Tabletten welche ihm der Dok verschrieben hat. Seiner Session ging es primär nicht um SharePoint Online. Er erörterte vielmehr seine Meinung von DevOps die er mithilfe von SharePoint gefestigt hat. Seine typisch amerikanische Präsentation macht die Sache zwar interessant aber bringt wenig von Thema. In Summe wenig vom Thema SharePoint Online, aber mehr wieso Jeffrey Snower mit seiner Meinung über DevOps falsch liegt.

The PowerShell Security Best Practice Live Demo!

@david_das_neves, @JReisdorffer, @raimundandree, @miriamxyra

Über zwei Stunden lang stellten die vier Kollegen die Security von PowerShell und Windows 10 dar. Dabei wurden viele Interessante Themen angesprochen. Aufgrund der Fülle gibt es hier wieder einige Stichpunkte und Links für euch.

  • PowerShell Empire
  • Skript Signing
  • LAPS (Local Admin password solution)
  • PowerShell Repository

AppLocker

Code Signing Certificate AppLocker -> Language Mode

Windows Defender Application Control

Windows 10 Security Baseline

  • GPO Policy Analyser

DSC

  • DSCEA (Enviroment Analyzer)

Windows Event Forwarding (WEF)

Sysmon

Diese Session ist für jeden, der einen Überblick der Sicherheit von Windows 10 und PowerShell braucht, mit vielen Dingen. Müssen Kollegen oder Vorgesetzte noch überzeigt werden, dann schaut euch diese Session an.

PowerShell Formatting

@stgson

Wie auch letztes Jahr eine Tolle Session von Steffan Gustafsson. In seinen 60 Minuten zeigt er was alles mit Format-Custom, Format-Table und Format-List möglich ist. Nur dabei bleibt es nicht es geht tiefer in die Themen von Regex, Outputtypes und Advanced Formating. Wieder einige Links für euch zum Nachlesen, denn man muss dies selbst testen um es zu verstehen:

Default Display Property Set

FormatEnumerationlimit

Outputtype Function

Get-FormatingData

Format-custom

PS-Readline

Und auch hier ist wieder XMl das Stichwort schaut euch das unbedingt an, JSON und XML sind unumgänglich in PowerShell.

Parameter Classes: Making parameter-binding user friendly

@FredWeinmann

Programmierung ist nicht meins und auch wenn ich das Grundverständnis von PowerShell Klassen habe, konnte ich nicht allem in seiner Session folgen. Es ist ein interessantes Thema aber auch hier muss man in der Nachbetrachtung die ganze Sache mal selbst ausprobieren. In Seinen Beispielen hat er dynamische Parameter durch eigene Klassen von DateTime und SQL Connections gezeigt. Wie schon gesagt eine sehr interessante Sache, nur ich glaube (leider) nicht für mich.

Howto: Not get a burnout

@JeffWouters

Tzja einer meiner Lieblings Speaker, welchen ich auch schon vor geraumer Zeit persönlich kennenlernen durfte. Die einzige Session der ganzen Konferenz bei der es nicht um PowerShell geht. Warum, Wieso, Problem, Lösung von Burnout, schaut es euch unbedingt an! Bitte nutzt aber auch das was er in seiner Session sagt!

Reverse DSC – Making SharePoint Admins feel loved again

@slkrck

Wie auch schon am Vormittag hat Rick auf seine typische Art und weise die Session präsentiert. Leider gibt es nicht soviel zu sagen, denn die interessanten Dinge kamen erst die letzten Zehn Minuten. Aufgrund eines Problems mit seinem Azure Account konnte er nur Videos zeigen. Nicht schlimm, die Ergebnisse von Reverce DSC hat man gesehen aber nicht so schnell verstanden. Nach nun fast 9 Stunden PowerShell war man auch nicht mehr so aufnahmefähig. Auf GitHub wird er all seine Präsentationen und Videos für uns Bereitstellen. Nicht nur für SharePoint, sondern auch für Exchange und weitere Anwendung ist Reverse DSc interessant.

Get-Targetresource

How Reverse DSC Works

GitHub Reverse DSC Resource

Zusammenfassung

Ein Tag der mir viele neue Sachen gebracht hat, aber auch einige bei denen ich lieber eine andere Session besucht hätte. Nach drei Tagen wird es sicherlich auch schwere Dinge aufzunehmen. In folgenden Blogs werde ich versuchen auf einige dieser Themen weiter einzugehen. Morgen ist nun der letzte Tag und ich freue mich.

PSConfEU – Tag Zwei „Errors, Pester, Azure und etwas Chef“

Veröffentlicht unter Allgemein, PSConfEU2018, Scripting | Verschlagwortet mit , , , , , , , , , | 1 Kommentar

PSConfEU – Tag Zwei „Errors, Pester, Azure und etwas Chef“

Tag zwei und erster vollständiger Konferenztag, die Sessions für den diesigen Tag habe ich mir ausgesucht und trotz des langen Abends war die Session sehr gut besucht.

Case of the Unexplained – PowerShell Edition

@poshboth

Ein interessanter Start in den Tag mit Fehlern die PowerShell so mit sich bringt und die typischen Lösungen. In der Session wurden viele Erfahrungsbeispiele gezeigt. Die einfachste Zusammenfassung der Session: eine Liste mit den Problemen und eventuellen Ursachen.

Problem Type Konvertierung

  • Lieber JSON
  • Oder xml

Problem Pester Tests in Module Scope

  • $ExecutionContext.SessionState anpassen

Problem Array + Element Hinzufügen

  • Clone benutzen
  • Es wird nicht ein neues Objekt erstellt, sondern eine Referenz auf das schon vorhandene.

Probelm PowerShell Drives

  • Convert-Path
  • Parameter FullName nutzen.

Problem spezielle Variablen

  • Nicht versuchen spezielle Variablen (wie $Switch) zu bearbeiten

Problem Slow Progress

  • Progress Preferences – Silently Continue
  • Nicht jeden Schritt in Progress

Problem (Non)Terminating Errors

  • Try-Catch
  • ThrowTerminatingError

Problem Schedueled Tasks

  • Sein Wrapper, den ich leider nicht gefunden habe.

Problem Auto generated Code

Strings beachten

Tool DebubugPX

  • Pipeline Breakpoint
  • PSSummit Video

Zusammenfassung

  • Scopes
  • Types
  • Drives
  • PSHostProcess
  • Referenzen
  • .Net
  • Spezielle Variablen
  • Weniger ist manchmal mehr (Progress)

Game of Automation Thrones

@alexandair

Eine gute Übersicht der Tools zum Managen und Erstellen von einzelnen VM’s und Infrastrukturen, die ich euch nicht vorenthalten möchte:

VMs Configuration

  • Ansible
  • Chef
  • Puppet
  • Clout init

Infrastucture

  • ARM
    • Azure RM Tools
  • Azure Building Blocks
  • Terraform
  • Packer
  • Azure Automation
  • Azure Building Blocks

Manage

  • Windows Subsystem for Linux
  • Azure Cloud Shell
  • VSCode
    • AzCLI extention
  • Docker Containers
  • Azure CLI 2.0
    • Azure PowerShell, wohl auch die beste Möglichkeit zur Untersuchung von vorhanden Konfigurationen.

Beispiel

Mit dem Befehl New-AzureRMVM Ist es sehr simple eine VM für die Testumgebung zu erstellen. Am besten gleich ausprobieren!Es würde den Rahmen sprengen auf die einzelnen Tools einzugehen. Mein Fokus wird mehr Auf VSCode, AzureCLI, ARM, Azure PowerShell und Azure Automation liegen. Das Thema Cloud wird von Jedem System und jeder Platform immer wichtiger und es gibt immer mehr dieser Plattformübergreifenden Tools. Hier darf man auch als (noch)nicht Cloud Nutzer nicht stehen bleiben.

Desired State: A close look at the PowerShell and DSC integrations with Chef

@StuartPreston

Ich muss sagen, den Besuch dieser Session bereue ich etwas. Nicht wegen dem Inhalt oder dem Specher, ich habe mir einfach was anderes darunter vorgestellt. Vielleicht habe ich mich auch zu wenig mich Chef im Vorfeld beschäftigt. Ansonsten ist Chef ein interessantes Werkzeug um seine Umgebung bereitzustellen. Leider fehlt mir etwas das Verständnis, wo der Unterschied zu DSC ist. Diese Klärung habe ich wohl auch von der Session erwartet. Zwei Folien will ich euch nicht vorenthalten. So könnt ihr entscheiden, ob ihr das Video anschauen wollt oder nicht.

01 chef 02 chef

Chef Doku

Infrastructure validation using Pester

@irwinstrachan

Kurz gesagt, ein sympathischer Mann, mit einem guten Vortrag über Pester. In seinen 60 Minuten hat er Active Directory Pester Tests Vorgestellt. Dabei wurden folgende Szenarien abgebildet:

Interessant für jeden, der etwas mehr in Pester einsteigen möchte, denn ohne Grundwissen ist es schwer zu folgen, sondern staunt nur über grüne und (etwas) rote Schrift.

In der Vorbereitung auf diese Session ist es sinnvoll sich folgende Themen nochmal etwas genauer zu betrachten. Eventuell bringe ich hierzu nochmal einzelne Blogs

Operational Validation Framework (OVF)

Active Directory ReportUnit Pester results

How To Create a Simple Pester Test Report in PowerShell

PowerShell Yin-Yang: The Worst Practices and Tips & Tricks

@bielawb

In der letzten Session merkt man die über 8 Stunden PowerShell dann schon. Leider war der Vortrag auch recht zügig, was das Nachverfolgen etwas erschwerte. Viele Beispiele der Optimierung von Skripten wurden gezeigt. So waren die Themen

  • Loops
  • Where / Foreache Methode
  • PipelineVariable
  • spezifische PowerShell Variablen
  • RegEx und XML
  • True – False -Positive
  • Splatting

Wer die Session nacharbeitet, muss jedenfalls viel Zeit zum Testen und nachgestalten einplanen. Es lohnt sich aber.

Folgend noch ein paar interessante Links, die euch bei der Durcharbeitung unterstützten:

learn to Use Where or ForEach in PowerShell 4.0

PowerShell – Special Characters And Tokens

RegEx match open tags except XHTML self-contained tags

Zusammenfassung

Ich habe wieder einige Leute Kennengelernt und freue mich auf den morgigen Tag. Inhaltlich gibt es viele Dinge näher zu untersuchen und auszuprobieren. Ich hoffe, das wird sich in den nächsten zwei Tagen nicht ändern.  Gefreut habe ich mich über das Shirt und die Jacke. Leider gab es keinen Ersatz für meine Grüne Tasse.

 

Tag Eins „Keynotes erste Sessions und der ZOO“             

PSConfEU – Tag Drei „SharePoint , Security und BrunOut“

Veröffentlicht unter Allgemein, Azure, Cloud, Nice To Know, PowerShell, PSConfEU2018, Scripting | Verschlagwortet mit , , , , , | 1 Kommentar

PSConfEU – Tag Eins „Keynotes erste Sessions und der ZOO“

Die Keynotes

Junge Hip Hop Tänzer eröffneten die PowerShell Konferenz 2018. Im Folgenden leitete uns Tobias Weltner durch die Opening Zeremonie. Deren Inhalt bestand weitestgehend aus generellen Infos, verspricht aber auch eine interessante Konferenz. Denn 320 Teilnehmer aus 31 Ländern versprechen eine tolle Truppe mit vielen Ideen und Kontaktmöglichkeiten.

dancerdelegated_map all_speaker

Wie auch letztes Jahr hielt auch dieses Jahr Jeffrey Snower die Keynote. Er erzählte nicht viel Neues, aber eine wichtige Aussage ist:

Transformation geht nur durch Automation und wenn der Arbeitsgeber das nicht versteht, sollte man sich einen neuen suchen.

Jeffreys Keynote beinhaltete zwei große Themen, Azure Stack und PowerShell Core.

  • Azure Stack soll weiterhin für eigene Rechenzentren interessanter werden. Dabei wird die Installation, Bereitstellung, Updates und der Support durch Microsoft übernommen. Hier stellt Windows PowerShell die Grundlage und mit einem 250K Zeilen Skript wird dies umgesetzt.
  • Schon im letzten Jahr sind viele Aufgeschrien, als es hieß PowerShell is Done. Auch dieses Jahr wurde dies wieder bekräftigt. Dabei ist von Windows PowerShell die rede und nicht von PowerShell Core. Einem Programm, was zu über 50% auf Community – Arbeit beruht. Das Ziel dahinter ist es in einer immer mehr heterogen werdenden Welt ein Plattformübergreifendes Tool zu schaffen. In der Session von Joey Aiello wird in PSCore etwas genauer eingegangen.

core_about

Die Sessions

Managing your heterogeneous environments with PowerShell Core 6.0 and Win32-OpenSSH

@joeyaiello

Joey Aiello Programm Manager im PowerShell Team stellte in seiner Session PowerShell Core etwas genauer vor und zeigte wie sich PowerShell Module in PowerShell Core Module umwandeln lassen. Core 6.0 wird wie Jeffrey in der Keynote schon sagte, Windows PowerShell ablösen und wohl auch den Namen. Nur das der Name dann nicht mehr Windows enthalten wird. Denn

  • PSCore wird auf allen Systemen verfügbar sein
  • PSCore wird SSH zu Verfügung stellen
  • PSCore wird zu über 50% von der Community entwickelt
  • PSCore ist open Source
  • Etc

Er zeigte wie es möglich ist, aus dem OpenSSH PowerShell Module ein PSCore Module zu erstellen und dies dann auf allen anderen Platformen zu Verfügung steht. Ich bin kein Developer und muss daher selbst erst einiges nachlesen und ausprobieren, aber es scheint für jeden machbar zu sein Core Module zu entwickeln.

The DSC Pull Server is dead, long live the DSC Pull Server

@bgelens

Der Pull Server wird weiterhin in Server 2019 zu Verfügung stehen, aber Microsoft legt mehr wert auf Azure Automation DSC. Ben zeigte in seiner Session die Bereitstellung eines Pull Server mit Hoch Verfügbaren SQL Cluster. Als zweites zeigte er die Möglichkeit Pull Server mithilfe von Docker Container zu Verfügung zu stellen. Vorteil ist eine frei skalierbare Pull Server Infrastruktur. Pull Server On Prem wird daher weiterhin für viele Leute interessant sein.

Pull_Docker_ pull_summary

Securing your infrastructure with JEA
@miriamxyra

JEA und JIT sind keine Unbekannten in der PowerShell Welt. Miriam zeigt Probleme, die eine Aktive Directory Umgebung mit sich bringt und bringt Lösungsansätze mit JEA.

  • Jr. Admins, Suppot, Service Accounts, Help Desk und co, haben weiterhin zuviel Administrative Berechtigungen.
  • JEA ist nicht als erste Lösung in der Absicherung von Active Directory zu betrachten, aber es ist ein wichtiger Schritt. Sie zeigt wie JEA Konfigurationen aufgebaut sind und angewandt werden.

Interessant ist, dass in Zukunft auch JEA eine grafische Oberfläche bekommt, mit Project Honolulu und dem Admin Center werden die ersten Schritte dahin gemacht.

Invoke-CypherDog – Bloodhound Dog Whispering with PowerShell

@SadProcessor

Auf Github findet man das Reposetory für Bloodhound. Es ist ein Tool um administrative Berechtigungen in einer Active Derectory Umgebung grafisch darzustellen. Viel Beruht auf JS und Cypher. Mit PowerShell erhält man jedoch die Möglichkeit dieses Tool mit spezifischen Abfragen auszuschöpfen und kann besser Zusammenhänge anzeigen lassen. Ein tolles Tool für jeden, der nicht genau weis, wer in seiner AD Struktur (zu)viel zu sagen hat.

Info

bloodhound

Die Abendveranstaltung

2016 die Eisbär Show, 2017 die Falken Show und dieses Jahr hat sich das Hannover Zoo-Team noch einmal den Eisbären freigelassen. Die Abendveranstaltung als Ausklang und Come Together des ersten Konferenztages war ein voller Erfolg. Die ohnehin schon lockere Atmosphäre der PSConf, wurde durch das tolle Ambiente des Hannover – Zoo nur noch verstärkt. Leicht ist man in Gespräche gekommen und konnte nicht nur Fachliche-, sondern auch Menschliche- Kontakte knüpfen. Nach zu viel Eis – Refill ging es dann mit der Vermutung, dass nicht alle am nächsten Tag zu den ersten Sessions erscheinen (können), zurück in das Hotel.

icebeare

icecream

Zusammenfassung

Was mir der erste Tag gezeigt hat war

  • Viele tolle Leute
  • Internationale Speaker / Community
  • Sicherheit!
  • RDP abschalten
  • Windows PoweShell ist Done à PowerShell Core!!!
  • Die Community entwickelt immer weiter
  • Wenn dein Vorgesetzter Automatisierung nicht versteht, solltest du dir einen neuen Arbeitgeber suchen.

Ich freue mich auf die nächsten drei Tage !

Tag Zwei „Errors, Pester, Azure und etwas Chef“

Veröffentlicht unter Allgemein | 3 Kommentare

Der Parameter ArgumentList

Invoke-Command oder New-PSSession, die Frage stelle ich mir recht häufig, wenn CmdLets den ComputerName Parameter nicht beinhalten. In Skripten ist es sicherlich eine Mischung zwischen New-PssSession und Invoke-Command. Wie sieht das aber im täglichen Gebrauch aus? Verbindet ihr euch immer mit dem Remote Host, oder nutzt ihr Invoke-Command mit dem Session Parameter und wofür steht eigentlich der ArgumentList Parameter.

Egal ob einfache oder komplexe Skripte, kleine oder große Umgebungen, Parameter sind immer vorhanden. Bei der Remote Ausführung von Skripten mit dem CmdLet Invoke-Command, besteht die Möglichkeit dem Skript Parameter zu übergeben. Diese Funktion ist bei Tasks oder bei der Abarbeitung von CSV Tabellen sehr hilfreich.

Im Prinzip wird mit dem ArgumentList Parameter ein Array an den Scriptblock übergeben. Dabei bildet die Variable $args das Array wider. Über den Index des Arrays von $args kann jedes Element angesprochen werden. So würde ein einfaches Beispiel aussehen:

Wer das Prinzip einmal verstanden hat, wird kein Problem mit etwas komplexeren Konstruktionen haben.

Anstatt einer Schleife kann auch eine CSV-Tabelle abgearbeitet werden oder verschiedene Hosts.

Veröffentlicht unter Allgemein, Grundlage, Nice To Know, PowerShell | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

PowerShell Community Conference 2018

Nachtrag

die Agenda hat sich etwas geändert und auch meine persönliche Agenda hat sich dadurch geändert. Nun lasst euch überraschen, was die nächsten vier Tage auf meinem Blog passiert.
Agenda

 

Hallo Leute, meine Blogs sind in den letzten Monaten etwas weniger geworden, aber ich habe mir fest vorgenommen wöchentlich einen Blog zu veröffentlichen. Ich hoffe ihr unterstützt mich durch Euer Feedback, nun zum Thema.

Etwas weniger als eine Woche ist es jetzt noch und auch dieses Jahr wurde es mir wieder ermöglicht die PowerShell Community Conferenz (PSConfEU) in Hannover zu besuchen. Wie in den letzten Jahren ist auch dieses Jahr die Teilnehmerzahl begrenzt und auch die Konferenzgebüren sind etwas gestiegen. Aufgrund der Location, des Programmes und der geballten PowerShell Prominenz lässt sich das wohl auch nicht vermeiden. Die Agenda bietet wieder eine breite Masse an Themen an und bei einigen parallel laufenden Sessions muss ich mich noch entscheiden. Wie auch letztes Jahr wird es täglich einen kleinen Überblick meiner besuchten Sessions geben. Unten stehend seht ihr meinen groben Sessionplan, einige Zeiten sind doppelt belegt und hier brauche ich eure Unterstützung. Mich würde es freuen, wenn Ihr mir eure Wünsche mitteilt, welche Sessions für euch interessant sind und über welche ich etwas genauer berichten soll.

Tag 1

01_agenda_day_1Tag 2

02_agenda_day_2

Tag 3

03_agenda_day_3Tag4

04_agenda_day_4

Veröffentlicht unter Allgemein, Scripting | Verschlagwortet mit , , , , , , , , , | 2 Kommentare

Subexpression

Wer mit Eigenschaften (Properies) von Objekten in PowerShell weiterarbeiten möchte, speichert diese meist in einer extra Variable. Dabei bietet die PowerShell mit den Subexpressions eine doch einfachere Lösung. Hier kann durch das voranstellen eines $-Zeichens direkt auf das die Eigenschaft zugregriffen werden, ohne diese erst zwischenspeichern zu müssen. AM Beispiel eines Datei -Objektes lässt sich das gut verdeutlichen.

Script-SubexpressionWie das Skript zeigt, wird durch das einklammern und das voranstellen eines $-Zeichens die Variable mit ihrer Eigenschaft korrekt aufgelöst.

Veröffentlicht unter Allgemein, PowerShell, Scripting | Verschlagwortet mit , , , , , , , | Hinterlasse einen Kommentar

Alternative Foreach-Object Loop Variable

Bei der Nutzung von Foreach-Object in PowerShell stellt PowerShell die  Automatisch generierten Variable $_  zum Weiterarbeiten bereit. Was einige gar nicht wissen ist, dass es seit Version 3 auch $psitem genutzt werden kann. Dies vereinfacht sicherlich das lesen eines Scriptes und beseitigt einiges an Verwirrung. Vorteil von $_ ist natürlich, dass es die Größe eines Scriptes verringert.

Als Beispiel eine einfache Get-ChildItem Abfrage:

Script

In VSCode sind die Beiden Variablen an verschiedenen Stellen im Debugger zu finden:

$_ : unter den Auto – generierten Variablen

$psitem : unter den Local Variablen

Veröffentlicht unter Allgemein, Grundlage, Nice To Know, PowerShell | Verschlagwortet mit , , , | Hinterlasse einen Kommentar