Sie sind hier
E-Book

PowerShell 5

Windows-Automation für Einsteiger und Profis

AutorTobias Weltner
VerlagO'Reilly Verlag
Erscheinungsjahr2016
Seitenanzahl1158 Seiten
ISBN9783960100331
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis49,90 EUR
In diesem Standardwerk zu PowerShell finden Einsteiger und Profis fundiertes Hintergrundwissen kombiniert mit praxisnahen und sofort einsetzbaren Codebeispielen. Der klare Aufbau und das umfassende Themenspektrum des Buchs vermitteln, wie die vielfältigen Funktionen der PowerShell zusammenhängen und aufeinander aufbauen. Einsteiger finden sofort Zugang zur PowerShell. Autodidaktisch erworbene Vorkenntnisse werden komplettiert und vertieft. Profis entdecken unzählige wertvolle Hinweise, Praxistipps und 'Best Practices' für professionelles und sicheres Skripten. Aus dem Inhalt: ? Schnelleinstieg: PowerShell-Grundlagen und rasche Erfolge mit interaktiven Kommandos ? PowerShell-Skripte, Sicherheitseinstellungen und digitale Signaturen ? Durchdachter Einsatz der objektorientierten Pipeline ? Textoperationen, Parsing und Reguläre Ausdrücke ? Mit Objekten und Typen direkt auf das .NET Framework zugreifen ? Wiederkehrende Aufgaben als eigene Befehle in Modulen verfügbar machen ? Mit PowerShellGet Module und Skripte zentral verwalten ? Prozessübergreifendes Debugging, Fehlerbehandlung und Logging ? Abgesicherte Fernzugriffe und Sicherheitsstrategien (JEA) ? Hintergrundjobs, Multithreading und Performancesteigerung ? Workflows und Desired State Configuration (DSC) ? Benutzeroberflächen mit WPF gestalten ? Professionelles Test-Driven Development (TDD) mit Pester

Dr. Tobias Weltner ist Autor von über 120 IT-Büchern und arbeitet als Trainer und Consultant mit dem Schwerpunkt PowerShell und Automation in ganz Europa. Er ist Entwickler der Entwicklungsumgebung 'ISESteroids' und Initiator der jährlichen Deutschen PowerShell Konferenz. Tobias Weltner erhielt 11 MVP-Auszeichnungen der Firma Microsoft (Most Valuable Professionals) und zählt zu den erfahrensten PowerShell-Experten weltweit.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Einführung


Wer braucht eigentlich PowerShell?


Die Wandlung des Berufsbilds des IT-Professionals ist in vollem Gange. War ein Administrator vor 15 Jahren noch ein Einzelkämpfer, der in mühseliger Kleinarbeit Fileserver oder Mailboxen verwaltete, ist die IT heute durchautomatisiert, verzahnt und spielt sich nicht selten vollständig virtualisiert ohne physische Racks und ohne »Blech« ab. Der Beruf des Administrators wird anspruchsvoller, aber auch sehr viel spannender.

In solch einer IT, die agil sein soll und aktuellen Sicherheits- und Zertifizierungslevels entsprechen muss, dauert es viel zu lange – und ist noch dazu viel zu fehlerträchtig –, komplexere Konfigurationsarbeiten per Mausklick zu erledigen. Spätestens wenn solche Aufgaben wiederholt anfallen, kann PowerShell sie komplett übernehmen und dabei die durchgeführten Arbeiten auch noch protokollieren.

Daher ist es die Aufgabe des modernen Administrators, notwendige Arbeiten mit PowerShell zu definieren, sodass sie künftig jederzeit und so oft wie nötig durchgeführt werden können. Administratoren definieren, »was« geschehen soll, ohne diese Dinge selbst von Hand durchzuführen. Administratoren entwickeln also mithilfe von PowerShell technische Handlungsanweisungen und trennen das »Was« vom »Wann«.

Ist das »Was« einmal definiert, kostet das »Wann« keinen weiteren Aufwand, und eine Skriptlösung kann künftig regelmäßig und Tausende Male ausgeführt werden, während der Administrator sich anderen konzeptionellen Aufgaben zuwendet. Ist das »Was« einmal definiert, stehen qualifizierte Handlungsanweisungen immer sofort zur Verfügung – auch in einem Notoder Krisenfall.

Selbst wenn Sie darauf bestehen würden, Aufgaben lieber weiterhin wie vor 20 Jahren von Hand zu erledigen, ist das häufig gar nicht mehr möglich. Sicherheitsrichtlinien untersagen vielfach individuelle manuelle Anpassungen, und Coreserver oder Nanoserver haben überhaupt keine Benutzeroberfläche mehr, auf die man klicken könnte.

Handwerkszeug für Windows-Admins

PowerShell-Analphabetismus konnte man als Windows-Administrator in den ersten Jahren noch gut kaschieren, doch inzwischen lässt sich dieses Defizit kaum noch verbergen. Zu allgegenwärtig ist PowerShell im Betriebssystem und in vielen Softwareprodukten, und wer es nicht beherrscht, kann häufig schlicht einen Teil seines Jobs nicht mehr erledigen.

Umgekehrt wird ein angenehmerer Schuh daraus: Wer sich bislang erfolgreich vor PowerShell »gedrückt« hat, kann sich mit einigen Wochen des Lernens (natürlich verbunden mit den üblichen Frustrationen, die zu jedem Erlernen dazugehören) das gesamte Funktionsspektrum der aktuellsten PowerShell-Version 5.0 zu eigen machen. Dieses Buch entstand dort, wo PowerShell in Unternehmen eingesetzt wird. Es führt Sie zielgerichtet und schnell in die verschiedenen PowerShell-Techniken und -Taktiken ein und verbindet diese Einheiten mit praxisrelevanten Beispielen, die den Nutzen und die Vorteile jeweils deutlich machen und vielleicht sogar dazu führen, dass Ihnen PowerShell richtig Spaß macht.

Und Sie werden schnell erkennen, dass PowerShell weitaus mehr ist als nur eine neue Skriptsprache.

Moderne Lernkurve

Wer vor der PowerShell-Konsole sitzt, sieht vor allem Befehle – die Cmdlets. Sie funktionieren etwa so wie Befehle in anderen Konsolen (Shells). Allerdings unterstützt PowerShell so viele davon und ist auf so gleichartige Weise erweiterbar, dass man mit ganz geringen (und vor allen Dingen vollkommen einheitlichen und konsistenten) Grundkenntnissen fast alles damit administrieren kann. Weil alle Cmdlets auf denselben Grundregeln basieren, kann man das Wissen auch leicht auf andere Aufgabenbereiche und Cmdlets anwenden.

Die ersten Schritte mit Cmdlets sind einfach und benötigen kaum PowerShell-Kenntnisse. Auch der Umgang mit der PowerShell-Pipeline ist zunächst recht einfach. Dann aber steht man vor einer Steilwand, die autodidaktisch oft nur schwer zu meistern ist. Hier werden viele wichtige Grundlagen gelegt. Man beschäftigt sich mit Operatoren, Objekten und der wahren Natur von PowerShell. Diese Steilwand meistern Sie mit diesem Buch.

Sobald die Grundlagen einmal gelegt sind, flacht die Lernkurve stark ab, und alles wird gut: Ob Sie mit Microsoft Exchange ein Postfach anlegen, mit SharePoint eine Site veröffentlichen oder einfach nur Protokolldateien parsen oder Server verwalten wollen – Ihr PowerShell-Wissen befähigt Sie dazu, über den Tellerrand zu blicken und Ihre PowerShell-Erfahrung auch in ganz anderen IT-Bereichen einzusetzen. Entscheidend ist nun nur noch Ihr Fachwissen im jeweiligen Bereich.

Abbildung E.1: Die PowerShell-Lernkurve ist nicht linear, sondern baut auf gemeinsamen Standards auf.

Sie müssen zwar schon selbst wissen, »warum« Sie ein Exchange-Postfach anlegen oder eine SharePoint-Site umbenennen wollen – »wie« das geschieht, ist aber dank der gemeinsamen PowerShell-Standards nun keine Frage mehr. Get-ADUser, Get-Mailbox, Get-SPSite und Get-VM beschaffen Ihnen mit denselben PowerShell-Grundkenntnissen Active-Directory-Benutzerkonten, Exchange-Server-Mailboxen, SharePoint-Sites oder VMware virtuelle Maschinen. Kennen Sie erst einmal ein Cmdlet, dann kennen Sie alle.

Computer – ich/ich – Computer: PowerShell als Fremdsprache

Entfernt man sich ein wenig von PowerShell und betrachtet die Technik mit mehr Abstand, verschwimmen die einzelnen Befehle zu etwas Neuem: einer Sprache. Tatsächlich benimmt sich PowerShell in vielen Aspekten genau wie eine Fremdsprache, wie Spanisch oder Italienisch etwa, nur dass Sie sich diesmal nicht mit dem Eisverkäufer unterhalten, sondern mit Ihrem Computer. Auch der Lernprozess, den Sie mit diesem Buch vor sich haben, verläuft ganz ähnlich.

Zuerst steht Vokabelpauken auf dem Plan, und schon nach wenigen Minuten werden Sie mit den ersten Vokabeln bereits einfache Aufgaben lösen können. Tatsächlich werden einige Administratoren nie wirklich mehr als nur diese Stufe erklimmen müssen, weil es für sie vielleicht unökonomisch ist. Viele Urlauber kommen sehr gut mit ein paar Brocken Landessprache aus, um Wein, Käse und Baguette zu bestellen sowie nach Preis und Uhrzeit zu fragen. Nicht anders ist das in der IT. Hier zählt erst einmal nur das, was essenziell ist, um eine Aufgabe zu lösen. Dieser erste Lernschritt bildet den Teil »Interaktive Befehlskonsole« dieses Buchs (Kapitel 27). Hier lernen Sie den Umstieg von der klassischen cmd.exe-Befehlskonsole zur PowerShell. Dass PowerShell indes nicht eine klassische Textkonsole ist, sondern in Wirklichkeit eine hochmoderne objektorientierte Shell, entdecken Sie im Teil »Objektorientierte Shell« (Kapitel 811).

PowerShell als Ersatz für VBScript und Batch

Nachdem Sie die Sprache beherrschen, wird bei Ihnen mit einiger Wahrscheinlichkeit der Wunsch aufkommen, PowerShell nicht nur interaktiv zu verwenden, sondern auch als vollwertige Programmier- und Skriptsprache, um damit einfache und auch komplexe Automationsaufgaben zu lösen. Dies erwartet Sie im Teil »Automationssprache« (Kapitel 1221): Hier geht es zum einen darum, wiederkehrende Aufgaben mit PowerShell-Lösungen ein für alle Mal zu lösen.

Zum anderen geht es aber vor allem darum, wie Sie in PowerShell selbst automatisieren, also dafür sorgen, dass Sie nicht ständig ein Rad neu erfinden müssen. Sie erfahren, wie sich Ihre Automationslösungen in neue eigene PowerShell-Befehle kapseln lassen und wie Sie diese neuen Befehle für sich selbst und Ihre Kollegen bereitstellen können. Mit jeder neuen Lösung, die Sie entwickeln, wächst so Ihr Lösungsspektrum.

Grenzenloses PowerShell – über Computergrenzen hinweg

PowerShell wird zwar auf lokalen Computern ausgeführt, ist aber eine vernetzte Technik, die über Computergrenzen hinweg funktioniert. Webservices ermöglichen es verschiedenen Power-Shells auf unterschiedlichen Computern, miteinander zu kommunizieren, und so lassen sich Automationslösungen schaffen, die Teil übergreifender Lösungen sind und die gesamte Unternehmensinfrastruktur adressieren können.

Im Teil »Remoting und Parallelverarbeitung« (Kapitel 2225) lernen Sie die Remotefähigkeiten der PowerShell kennen und auch verwandte Techniken, die langwierige Aufgaben auf mehrere Computer, Jobs oder auch Threads aufteilen und parallel verarbeiten können.

Neben der »räumlichen« Unabhängigkeit enthält PowerShell auch Wege, um die Sicherheitskontexte und Identitäten zu wechseln, in denen Befehle ausgeführt werden. Auch diese Technik beruht im Kern auf dem Remoting und bildet die Grundlage für JEA (Just Enough Admin), mit der eine rollenbasierte Administration möglich wird, zum Beispiel für Self-Servicing-Portale.

Strategische Plattform und...

Blick ins Buch
Inhaltsverzeichnis
PowerShell 5.01
Impressum4
Inhalt5
Einführung23
Wer braucht eigentlich PowerShell?23
Handwerkszeug für Windows-Admins24
Moderne Lernkurve24
Computer – ich/ich – Computer: PowerShell als Fremdsprache25
PowerShell als Ersatz für VBScript und Batch26
Grenzenloses PowerShell – über Computergrenzen hinweg26
Strategische Plattform und Orchestrierung26
Anwendungsentwicklung27
Persönliche Entwicklung27
Wie Sie dieses Buch nutzen28
Noch mehr Unterstützung28
Kapitel 1 - PowerShell kennenlernen29
Die PowerShell-Konsole einrichten32
PowerShell-Konsole starten33
PowerShell-Version kontrollieren34
Symbol an Taskleiste heften35
Bessere Schrift für die Konsole35
Neue Konsolenfunktionen bei Windows 10 aktivieren38
Sprungliste: Administratorrechte und ISE39
32-Bit- und 64-Bit-Versionen40
PowerShell ISE einsetzen40
Erste Schritte mit PowerShell44
Wichtige Vorsichtsmaßnahmen44
Befehle eingeben44
Ergebnisse empfangen45
Informationen speichern oder umleiten46
IntelliSense-Unterstützung im ISE-Editor49
Autovervollständigung in der PowerShell-Konsole49
Farbcodierungen verstehen51
Rechnen mit PowerShell52
Umwandlungen54
Zahlenreihen55
Unvollständige und mehrzeilige Eingaben55
Skriptausführung erlauben56
Tippfehler vermeiden und Eingaben erleichtern57
Autovervollständigung57
Pfadnamen vervollständigen58
Befehlszeilen erneut verwenden59
Befehlsnamen autovervollständigen59
Parameter-Autovervollständigung59
Argument-Autovervollständigung60
PowerShell-Hilfe aus dem Internet nachladen60
Hilfe ohne Internetzugang installieren62
Hilfe bei PowerShell 362
Klassische Konsole oder moderner ISE-Editor?63
Einschränkungen des ISE-Editors64
Einschränkungen der klassischen Konsole65
PowerShell-2.0-Testumgebung66
Testen Sie Ihr Wissen!66
Teil A - Interaktive Befehlskonsole69
Kapitel 2 - Cmdlets – die PowerShell-Befehle71
Alles, was Sie über Cmdlets wissen müssen73
Cmdlets für eine Aufgabe finden74
Suche nach Tätigkeit oder Tätigkeitsbereich74
Parameter erkunden76
Hilfestellung zu Cmdlets abrufen77
Cmdlet eingeben und Befehl ausführen78
Mit ISE nach Cmdlets suchen81
Dialoggestützte Parametereingabe84
Mit der Hilfe nach Cmdlets suchen86
Unbekannte Befehle suchen87
Mit Parametern Wünsche formulieren89
Parameter wecken das volle Potenzial der Cmdlets89
Nur das Datum oder nur die Zeit ausgeben90
Den Wochentag eines bestimmten Datums errechnen91
Die aktuelle Kalenderwoche anzeigen92
Das Datum vor 48 Stunden berechnen95
Drei universelle Parametertypen96
Benannte Parameter96
Switch-Parameter97
Positionale Parameter98
Common Parameter – allgemeine Parameter für alle Cmdlets101
Fehlermeldungen unterdrücken102
Unvollständige Parameternamen103
Parameter mit Aliasnamen abkürzen104
Konflikte bei Parameternamen105
Parameter-Binding sichtbar machen106
Neue Cmdlets aus Modulen nachladen107
Neue Module automatisch nachladen109
Auslaufmodell: Snap-Ins112
Alias: Zweitname für Cmdlets112
Aliase sind keine neuen Befehle113
Befehlstypen ermitteln113
Klassische cmd.exe-Interpreterbefehle sind Cmdlets114
Eigene Aliase anlegen115
Testaufgaben116
Kapitel 3 - PowerShell-Laufwerke123
Dateisystemaufgaben meistern125
Ordner anlegen127
Dateien anlegen und Informationen speichern128
Dateien finden130
Nach Dateinamen oder Dateitypen suchen130
-Filter und -Include: Unterschiede verstehen131
Mehrere Top-Level-Ordner durchsuchen132
Alternative zur Rekursion132
Nach Dateiinhalten suchen133
Dateien und Ordner kopieren135
Einzelne Datei kopieren135
Mehrere Dateien kopieren136
Ordner kopieren137
Dateien umbenennen138
Einzelne Datei138
Ganze Ordnerinhalte umbenennen138
Dateien und Ordner löschen140
Größe eines Laufwerks ermitteln141
Größe eines Ordners ermitteln142
Umgebungsvariablen143
Alle Umgebungsvariablen auflisten144
Auf einzelne Umgebungsvariablen zugreifen145
Umgebungsvariablen ändern145
Windows-Registrierungsdatenbank145
Schlüssel suchen146
Werte lesen148
Neue Registry-Schlüssel anlegen150
Werte hinzufügen, ändern und löschen151
Virtuelle Laufwerke und Provider152
Neue PowerShell-Laufwerke154
Mit Pfadnamen arbeiten156
Unterstützte Platzhalterzeichen in Pfadnamen157
-Path oder -LiteralPath?157
Existenz eines Pfads prüfen159
Pfadnamen auflösen160
Testaufgaben160
Kapitel 4 - Anwendungen und Konsolenbefehle163
Programme starten165
Optionen für den Programmstart festlegen167
Warten, bis ein Programm wieder beendet ist167
Programme unter anderem Benutzernamen ausführen168
Nicht unterstützte Konsolenbefehle im ISE-Editor169
Argumente an Anwendungen übergeben171
Hilfe für Konsolenbefehle anzeigen171
Beispiel: Lizenzstatus von Windows überprüfen172
Argumentübergabe kann scheitern174
Texteingaben an Konsolenbefehle senden175
Ergebnisse von Anwendungen weiterverarbeiten176
Error Level auswerten177
Fragen an Benutzer stellen mit choice.exe178
Rückgabetext auswerten180
Rückgabetexte in Objekte verwandeln182
Rückgabetext analysieren185
Laufende Programme steuern187
Feststellen, ob ein Prozess läuft187
Auf einen Prozess warten187
Einstellungen laufender Prozesse ändern188
Prozesse vorzeitig abbrechen190
Testaufgaben190
Kapitel 5 - Skripte einsetzen195
PowerShell-Skripte verfassen196
Skriptcode eingeben196
Eingabehilfen spüren Tippfehler auf197
Skript ausführen198
Sicherheitseinstellungen und Ausführungsrichtlinien198
Profilskripte – die Autostartskripte199
Vier verschiedene Profilskripte – pro Host199
Profilskript anlegen und öffnen200
Typische Profilskriptaufgaben durchführen200
Skripte außerhalb von PowerShell starten201
PowerShell-Startoptionen202
Befehlsfolgen extern ausführen205
PowerShell-Code als geplante Aufgabe ausführen205
Mit schtasks.exe klassische Aufgaben einrichten205
Mit dem Modul PSScheduledJob Aufgaben anlegen207
Nicht-PowerShell-Skripte öffnen207
Stapeldateien (Batchdateien)207
VBScript-Dateien ausführen209
Skripte digital signieren210
Digitales Zertifikat beschaffen211
Kommerzielles Zertifikat nutzen212
Selbst signiertes Zertifikat mit Windows 8/Server 2012 oder besser212
Selbst signierte Zertifikate mit älteren Betriebssystemen anlegen213
Zertifikat aus PFX-Datei laden213
Zertifikat aus Zertifikatspeicher laden214
Skript digital signieren217
Einzelnes Skript signieren218
Massenhaft Skripte signieren219
Digitale Signaturen überprüfen220
Signaturen mit einem Zeitstempel versehen221
Kapitel 6 - Die PowerShell-Pipeline223
Aufbau der PowerShell-Pipeline224
Prinzipieller Aufbau der Pipeline225
Die sechs wichtigsten Pipeline-Befehle227
Select-Object227
Selbst festlegen, welche Informationen wichtig sind228
Platzhalterzeichen verwenden229
Weitere Informationen anfügen232
-First, -Last und -Skip233
Unsichtbare Eigenschaften sichtbar machen234
Sonderfall -ExpandProperty236
Mit der Punktschreibweise auf Einzelinformationen zugreifen239
Einschränkungen der Punktschreibweise240
Wie ETS Objekte in Text verwandelt241
Spaltenbreiten und Bündigkeit241
Verschwundene Spalten242
Where-Object243
Where-Object: stets nur zweite Wahl243
Clientseitiger Universalfilter244
Leere Elemente aussortieren245
Fortgeschrittene Syntax bietet noch mehr Möglichkeiten246
Dateiinhalte filtern248
IP-Adressen bestimmen248
Alternativen zu Where-Object249
Sort-Object250
Cmdlet-Ergebnisse sortieren250
Nach mehreren Spalten sortieren251
Sortierung mit anderen Cmdlets kombinieren252
ForEach-Object253
Grundprinzip: eine Schleife253
Fortschrittsanzeige einblenden255
Group-Object258
Häufigkeiten feststellen258
Gruppen bilden260
Measure-Object261
Statistische Berechnungen263
Ordnergrößen berechnen263
Mit »berechneten« Eigenschaften arbeiten264
Datentyp der Sortierung ändern264
Gruppierung nach bestimmten Textteilen265
Umwandlung von Byte in Megabyte265
Hashtables: mehrere Werte übergeben266
Mehrere Spalten in umgekehrter Sortierung267
Mehrspaltige Anzeigen267
Berechnete Spalten hinzufügen268
Spaltenbreite, Bündigkeit und Gruppenüberschriften268
Frei wählbare Gruppierungskriterien270
Schlüsselzahlen in Klartext wandeln271
Pipeline und Performance: Optimierungen273
Flaschenhals Pipeline273
Klassische Schleifen sind wesentlich schneller274
Die Pipeline ist wesentlich reaktionsfreudiger274
Weniger Speicherbedarf oder mehr Geschwindigkeit?275
Testaufgaben275
Kapitel 7 - Ergebnisse ausgeben und formatieren283
Ergebnisse als Text darstellen284
Ergebnisse in Textdateien schreiben285
Textformatierung ändern285
Automatische Textformatierung verstehen287
Mehrspaltige Anzeige288
Gruppierte Tabellen erzeugen289
Out-Host: ausdrückliche Ausgabe in die Konsole290
Out-Null: Ergebnisse verschlucken290
Out-File: Konsolenausgaben in Textdateien umlenken291
Out-Printer: Ergebnisse zu Papier bringen291
Out-String: Textdarstellungen erzwingen292
Textbasierte Pipeline und »Grep«293
Out-WinWord: Ergebnisse direkt an Microsoft Word senden296
Out-PDF: mit Microsoft Word PDF-Reports erstellen297
Ergebnisse als Objekte exportieren299
Export-CSV: Export an Microsoft Excel und andere Programme299
Ergebnisse serialisieren mit XML und JSON300
HTML-Reports erstellen303
Objekteigenschaften in HTML-Spalten umwandeln303
HTML im Webbrowser anzeigen303
HTML-Reports ansprechend und farbig gestalten304
Testaufgaben306
Teil B - Objektorientierte Shell311
Kapitel 8 - Mit Objekten arbeiten313
Eigenschaften und Methoden316
Eigenschaften316
Eigenschaften lesen317
Eigenschaften ändern318
Methoden319
Eigenschaften und Methoden anzeigen322
Hilfe für Objekteigenschaften und -methoden finden323
Ergebnisse eines Befehls untersuchen325
Unterschiedliche Objekttypen328
Nach Objekttypen filtern328
Änderbare Eigenschaften finden329
Primitive Datentypen sind auch Objekte331
Eigenschaften lesen332
Eigenschaften von vielen Objekten gleichzeitig abrufen333
Pipeline entpackt Arrays automatisch333
»Automatic Unrolling«: Punktschreibweise bei Arrays336
Eigenschaften ändern338
Änderungen wirksam werden lassen338
Die Größe der PowerShell-Konsole ändern339
Eigenschaften von WMI-Objekten ändern341
Active Directory-Objekte ändern343
Methoden aufrufen345
Eine Methode mit mehreren Signaturen347
Trim kann mehr als Leerzeichen entfernen347
In der Konsole auf einen Tastendruck warten348
Testaufgaben349
Kapitel 9 - Operatoren und Bedingungen355
Operatoren – Aufbau und Namensgebung356
Wie Operatornamen aufgebaut sind357
Unäre Operatoren357
Zuweisungsoperatoren358
Mehreren Variablen unterschiedliche Werte zuweisen359
Variableninhalte ändern359
Vergleichsoperatoren360
Unterscheidung zwischen Groß- und Kleinschreibung361
Unterschiedliche Datentypen vergleichen362
Der Datentyp des ersten Werts zählt362
Automatisches Widening363
Vergleiche umkehren364
Vergleiche kombinieren365
Vergleiche auf Arrays anwenden365
Bedingungen367
if-Bedingung367
Switch-Bedingung369
Where-Object371
Kapitel 10 - Textoperationen und reguläre Ausdrücke373
Texte zusammenfügen374
Variableninhalte mit doppelten Anführungszeichen integrieren375
Arrays375
Objekte und Eigenschaften376
Abgrenzung von Variablen377
Der Formatierungsoperator »-f«377
Bündige Spalten herstellen378
Zahlen formatieren379
Datums- und Zeitangaben formatieren380
Textstellen finden und extrahieren383
Texte splitten384
Informationen in Texten finden386
Positionen bestimmen und Text extrahieren386
Reguläre Ausdrücke389
Reguläre Ausdrücke: Textmustererkennung389
Erste Schritte: Mit Textmustern arbeiten390
Muster definieren390
Viele Treffer pro Datei finden391
Muster erweitern392
Einzelinformationen mit runden Klammern abgrenzen392
Ergebnisse in echte Objekte verwandeln392
Bestandteile eines regulären Ausdrucks393
Anker393
Platzhalter393
Quantifizierer394
Längste oder kürzeste Fassung?395
Textstellen ersetzen396
Ersetzungen ohne Zeichenverlust398
Bezug auf den Originaltext nehmen398
Delegatfunktionen399
Rückverweise im Muster401
Split und Join: eine mächtige Strategie401
Nach verschiedenen Zeichen splitten402
Splitten ohne Trennzeichen(verlust): LookBehind und LookAround403
Mehrere Treffer in einem Text finden404
[Regex]::Matches einsetzen405
Ein- und Mehrzeilenmodus405
Testaufgaben407
Kapitel 11 - Typen verwenden409
Typumwandlungen410
Automatische Typzuweisung durch PowerShell410
Explizite Umwandlung in einen anderen Typ411
Testumwandlungen zum Validieren413
Verkettete Umwandlungen414
Umwandlungen bei Cmdlets415
Neue Objekte durch Typumwandlungen415
StringBuilder: schneller Texte zusammensetzen417
ArrayList: Arrays schneller und komfortabler machen418
WMI-Objekte ansprechen420
LDAP-Pfade in Benutzerkonten verwandeln420
Multiple Treffer mit regulären Ausdrücken421
Implizite Umwandlung und typisierte Variablen422
Typisierte Variablen422
Typisierte Parameter422
Typisierte Eigenschaften und Argumente423
Vergleichsoperationen424
Verborgene Befehle in Typen425
Statische Methoden verwenden426
Eindeutige GUIDs generieren427
Dateiextension ermitteln427
Mathematische Funktionen428
Zahlenformate konvertieren429
DNS-Auflösung430
Umgebungsvariablen431
Pfade zu Systemordnern finden432
Konsoleneinstellungen432
Spezielle Datumsformate lesen434
Statische Eigenschaften verwenden436
Neue Objekte herstellen436
Konstruktoren verstehen437
Ein Credential-Object zur automatischen Anmeldung438
Umgang mit XML-Daten440
WMI-Remotezugriffe mit Anmeldung441
COM-Objekte verwenden442
Dialogfeld öffnen443
Sprachausgabe445
Office-Automation446
Zugriff auf Datenbanken446
Automatische Updates448
Verknüpfungen anlegen und ändern448
Netzwerkmanagement449
Welche COM-Objekte gibt es sonst noch?450
Webdienste ansprechen451
SOAP-basierte Webdienste451
RESTful-Webdienste453
Neue .NET-Typen finden454
Type Accelerators untersuchen454
.NET-Assemblies durchsuchen456
Typen in einer Assembly finden456
Uninteressante Typen ignorieren457
Gefundenen Typ untersuchen457
Typen nach Stichwort suchen459
Typen mit bestimmten Befehlen finden461
Typen nachladen462
Assembly-Namen feststellen462
Aktuell geladene Assemblies auflisten463
Zusätzliche Assembly nachladen463
Assembly aus Datei nachladen463
Testaufgaben464
Teil C - Automationssprache467
Kapitel 12 - Einfache Funktionen469
Alles Wichtige: ein Überblick471
Eigene Funktionen herstellen471
Parameter definieren473
Parameter implementieren475
Funktionen per Modul überall verfügbar machen476
Hilfe – Bedienungsanleitung hinzufügen478
Eine bessere Prompt-Funktion481
Zwingend erforderliche Parameter481
Eine Funktion mit zwingend erforderlichen Parametern482
Automatische Nachfrage483
Argumente ohne Parameter483
Rückgabewerte festlegen484
Mehrere Rückgabewerte werden zum Array484
Return-Anweisung485
Write-Output486
Unerwünschte Rückgabewerte unterdrücken486
Kapitel 13 - Skriptblöcke489
Skriptblöcke: Transportcontainer für Code490
Einsatzbereiche für Skriptblöcke492
Skripte sind dateibasierte Skriptblöcke493
Code in separater PowerShell ausführen493
Code remote ausführen494
Rückgabewerte495
Output-Kanal495
Andere Kanäle496
Pipeline-Fähigkeit499
Schleifen und Bedingungen500
Gültigkeitsbereiche502
Zeitkapsel: Closures503
Delegates504
Zugriff auf AST und Parser505
Codesicherheit508
Kapitel 14 - Pipeline-fähige Funktionen511
Anonyme Pipeline-Funktion512
Prototyping513
Pipeline-fähige Funktion erstellen513
Benannte Parameter514
Where-Object durch eine Funktion ersetzen516
Kurzes Resümee518
Parameter und Pipeline-Kontrakt518
»ISA«-Kontrakt: Pipeline-Eingaben direkt binden518
Automatische Bindung über den Datentyp519
ParameterSets einsetzen520
Mehrdeutigkeiten auflösen521
»HASA«-Kontrakt: Objekteigenschaften lesen521
»HASA« und »ISA« kombinieren522
CSV-Dateien direkt an Funktionen übergeben524
Aliasnamen für Parameter525
Modularer Code mit Pipeline-fähigen Funktionen526
Ausgangspunkt: ein unleserliches Skript526
Teil 1: Get-NewFilenameIfPresent528
Teil 2: ConvertTo-AbsoluteURL529
Teil 3: Get-ImageFromWebsite530
Teil 4: Download-File531
Kapitel 15 - Objektorientierte Rückgabewerte535
Mehrere Informationen zurückgeben536
Objekte speichern mehrere Informationen strukturiert537
Eigene Objekte mit Ordered Hashtables anlegen538
Primär sichtbare Eigenschaften festlegen540
Kapitel 16 - Fortgeschrittene Parameter543
Argumentvervollständigung544
Statische Autovervollständigung für Parameter545
Autovervollständigung über Enumerationsdatentyp545
Autovervollständigung über ValidateSet548
Vordefinierte Enumerationsdatentypen finden548
Eigene Enumerationsdatentypen erstellen550
Dynamische Argumentvervollständigung553
Zuweisungen mit Validierern überprüfen554
ValidateSet554
ValidateRange555
ValidateLength555
ValidatePattern556
ValidateCount556
ValidateScript557
Nullwerte und andere Validierer557
Parameter in ParameterSets einteilen558
Gegenseitig ausschließende Parameter558
Binding über Datentyp559
Parameter in mehreren Parametersätzen559
Simulationsmodus (-WhatIf) und Sicherheitsabfrage (-Confirm)560
Festlegen, welche Codeteile übersprungen werden sollen561
Weiterleitung verhindern562
Praxisbeispiel: Automatische Auslagerungsdateien aktivieren563
Gefährlichkeit einer Funktion festlegen564
Dynamische Parameter566
Dynamische Parameter selbst definieren568
Voraussetzungen568
Auf die Argumente dynamischer Parameter zugreifen570
»Clevere« dynamische Parameter571
Performance und Caching573
Parameter mit dynamischen Vorschlagslisten574
Dynamische Währungslisten anzeigen575
Objektgenerator mit dynamischen Parametern577
Dynamische Parameter mit dynamischen ValidateSets580
Splatting: mehrere Parameter gleichzeitig ansprechen582
Splatting im Alltag einsetzen583
Übergebene Parameter als Hashtable empfangen583
Mit Splatting Parameter weiterreichen584
Kapitel 17 - Eigene Module erstellen589
Module sind Ordner590
Funktion erstellen und testen590
Funktion in Modul aufnehmen591
Modul manuell importieren592
Module automatisch importieren592
Manifestdatei für ein Modul594
Neue Manifestdatei anlegen594
Wirkung einer Manifestdatei598
ETS-Anweisungen zu Modul hinzufügen599
Eindeutige Typnamen zuweisen600
Neue Formatierungsangaben in ETS einfügen601
Formatdefinition in Modul integrieren601
ETS-Formatierung testen602
Aufbau von FormatData-Definitionen603
Module entfernen603
Kapitel 18 - PowerShellGet – Module verteilen und nachladen605
PowerShell Gallery nutzen607
NuGet-Provider installieren608
Repository609
Module finden und installieren609
Modul herunterladen610
Modul testweise ausführen611
Modul dauerhaft installieren612
Module aktualisieren613
Side-by-Side-Versionierung614
Eigene Module veröffentlichen614
Privates Repository einrichten615
Freigaben zum Lesen und Schreiben615
Repository anlegen615
Modul in Repository übertragen616
Modul aus Repository installieren617
Kapitel 19 - Gültigkeitsbereiche619
Gültigkeitsbereiche verstehen620
Unterschied zwischen Lesen und Schreiben621
Aufpassen bei Objekten und Referenzen622
Parameter liefern Referenzen623
Gemeinsam genutzte Variablen624
Skriptglobale »Shared« Variable624
Globale Variable625
Direkter Zugriff auf Gültigkeitsbereiche626
Dot-Sourcing: Skripte im Aufruferkontext631
»Dot-Sourcing« verstehen632
Aufruftyp eines Skripts testen633
Gültigkeitsbereiche in Modulen634
Modulcode greift auf Aufruferkontext zu634
Aufruferkontext greift auf Modulkontext zu635
Kapitel 20 - Debugging – Fehler finden637
Syntaxfehler erkennen und beheben639
Folgefehler und der Blick auf das Wesentliche639
Formale Regeln missachten642
Laufzeit- und Logikfehler aufspüren644
Falsche Verwendung von Operatoren644
Tippfehler ändern den Code646
Nicht initialisierte Variablen646
Versehentliche Verwendung von Arrays647
Fehlendes Verständnis für Objektreferenzen649
Falsche Verwendung von Klammern652
Falsche Zuordnung von Skriptblöcken653
Schrittweise Ausführung mit dem Debugger654
Haltepunkte setzen und Code schrittweise ausführen655
Codeausführung fortsetzen657
Ad-hoc-Debugging657
Dynamische Haltepunkte setzen657
Anhalten, wenn Variablen sich ändern657
Anhalten, wenn Cmdlets oder Funktionen aufgerufen werden659
Anhalten, wenn Variablen bestimmte Werte enthalten660
Debugging-Meldungen ausgeben662
Ein Skript mit Write-Debug testen663
Write-Debug in echte Haltepunkte umwandeln664
Tracing einsetzen667
Fremde Prozesse debuggen668
Testszenario: PowerShell-Code in fremdem Prozess669
Testskript in fremdem Host starten669
Verbindung mit fremdem Host aufnehmen669
Runspace auswählen und debuggen670
Debug-Sitzung beenden670
Remote-Debugging671
Mit Remotecomputer verbinden671
Remoteskript laden und debuggen671
Kapitel 21 - Fehlerhandling673
Fehlermeldungen unterdrücken674
Bestimmen, wie Cmdlets auf Fehler reagieren675
Fehler nachträglich analysieren676
Fehler mitprotokollieren lassen678
Erfolg eines Befehlsaufrufs prüfen680
Fehlerhandler einsetzen680
Lokaler Fehlerhandler: try…catch681
Globaler Fehlerhandler: Trap686
Spezifische Fehlerhandler689
Exception-Namen ermitteln689
Spezifische Fehlerhandler nutzen690
Spezifische Fehlerhandler in Traps691
Spezifizität des Fehlerhandlers justieren697
Eigene Fehler auslösen699
Mit Throw einen Fehler auslösen700
Spezifische Fehler auslösen702
Upstream-Kommunikation in der Pipeline704
Pipeline vorzeitig abbrechen704
Pipeline mit Select-Object abbrechen705
Pipeline manuell abbrechen705
Testaufgaben706
Teil D - Remoting und Parallelverarbeitung711
Kapitel 22 - Fernzugriff und Netzwerk- Troubleshooting713
Klassische Fernzugriffe714
Dateisystem714
Konsolenbefehle714
Remotefähige Cmdlets715
Troubleshooting für Fernzugriffe716
Firewall für DCOM einrichten716
Namensauflösung überprüfen717
Remote-Registrierungszugriff erlauben718
Access Denied: mit passenden Rechten anmelden719
LocalAccountTokenFilterPolicy720
Ports überprüfen721
Kapitel 23 - Windows PowerShell-Remoting723
PowerShell-Remoting aktivieren724
Ohne Kerberos und Domäne726
TrustedHosts-Liste727
PowerShell-Remoting überprüfen727
Erste Schritte mit PowerShell-Remoting729
Remoting-Unterstützung im ISE-Editor730
Befehle und Skripte remote ausführen731
Kontrolle: Wer besucht »meinen« Computer?732
Remotefähigen Code entwickeln733
Argumente an Remotecode übergeben733
Ergebnisse vom Remotecode an den Aufrufer übertragen735
Fan-Out: integrierte Parallelverarbeitung735
ThrottleLimit: Parallelverarbeitung begrenzen737
Double-Hop und CredSSP: Anmeldeinfos weiterreichen738
Eigene Sitzungen verwenden742
Eigene Sitzungen anlegen742
Parallelverarbeitung mit PSSessions743
Sitzungen trennen und wiederverbinden746
Aktive PSSessions trennen746
Beispiel: Invoke-Command -InDisconnectedSession747
Auf getrennte PSSession von überall zugreifen747
Mit getrennter Sitzung verbinden748
Datenpuffer kontrollieren748
Endpunkte verwalten749
Vorhandene Endpunkte anzeigen749
Standardendpunkt festlegen750
Remote auf Endpunkte zugreifen751
Neue Endpunkte anlegen752
Zugriffsberechtigungen für Endpunkt festlegen752
Benutzerkontext ändern753
Eingeschränkte Endpunkte anlegen755
Bereitgestellte Befehle weiter einschränken758
Eigene Funktionen definieren und bereitstellen761
Reguläre PowerShell-Sitzungen einschränken765
Limit-Runspace: Befehlsumfang und Sprachmodus bestimmen765
Endpunkte per Skript absichern769
Eigene Funktionen einsetzen770
Sitzungsinhalte importieren771
Cmdlets eines Remotesystems importieren771
Remotesitzungen als Modul exportieren772
Datentransfer und Optimierung774
Deserialisierte Objekte774
Serialisierungsvorgang777
Performanceoptimierung778
Datentransfer mit PowerShell-Remoting780
Weitere Remoting-Einstellungen781
Clientseitige Sitzungsoptionen781
Zugriff auf Remoting-Einstellungen782
Einstellungen ändern783
Fehler finden und beheben784
RPC-Server nicht verfügbar784
Zugriff verweigert785
Kerberos-Fehlermeldung786
Öffentliche Netzwerke entdeckt787
Andere Fehler788
Kapitel 24 - Just Enough Admin (JEA)789
Just Enough Admin (JEA)790
Virtuelle Administratorkonten790
Rollenmodell790
Virtuelle Administratorkonten791
Voraussetzungen791
PowerShell-Remoting überprüfen792
JEA-Endpunkt einrichten792
JEA-Endpunkt verwenden794
Gefahren bei der Elevation798
Unterschieben bösartiger Module und Befehle799
Angriffsszenario mit Administratorrechten799
Ein gefälschtes »Microsoft«-Modul herstellen800
Privilegierter Zugriff auf gefälschtes Modul801
Angriffsszenario ohne Administratorrechte802
Best Practices für JEA-Endpunkte804
Rollenbasierte Rechtevergabe805
Rollen anlegen805
Befehlsumfang der Rollen definieren807
Generic: Allgemeine Befehle807
»Information«: Ausgewählte Informationsbefehle808
»ManageService« und »ManageLog«809
Praxisbeispiel: Verwaltung im Active Directory810
Endpunkt für die Verwaltung des Active Directory811
Modul für die Verwaltung des Active Directory812
Rollenbasierte Verwaltung813
Kapitel 25 - Hintergrundjobs und Parallelverarbeitung817
Hintergrundjobs818
Mehrere Aufgaben parallelisieren819
Integrierte Hintergrundjobs822
Hintergrundjobs auf Remotecomputern824
Multithreading825
Einen separaten Thread erzeugen826
Hintergrundüberwachungen einrichten828
Foreach-Schleife mit Parallelbearbeitung829
Foreach-Parallel nachrüsten829
Maximale Thread-Anzahl festlegen833
Maximale Ausführungszeit festlegen834
Lokale Variablen einblenden835
Hintergrundjobs auf Thread-Basis837
Teil E - DevOps und Enterprise843
Kapitel 26 - Workflows845
Brauche ich Workflows?846
Wie relevant sind Workflows wirklich?847
Aufgaben orchestrieren848
Orchestrierung in klassischer Funktion848
Orchestrierung mit Workflow: sequence und parallel849
Workflows sind kein PowerShell-Code851
Syntaktische Unterschiede und Kompatibilitätsprobleme853
InlineScript: echten PowerShell-Code ausführen854
Variablen und Gültigkeitsbereiche856
Zugriff auf »fremde« Variablen856
Workflow-globale Variablen857
Variablen in InlineScript859
Informationen mit Parametern übergeben859
Ergebnisse über Rückgabewerte zurückliefern860
Rückgabewerte werden immer serialisiert861
Fehlende Echtzeitverarbeitung bei Rückgabewerten862
Funktionen verwenden862
Verschachtelte Workflows864
Remotezugriff864
Parallelverarbeitung865
Globale Variablen synchronisieren parallele Aufgaben866
Parallelbearbeitung in einer Schleife867
Throttling für Parallelschleifen868
Unterbrechung und Wiederaufnahme870
Manuelle Unterbrechung870
Automatische Unterbrechung872
Persistierende Hintergrundjobs874
Prüfpunkte für eine kontrollierte Wiederaufnahme875
Workflow-Server: Schutz vor unkontrollierten Abstürzen876
Workflow manuell auf Workflow-Server anlegen877
Workflow per Remotesitzung verwalten877
Workflows optimieren879
Kapitel 27 - Desired State Configuration (DSC)881
Workflows und DSC – eine Reise ins DevOps-Land883
Voraussetzungen für DSC884
Architektur885
Was sind Ressourcen?886
Mitgelieferte Ressourcen untersuchen886
Integrierte Testfunktion in Ressourcen887
Aktuellen Zustand ermitteln888
Änderung durchführen888
Was sind Konfigurationen?889
Eine einfache DSC-Konfiguration erstellen889
Konfiguration als MOF-Datei speichern891
Konfiguration auf Computer anwenden892
Was ist der Local Configuration Manager?894
Die Master-Konfiguration894
Reset: LCM zurücksetzen895
Konfiguration überprüfen896
Konfigurationshistorie abrufen898
Das »Was?« vom »Wo?« abgrenzen899
Schlecht: Umgebungsinformationen in Konfigurationen899
Umgebungsinformationen ausgliedern900
Umgebungsinformationen als ConfigurationData übergeben901
Komplexere Umgebungen definieren903
Beispiel: Webseiten auf Webserver einrichten904
Globale Informationen: NodeName entspricht »*«905
Umgebungsinformationen aus Datei nachladen905
Fehlende Ressourcen nachladen907
Identität und Umgang mit Geheimnissen908
Konfigurationen im Benutzerkontext ausführen908
In den Benutzerzweig der Registrierungsdatenbank schreiben909
Geheimnisse liegen im Klartext vor912
Sensible Informationen verschlüsseln913
Voraussetzung: zwei Schlüssel = ein Zertifikat913
Geheimnis mit öffentlichem Schlüssel verschlüsseln915
Verschlüsselte Botschaft mit privatem Schlüssel entschlüsseln915
Kennwörter in DSC-Konfigurationen verschlüsseln917
DSC-Zertifikat generieren917
Öffentlichen Schlüssel in Konfiguration angeben918
Privaten Schlüssel an LCM mitteilen919
Mitgelieferte Ressourcen920
Verfügbare Ressourcen auflisten920
Ressource »Archive«922
Ressource »Environment«925
Ressource »Group«927
Zusätzliche Ressourcen927
Ressourcen aus der PowerShell Gallery beziehen928
Verfügbare Ressourcen finden928
Neue Ressource herunterladen929
Neue Ressource einsetzen932
Konfiguration überprüfen934
Detaillierte Testergebnisse934
Arbeit mit Sicherheitsvorlagen935
Eigene DSC-Ressourcen schreiben936
ResourceDesigner installieren936
Ressource konzipieren937
Ressource anlegen938
Get-TargetResource entwerfen941
Test-TargetResource942
Set-TargetResource943
Neue Ressource testen949
Neue Ressource in DSC-Konfiguration nutzen951
Orchestrierung952
Abhängigkeiten definieren952
Systemübergreifende Abhängigkeiten954
Partielle Konfigurationen956
1. Schritt: Teilkonfigurationen dem LCM mitteilen956
2. Schritt: Teilkonfigurationen an LCM senden957
3. Schritt: Teilkonfigurationen kombinieren und anwenden958
4. Schritt: Teams aktualisieren ihre Teilkonfiguration959
LCM konfigurieren960
Letzte Konfiguration wiederherstellen962
Konfigurationen automatisch überwachen und anwenden964
Teil F - Spezielle Techniken967
Kapitel 28 - Ereignisverarbeitung mit Events969
Ereignisse verwenden970
Ein Ereignis asynchron überwachen970
Ein Ereignis synchron überwachen972
Hintergrundjobs überwachen973
Manuelle Überwachung973
Automatische Überwachung974
Ordner überwachen975
Aufgaben regelmäßig durchführen976
WMI-Ereignisse empfangen977
Details zum Event erfahren978
Systemänderungen erkennen979
Eigene Ereignisse auslösen980
Automatische Variablenüberwachung einrichten980
Kapitel 29 - Extended Type System (ETS)983
PowerShell-Objekte verstehen984
Erweiterte PowerShell-Objekte984
Objekte mit Add-Member erweitern986
Informationen hinzufügen986
Methoden hinzufügen987
Dauerhafte Erweiterungen988
AliasProperty: Eigenschaften »umbenennen«991
NoteProperty: Objekte »taggen«992
ScriptProperty: »berechnete« Eigenschaften992
Lesbare Eigenschaften992
Lesbare und schreibbare Eigenschaften994
ScriptMethod und ParameterizedProperty996
Membertypen für den internen Gebrauch1000
PropertySet: Gruppen von Eigenschaften1000
MemberSet: Wie soll PowerShell das Objekt behandeln?1001
Kapitel 30 - Proxyfunktionen verstehen und einsetzen1005
Eine Proxyfunktion erstellen1006
Bestehende Cmdlets erweitern1007
Automatische Protokollfunktion1007
Get-ChildItem mit neuen Parametern1009
Proxyfunktion anlegen1010
Logik implementieren1012
Dateialter filtern1012
Mindest- und Maximalgröße1013
Dateialter filtern1013
Sortierung integrieren1013
Proxyfunktionen für Remoting1017
Eine Remotesitzung erstellen1017
Einen Remotebefehl in lokale Sitzung importieren1018
Kapitel 31 - Benutzeroberflächen gestalten1019
Eigene Fenster mit WPF erzeugen1020
Ein Fenster gestalten – allein mit Code1021
Ein Fenster gestalten – mit XAML1022
Auf Elemente des Fensters zugreifen1024
Auf Ereignisse reagieren1025
Werkzeuge für das WPF-Design1028
Mit dem WPF-Designer von Visual Studio arbeiten1029
Neue grafische Elemente einfügen1030
Elemente im Fenster anordnen1033
StackPanels1033
Grids1034
DockPanels1035
Datenbindungen1040
Ereignisse behandeln1044
Ereignisse mit Werkzeugen erforschen1045
ISESteroids startklar machen1045
XAML-Daten visuell editieren1045
Ereignishandler einfügen1047
Ereignisse manuell erforschen1050
Multithreading1051
Fenster anzeigen und weiterarbeiten1051
Oberfläche aktualisieren1053
Aufgaben im Hintergrund durchführen1058
Mehrere Threads verwenden1060
Thread-übergreifende Aktionen1064
Thread-übergreifendes Databinding1068
Bilder in WPF einbetten1071
Bild in Text verwandeln1071
Text in Bild verwandeln1071
Kapitel 32 - Pester – »Test-Driven Development«1075
Pester installieren oder aktualisieren1076
Eine simple Funktion auf TDD-Art entwickeln1078
Eine neue Funktion entwerfen1078
Einen Test formulieren1079
Test ausführen1079
Funktionalität implementieren1080
Architektur der Pester-Tests1081
Gefahren und Vorsichtsmaßnahmen1082
Funktionen nachträglich erweitern1082
Einen Test hinzufügen1082
Assertions – Ergebnisse überprüfen1085
Die richtige Assertion wählen1085
Eine Assertion testen1086
Mehrere Assertions kombinieren1087
Simulationen und Alltagstests1088
Befehle vorübergehend außer Kraft setzen1088
Mock-Funktion über Parameter auswählen1090
Reale Tests und notwendige Aufräumarbeiten1091
TestDrive – ein Ort für temporäre Daten1094
»Test Cases« und Wiederverwertung1095
»Code Coverage« und Eigenentwicklungen1096
Testabdeckung überprüfen1096
Eigene Testtools auf Pester aufsetzen1096
Kapitel 33 - PowerShell-Umgebung anpassen1099
Profilskripte einsetzen1100
Vier Profilskripte1100
Profilskripte öffnen und ändern1101
Profilskripte bei Bedarf nachladen1103
Eingabeaufforderung anpassen1103
Konsolendarstellung verbessern1105
ISE-Editor erweitern1106
Auf den Editor zugreifen1106
Befehle über das Menü anbieten1109
Add-On-Tools verwenden1112
Zugriff auf die Skriptstruktur1115
Zwei Parser: Text in Token verwandeln1115
Kommentare entfernen1117
Aliase auflösen1118
Syntaxfehler finden1119
Abstract Syntax Tree (AST)1120
Kapitel 34 - .NET Framework und PowerShell1123
Auf API-Funktionen zugreifen1124
API-Funktionen in PowerShell einblenden1125
API-Funktion einsetzen1125
Wiederverwertbare PowerShell-Funktion herstellen1126
PowerShell-Klassen einsetzen1127
Neue Klasse zur besseren Prozesse-Verwaltung1129
Der Konstruktor1131
Eigenschaften1132
Methoden1132
Statische Eigenschaften und Methoden1133
Vererbung von Klassen1134
Eine abgeleitete Klasse erstellen1135
Abgeleitete Klasse einsetzen1136
Die wesentlichen Aspekte der Vererbung1136
Eine weitere abgeleitete Klasse1137
C#-Code verwenden1138
Klasse mit PowerShell-Mitteln erstellen1138
Klasse mit C#-Code entwickeln1142
Index1147
A1147
B1148
C1148
D1149
E1150
F1150
G1151
H1151
I1152
J1152
K1152
L1152
M1153
N1153
O1154
P1154
Q1155
R1155
S1156
T1157
U1157
V1157
W1158
X1158
Z1158
www.oreilly.de0

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Atalanta

Atalanta

Atalanta ist die Zeitschrift der Deutschen Forschungszentrale für Schmetterlingswanderung. Im Atalanta-Magazin werden Themen behandelt wie Wanderfalterforschung, Systematik, Taxonomie und Ökologie. ...

bank und markt

bank und markt

Zeitschrift für Banking - die führende Fachzeitschrift für den Markt und Wettbewerb der Finanzdienstleister, erscheint seit 1972 monatlich. Leitthemen Absatz und Akquise im Multichannel ...

Correo

Correo

 La Revista de Bayer CropScience para la Agricultura ModernaPflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und am Thema Interessierten mit umfassender ...

DER PRAKTIKER

DER PRAKTIKER

Technische Fachzeitschrift aus der Praxis für die Praxis in allen Bereichen des Handwerks und der Industrie. “der praktiker“ ist die Fachzeitschrift für alle Bereiche der fügetechnischen ...

Deutsche Hockey Zeitung

Deutsche Hockey Zeitung

Informiert über das nationale und internationale Hockey. Die Deutsche Hockeyzeitung ist Ihr kompetenter Partner für Ihren Auftritt im Hockeymarkt. Sie ist die einzige bundesweite Hockeyzeitung ...

e-commerce magazin

e-commerce magazin

e-commerce magazin Die Redaktion des e-commerce magazin versteht sich als Mittler zwischen Anbietern und Markt und berichtet unabhängig, kompetent und kritisch über ...

VideoMarkt

VideoMarkt

VideoMarkt – besser unterhalten. VideoMarkt deckt die gesamte Videobranche ab: Videoverkauf, Videoverleih und digitale Distribution. Das komplette Serviceangebot von VideoMarkt unterstützt die ...