Latest / M365.FM – Microsoft 365, Copilot & KI Podcast auf Deutsch / PowerShell statt CMD: Warum Objekte statt Text die Windows-Automatisierung verändern (KI-Synchronfassung)
Transcript
- 0:00Willkommen zu einer weiteren Episode der Microsoft Knowledge Nuggets auf M365FM.
- 0:04Bin Ihr Gastgeber Milko Peter.
- 0:05Was wäre, wenn ich Ihnen sagen würde, dass es ein Tool auf Ihrem Computer gibt,
- 0:08das fast alles automatisieren kann?
- 0:09Denken Sie an Ihren typischen Arbeitag.
- 0:11Sie melden sich an, öffnen ein paar Anwendungen,
- 0:13klicken sich durch dieselben Menüs wie gestern,
- 0:14erstellen dieselben Berichte und prüfen dieselben Dienste.
- 0:17Vielleicht verbringen Sie eine Stunde mit etwas,
- 0:18das eigentlich nur fünf Minuten dauern sollte.
- 0:21Dieses Tool, von dem ich spreche, ist PowerShell.
- 0:23Am Ende dieser Episode werden Sie verstehen,
- 0:25was PowerShell eigentlich ist, wie die Befehle funktionieren
- 0:27und warum es die heimliche Superkraft des Microsoft-Ökosystems ist.
- 0:31Wir beginnen mit der Grundidee, arbeiten uns durch die Bausteine
- 0:34und am Ende werden Sie echte Automatisierungen haben,
- 0:35die Sie sofort nutzen können.
- 0:37Das große Ganze, was PowerShell eigentlich ist.
- 0:40Also was genau ist PowerShell?
- 0:41Die meisten Leute hören den Namen und denken,
- 0:42es ist eine schicke Eingabeaufforderung.
- 0:44PowerShell ist eine vollständige Automatisierungsplattform.
- 0:46Betrachten Sie es als eine Kombination aus Befehlszahlen Shell,
- 0:49Skriptsprache und Remote-Verwaltungstool in einem.
- 0:52In der Shell geben Sie Befehle ein und erhalten Ergebnisse.
- 0:54Aber es ist auch eine Skriptsprache zum Schreiben von Programmen
- 0:56und ein Remote-Tool, das dutzende oder hunderte von Maschinen
- 0:59von einem einzigen Fenster aus steuert.
- 1:02Vor 20 Jahren bedeutete die Automatisierung unter Windows
- 1:04ein Wirrwarr an verschiedenen Tools zu verwenden.
- 1:06Man nutzte Batch-Dateien für einfache Aufgaben,
- 1:08VB-Skripte für komplexere Dinge
- 1:09und separate Konsolen für Exchange, Active Directory und Dateiserver.
- 1:13Keines davon kommunizierte miteinander.
- 1:15Sie kopierten Daten von einem Tool,
- 1:16fügten sie in ein anderes ein und hofften, dass nichts verloren ging.
- 1:19PowerShell hat das alles geändert.
- 1:21Es ist ein einziges Tool, das mit allem kommuniziert.
- 1:22Windows selbst, Azure, Microsoft 365 Exchange,
- 1:25Teams, SharePoint, Active Directory und mittlerweile sogar Linux-Maschinen.
- 1:29Sie verwenden dieselbe Sprache, dieselben Muster und dieselben Befehle,
- 1:31unabhängig davon, was sie verwalten.
- 1:33Und es ist plattformübergreifend.
- 1:34PowerShell 7 läuft auf Windows, Linux und macOS.
- 1:37In einer gemischten Umgebung müssen Sie also nicht mehr zwischen Tools wechseln.
- 1:39Ist der Punkt.
- 1:40Wenn Sie in der IT arbeiten, ist PowerShell die Sprache des Microsoft-Ökosystems.
- 1:44Es ist der Weg, wie Sie mit Ihrer Infrastruktur kommunizieren
- 1:46und langweilige Aufgaben automatisieren können,
- 1:48damit Sie sich auf interessante Probleme konzentrieren können.
- 1:49Bevor wir uns jedoch ansehen, was es leisten kann,
- 1:51schauen wir uns an, wie es eigentlich funktioniert.
- 1:52Das Verb-Nomen-Muster, wie PowerShell-Befehle, funktioniert.
- 1:56Jeder PowerShell-Befehl folgt einem einfachen Muster,
- 1:58das Verb-Nomen genannt wird und es ist genau das, wonach es klingt.
- 2:01Das Verb gibt an, was du tun möchtest.
- 2:03Get, Set, New, Remove, Start, Stop.
- 2:06Und das Substantiv benennt das Ziel,
- 2:08wie Process, Service, User, Item oder Mailbox.
- 2:11Also liefert GetProcess eine Liste laufendem Prozess.
- 2:13GetService zeigt alle Dienste auf deinem Rechner an.
- 2:16SetDate ändert die Systemzeit.
- 2:17StopService beendet einen Dienst.
- 2:18Das Muster ist so konsistent, dass du nach dem Erlernen Befehle erraten kannst,
- 2:22die du noch nie gesehen hast.
- 2:23Möchtest du einen Dienstschat?
- 2:25Gib StartService ein.
- 2:26Musst du den Benutzer entführen.
- 2:27Gib RemoveUser ein.
- 2:28So einfach ist das.
- 2:29PowerShell wurde auf einfache Auffindbarkeit ausgelegt,
- 2:32damit du dir nicht hunderte Befehle merken musst.
- 2:34Dein bester Freund dabei ist das CMDET GetCommand.
- 2:37Führe GetCommand now ein Service aus
- 2:38und es zeigt dir jeden Befehl, der mit Diensten arbeitet.
- 2:42GetService, StartService, StopService, RestartService, SetService, NewService, RemoveService.
- 2:47Alle direkt verfügbar, einfach durch Nachfragen.
- 2:49Lass mich dir ein konkretes Beispiel geben.
- 2:50Angenommen, du möchtest wissen, welche Befehle Prozesse verwalten.
- 2:53Du führst GetCommand now ein Process aus.
- 2:55Du hältst GetProcess, StartProcess, DebugProcess, WaitProcess zurück.
- 2:59Du musst nicht raten.
- 3:00Das Tool sagt es dir.
- 3:01Das macht PowerShell so anders als herkömmliche Befehlszeilen-Tools,
- 3:04bei denen man sich jeden Schalter merken musste.
- 3:06Und deshalb ist das wichtig.
- 3:07Du lernst PowerShell nicht in den 1000 Befehle auswendig lernst.
- 3:10Du lernst das Muster und kannst dir den Rest während der Arbeit erschließen.
- 3:13Es ist, als würdest du lernen,
- 3:13dass jedes Verb in einer Sprache der gleichen Konjugation folgt.
- 3:16Sobald du die Regel kennst, kannst du sie überall anwenden.
- 3:18Aber hier hebt sich PowerShell wirklich von allem anderen ab.
- 3:22Objekte, nicht Text, das ist der entscheidende Unterschied.
- 3:24Hier ist der Punkt,
- 3:25der PowerShell grundlegend von jedem Befehlszeilen-Tool unterscheidet,
- 3:27das davor kam.
- 3:29Herkömmliche Befehlszeilen geben Text aus.
- 3:31Du führst einen Befehl aus
- 3:32und erhältst Zeichenfolgen auf deinem Bildschirm.
- 3:33Das ist alles.
- 3:34Wenn du etwas mit dieser Ausgabe machen willst,
- 3:36musst du sie parsen, zerlegen
- 3:37und die benötigten Teile per String-Manipulation extrahieren.
- 3:40Das ist fehlanfällig.
- 3:41Ein Leerzeichen an der falschen Stelle
- 3:43und dein ganzes Skript bricht zusammen.
- 3:44PowerShell arbeitet nicht so.
- 3:46Es liefert dir Objekte.
- 3:47Strukturierte Daten mit Eigenschaften und Methoden.
- 3:49Wenn du GetProcess ausführst,
- 3:50erhältst du keine Texttabelle.
- 3:51Du erhältst Prozessobjekte.
- 3:53Jedes davon hat Eigenschaften wie Name, ID, CPU,
- 3:55Arbeitsspeicher, Startseite und Methoden wie Kill.
- 3:57Du kannst diese Eigenschaften abrufen,
- 3:58filtern, sortieren oder exportieren.
- 4:00Sie können mit den Daten Dinge tun,
- 4:01für die sonst 20 Zeilen Text-Parsing nötig wären,
- 4:03und zwar mit einem einzigen Befehl.
- 4:05Das ist entscheidende Futter.
- 4:06Lassen Sie es mich hinzahlen.
- 4:07Auf die alte Art,
- 4:08mit dem Tasklist-Befehl der Eingabeaufforderung,
- 4:09erhalten Sie eine Texttabelle.
- 4:11Wenn Sie Prozesse finden wollen,
- 4:12die mehr als 50 CPU verbrauchen,
- 4:13müssen Sie eine Parsing-Logik schreiben.
- 4:16Sie müssen Spalten bereiten,
- 4:17Abstände und Kopfzeilen berücksichtigen.
- 4:18Es ist mühsam und geht ständig kaputt.
- 4:20Der PowerShellik sieht so aus.
- 4:22GetProcess weitergeleitet
- 4:23und WearObject mit einer Bedingung weitergeleitet
- 4:24und Export-CSV.
- 4:25Das einzige Zeile.
- 4:26Filtern Sie nur Prozesse mit mehr als 50 CPU-Auslastung
- 4:29und speichern Sie diese in einer CSV-Data.
- 4:31Was das alles ermöglicht,
- 4:32ist das GetMember CMD-Lab.
- 4:33Sie leiten jeden Befehl an GetMember weiter
- 4:35und es zeigt Ihnen jede Eigenschaft und Methode dieser Objekt.
- 4:37Es ist, als würde man unter die Motorhaube schon.
- 4:38Führen Sie GetProcess und GetMember aus
- 4:40und plötzlich sehen Sie alles.
- 4:43Du, Arbeitssatz, Startzeit und Methoden wie Kill, Refresh,
- 4:46Wait for Exit, Wait for Exit.
- 4:47Sie müssen nicht raten, welche Daten verfügbar sind.
- 4:49Das Tool sagt es Ihnen.
- 4:50Ist ein geiles Szenario.
- 4:52Angenommen, Sie sind Administrator für 50 Server.
- 4:54Sie müssen auf allen dieser Servern
- 4:55alle gestoppten Dienste finden.
- 4:56Auf die alte Art,
- 4:57wenn Sie sich auf jeden Server schalten,
- 4:58Services.msc öffnen, manuell prüfen und notieren.
- 5:01Das dauert Stunden.
- 5:02Auf die PowerShell Art schreiben Sie einen Befehl.
- 5:04Add Service auf jeder Maschine.
- 5:05Filter nach gestopptem Status.
- 5:06Export in eine CSV-Datei.
- 5:08Ein Befehl, 50 Server, immer das gleiche Ergebnis.
- 5:11Kein Klicken durch GUIs,
- 5:12ist keine manuellen Notizen,
- 5:13keine Fehler beim Kopieren von Daten zwischen Fenstern.
- 5:15Und hier ist der Grund, warum das wichtig ist.
- 5:16Objektoutput bedeutet,
- 5:17dass Sie Befehle miteinander verketten können.
- 5:19Die Ausgabe eines Befehls
- 5:20fließt als strukturierte Daten direkt in den nächsten.
- 5:23Sie parsen keinen Text,
- 5:24Sie manipulieren Objekte.
- 5:25Es ist der Unterschied
- 5:26zwischen dem Sortieren Loser Papiere
- 5:27und der Arbeit mit einem Aktenschrank,
- 5:29in dem alles beschriftet ist, ist.
- 5:31Jetzt kennen Sie also das Muster und die Pipeline.
- 5:33Lassen Sie uns über die Befehle sprechen,
- 5:34die Sie tatsächlich verwenden.
- 5:35Die fünf essentiellen CM-Date-Gruppen.
- 5:37Sie müssen nicht hunderte von CM-Dates lernen,
- 5:39um mit PowerShell produktiv zu sein.
- 5:40Starten Sie mit fünf Gruppen.
- 5:42Damit decken Sie etwa 80% Ihrer täglichen Arbeit ab.
- 5:45Gruppe 1 ist Ihr Kunde.
- 5:46Sie ist die wichtigste,
- 5:47weil Sie Ihnen PowerShell von innen heraus beibringen.
- 5:50GetHelp, GetCommand, GetMember,
- 5:51diese drei sind Ihre Lernwerkzeuge.
- 5:53Sie müssen nichts auswendig lernen,
- 5:54da Sie immer alles nachschlagen können.
- 5:56GetHelp zeigt Ihnen, wie man Befehle nutzt,
- 5:58GetCommand zeigt vorhandene Befehle
- 5:59und GetMember zeigt, welche Daten diese ausgeben.
- 6:02Wenn Sie nichts anderes lernen,
- 6:03dann lernen Sie diese drei.
- 6:04Gruppe 2 ist das Dateisystem
- 6:06und deckt die alltäglichen Aufgaben ab,
- 6:07die Sie ständig erledigen.
- 6:09GetChilledItem listet Dateien
- 6:10und Ordner auf,
- 6:11CopyItem kopiert Sie,
- 6:12RemoveItem löscht Sie
- 6:13und GetContent liest Dateienhalte.
- 6:15Sie können in einer Zeile erledigen,
- 6:16wofür Sie sonst durch mehrere Ordnerfenster klicken müssen.
- 6:19Gruppe 3 ist das System,
- 6:20mit dem Sie steuern,
- 6:20was auf Ihrem Rechner läuft.
- 6:22GetProcess zeigt laufende Prozesse,
- 6:24GetService zeigt Dienste
- 6:25und StartService sowie StopService steuern diese.
- 6:28RestartComputer startet den Rechner neu.
- 6:30Wenn Sie jemals den Taskmanager
- 6:31oder Dienst der MSC geöffnet haben,
- 6:32diese Befehle ersetzen all das
- 6:33und sie funktionieren.
- 6:35Remote.
- 6:36Sie können Dienste auf 100 Rechnern prüfen,
- 6:37ohne Ihren Schreibtisch zu verlassen.
- 6:38Gruppe 4 ist Filtern und Formatieren,
- 6:40wobei die Pipeline ihre wahre Stärke zeigt.
- 6:42WearObject filtert Daten nach Bedingungen.
- 6:44SelectObject wählt Eigenschaften aus,
- 6:46SortObject sortiert Ergebnisse
- 6:48und GroupObject fasst sie zusammen.
- 6:50Diese CMDLets verwandeln Rohdaten
- 6:52in nützliche Informationen.
- 6:53Ohne sie geben Sie nur Daten auf dem Bildschirm aus.
- 6:55Mit ihnen können Sie gezielte Fragen stellen
- 6:57und erhalten präzise Antworten.
- 6:59Gruppe 5 ist Export,
- 6:59dann speichern Sie Ihre Arbeit.
- 7:01ExportCSV schreibt in eine Datei für Excel,
- 7:04OutFile in eine Textdatei
- 7:05und ConverterJSON wandelt Daten
- 7:06in das JSON-Format um.
- 7:08Mit diesen CMDETS machen Sie aus Ihren Befehlen
- 7:10Berichte, Protokolle oder Datendateien.
- 7:12Sie führen einen Befehl aus,
- 7:13filtern die Ergebnisse und speichern sie.
- 7:14Das ist ein Bericht des Automatisierungs.
- 7:16Hier ist ein kurzes Beispiel für jede Gruppe.
- 7:18Zur Ermittlung führen Sie
- 7:19GetCommandNounService aus,
- 7:20um alle dienstbezogenen Befehle zu sehen.
- 7:23Beim Dateisystem findet
- 7:24GetShielditemC
- 7:25e-Logs recurs.
- 7:27WhereObjectLengthGit
- 7:2810 Mgb
- 7:29große Logdateien.
- 7:31Für das System listet
- 7:32GetService
- 7:32WhereObjectStatusEQ
- 7:34stoppt am gehaltenen
- 7:35Dienste auf.
- 7:36Für Filterung zeigt
- 7:37GetProcess
- 7:38SortObject ist CPU
- 7:39Descending.
- 7:40SelectObjectFirst5
- 7:41Die fünf größten CPU-Fresser
- 7:43für Export nutzen Sie
- 7:44GetService
- 7:45Export-CSV
- 7:46Services
- 7:47CSV speichert alles in einer Datei.
- 7:49Ist das wichtig?
- 7:50Diese fünf Gruppen
- 7:51decken den Großteil Ihrer Arbeit ab.
- 7:53Sie müssen kein PowerShell-Experte sein.
- 7:55Sie müssen nur wissen,
- 7:55wo Sie anfangen.
- 7:56Und der beste Startpunkt
- 7:57ist die Gruppe,
- 7:57die Ihnen alles Weitere beibringt.
- 7:59Lassen Sie über die Ermittlung sprechen.
- 8:01Zuerst die Ermittlung
- 8:01GetHelps
- 8:02GetCommand
- 8:03GetMember
- 8:03Ich verrate Ihnen
- 8:05das wichtigste CM-Tlet,
- 8:06das Sie je lernen werden.
- 8:07GetHelp.
- 8:08Es ist das integrierte Handbuch
- 8:09von PowerShell.
- 8:10Geben Sie
- 8:10GetHelp gefolgt
- 8:11von einem beliebigen Befehlsnamen ein,
- 8:13um Syntax, Parameter
- 8:14und vor allem
- 8:15funktionierende Beispiele zu sehen.
- 8:16Sie müssen nicht im Internet suchen
- 8:17oder sich irgendetwas einprägen.
- 8:19Die Dokumentation befindet sich
- 8:20direkt im Tool selbst.
- 8:21Nehmen wir an,
- 8:22Sie möchten wissen,
- 8:22wie GetProcess funktioniert.
- 8:24Geben Sie
- 8:24GetHelp.
- 8:25GetProcess ein
- 8:25und Sie erhalten die Syntax,
- 8:26die akzeptierten Parameter
- 8:27und deren jeweilige Funktion.
- 8:29Das wahre Gold
- 8:30sind jedoch die Beispiele
- 8:31in GetHelp.
- 8:32Die Beispiele führen
- 8:33direkt zu funktionierendem Code,
- 8:34den Sie kopieren können.
- 8:35So lernen Sie PowerShell
- 8:36direkt aus PowerShell heraus.
- 8:38Dann gibt es noch
- 8:38GetCommand.
- 8:39Dieses CMTidlet listet alles auf,
- 8:41was in Ihrer Sitzung verfügbar ist.
- 8:42Jedes CMTidlet,
- 8:43jede Funktion und jedes Skript.
- 8:45Und Sie können es filtern.
- 8:46GetCommandVerbGet
- 8:47zeigt Ihnen jeden GetBefehl an,
- 8:50von denen es hunderte gibt.
- 8:51GetProcess,
- 8:52GetService,
- 8:53GetDate,
- 8:53GetItem,
- 8:54GetChildItem,
- 8:54GetContent.
- 8:56Alle sind nur einer Anfrage entfernt.
- 8:58GetCommandNounsService
- 8:59zeigt Ihnen alle Befehle,
- 9:00die mit Diensten arbeiten.
- 9:01GetService,
- 9:02StartService,
- 9:02StopService,
- 9:03RestartService,
- 9:03SetService,
- 9:04NewService,
- 9:05RemoveService.
- 9:06Sie müssen nicht raten,
- 9:07was verfügbar ist.
- 9:07Das Tool sagt es Ihnen.
- 9:09Und dann gibt es noch GetMember.
- 9:10Das Tool, das alles freischaltet,
- 9:12leiten Sie einen beliebigen Befehl
- 9:13an GetMember weiter,
- 9:14um zu sehen,
- 9:15was in den vom Befehl
- 9:15zurückgegebenen Objekten steckt.
- 9:18Führen Sie GetProcess,
- 9:19GetMember daraus
- 9:20und Sie sehen jede Eigenschaft
- 9:21und Methode von Prozessobjekten.
- 9:23Name,
- 9:23ID,
- 9:24CPU,
- 9:25Arbeitssatz,
- 9:25Startzeit
- 9:26und Methoden wie Kill,
- 9:27Refresh,
- 9:28WaitForExit,
- 9:29WaitForExit.
- 9:29Sie müssen sich nicht fragen,
- 9:30welche Daten verfügbar sind.
- 9:32Sie können sie direkt überprüfen,
- 9:33warum das wichtig ist.
- 9:34Sie müssen sich niemals ausländisch merken.
- 9:36Sie können während der Arbeit lernen.
- 9:38GetHelp bringt Ihnen die Verwendung bei,
- 9:39GetCommand zeigt existierende Befehle
- 9:41und GetMember zeigt
- 9:41die von Befehlen zurückgegebenen Daten.
- 9:44Diese drei CMDlets
- 9:45sind Ihre Lernwerkzeuge.
- 9:46Sie machen PowerShell selbst dokumentieren.
- 9:48Sobald Sie wissen,
- 9:49was verfügbar ist,
- 9:49besteht der nächste Schritt darin,
- 9:50diese Daten nutzbar zu machen.
- 9:53Filtern, formen und exportieren so,
- 9:54werden aus Befehlen Berichte.
- 9:56Das ist besonders am PowerShell.
- 9:58Die Stärke liegt nicht
- 9:58in einem einzelnen Befehl,
- 9:59sondern darin,
- 9:59wie Sie diese über die Pipeline kombinieren.
- 10:01Sie nehmen die Ausgabe eines CMDlets,
- 10:03leiten Sie an ein anderes weiter
- 10:04und bauen komplexe Abläufe
- 10:05aus einfachen Bausteinen.
- 10:08WearObject ist Ihr Filter,
- 10:09der nur Objekte durchlässt,
- 10:10die Ihrer Bedingungen entsprechen.
- 10:12GetService
- 10:13WearObjectStatusEcrunning
- 10:14gibt Ihnen also
- 10:16nur laufende Dienste.
- 10:17Kein Scrollen durch eine Liste
- 10:18von 100 Diensten.
- 10:20Der Befehl übernimmt das Filtern für Sie.
- 10:21SelectObject wählt aus,
- 10:22welche Eigenschaften Sie sehen möchten.
- 10:24GetProcessSelectObjectName
- 10:26CPU WorkingSet
- 10:28liefert genau die Daten,
- 10:29die Sie benötigen.
- 10:29Äh,
- 10:30es entfernt Handles,
- 10:31Seitenspeicher und SessionIDs
- 10:32und lässt nur die Spalten übrig,
- 10:34die Sie angefordert haben.
- 10:35So verwandeln Sie eine Datenflut
- 10:37in eine übersichtliche,
- 10:38lesbare Tabelle.
- 10:39SortObject Sortierergebnisse
- 10:40GetProcessSortObjectCPUDescending
- 10:43zeigt Ihnen die CPU-intensivsten Prozesse zuerst,
- 10:46damit Sie das Problem sofort finden,
- 10:47anstatt eine unsortierte Liste zu durchsuchen.
- 10:50Also Sie.
- 10:51ExportCSV speichert alles in einer Datei,
- 10:53die Sie in Excel öffnen können.
- 10:54Hier geschieht die Magie.
- 10:55Sie führen einen Befehl aus,
- 10:56filtern ihn,
- 10:57passen ihn an und speichern ihn.
- 10:58Das ist ein Bericht und das ist Automatisierung,
- 11:00ist das vollständige Muster zusammengeführt.
- 11:02GetService
- 11:03WhereObjectStatus-Ekey
- 11:05Stopped
- 11:06SelectObjectName
- 11:07DisplayName Export
- 11:08MiesSV
- 11:09Es ist ein Befehl,
- 11:11der alle Dienste abruft,
- 11:12nur die gestoppten filtert Name und Anzeigename auswählt
- 11:14und das Ergebnis in einer CSV-Datei speichert.
- 11:16Sie können dies auf einem Rechner oder 100 ausführen
- 11:18und erhalten jedes Mal das gleiche Ergebnis.
- 11:20Dies ersetzt stundenlanges Klicken durch GUIs
- 11:22und manuelles Kopieren und Einfügen.
- 11:24Anstatt auf jedem Server
- 11:25services.msc zu öffnen,
- 11:27durch die Liste zu scrollen,
- 11:28gestoppte Dienste zu notieren
- 11:29und in eine Tabelle einzutippen,
- 11:30führen Sie einen Befehl aus.
- 11:32Es dauert Sekunden,
- 11:32ist präzise und wiederholbar.
- 11:34Warum ist das wichtig?
- 11:35Sie gehen von reaktiv zu proaktiv über.
- 11:37Sie können diese Berichte zeitgesteuert ausführen.
- 11:39Jeden Morgen überprüft ein Skript Ihre Dienste,
- 11:41exportiert die Ergebnisse
- 11:42und sendet sie Ihnen per E-Mail.
- 11:44Sie erkennen Probleme,
- 11:44bevor Sie zu Notfällen werden,
- 11:45da Sie wissen, was läuft,
- 11:46was gestoppt ist
- 11:47und was Aufmerksamkeit erfordert.
- 11:48Anstatt zu warten,
- 11:49bis etwas kaputt geht,
- 11:50bleiben Sie einen Schritt voraus.
- 11:52Sie haben nun die Teile.
- 11:53Entdeckungstools,
- 11:53um zu erfahren,
- 11:54was verfügbar ist,
- 11:55Filtertools,
- 11:55um Wichtiges zu finden
- 11:56und Exporttools,
- 11:57um Ergebnisse zu speichern.
- 11:59Lassen Sie uns sehen,
- 12:00wie Sie alle zusammen in ein System passen.
- 12:02Wie alles zusammenhängt.
- 12:04Die Pipeline in Aktion.
- 12:07Nicht nur ein Feature.
- 12:08Jedes CMDLT gibt Objekte aus
- 12:09und die Pipeline leitet diese Objekte
- 12:11direkt an das nächste CMDLT weiter.
- 12:13Diese einfache Idee
- 12:14macht PowerShell so leistungsstark.
- 12:16Sie bauen komplexe Abläufe
- 12:17aus einfachen Bausteinen
- 12:18und eine Pipe nach der anderen.
- 12:19Lassen Sie mich in ein reales Szenario nennen.
- 12:21Angenommen,
- 12:21ein Benutzer ruft an,
- 12:22weil sein Konto gesperrt ist.
- 12:23Das passiert ständig.
- 12:25Jemand gibt das Passwort
- 12:26so oft falsch ein
- 12:26und kann sich plötzlich
- 12:27nicht mehr anmelden.
- 12:29Die alte Art,
- 12:29die es zur Hand haben,
- 12:30ist mühsam.
- 12:31Sie öffnen Active Directory
- 12:32Benutzer am Computer,
- 12:33scrollen durch die Liste,
- 12:34suchen den Benutzer,
- 12:35klicken rechts,
- 12:36prüfen das Konto,
- 12:37entsperren es,
- 12:38öffnen dann die Ereignisanzeige,
- 12:39um das Sperrereignis zu finden
- 12:40und notieren manuell Zeit
- 12:41und Quelle.
- 12:43Dieser gesamte Vorgang
- 12:44dauert 5 bis 10 Minuten
- 12:45pro Benutzer
- 12:46und wenn mehrere Benutzer anrufen,
- 12:47verbringen Sie
- 12:48Ihren ganzen Morgen nur damit.
- 12:50Der PowerShell-Weg
- 12:51ist ein völlig anderer.
- 12:52Ein Befehl
- 12:53GetItUser
- 12:53Filter
- 12:54LockedOutEgtTrue
- 12:55findet jedes gesperrte Konto
- 12:56in Ihrer Domäne.
- 12:58Dann leiten Sie das per Pipe
- 12:59an UnlockedAccount weiter
- 12:59und das weiß auch schon.
- 13:00Das Skript findet die gesperrten Konten
- 13:02und entsperrt Sie.
- 13:02Danach leiten Sie das Ergebnis
- 13:03per Pipe an eine Protokollfunktion weiter
- 13:04oder exportieren es in einen Bericht.
- 13:06Sie haben eine Aufzeichnung darüber,
- 13:07was passiert ist,
- 13:07wann es geschah
- 13:08und welche Konten betroffen waren.
- 13:09Alles mit nur einer Zeile Code.
- 13:11Und genau das ist der Punkt.
- 13:12Dasselbe Muster funktioniert überall.
- 13:14Exchange, Postfächer,
- 13:15Teams, Kanäle, SharePoint, Websites,
- 13:16Azure Ressourcen,
- 13:17DCM-Blitz ändern sich.
- 13:18Aber die Pipeline bleibt gleich.
- 13:20Sie rufen etwas ab,
- 13:21filtern es,
- 13:21führen Aktionen aus
- 13:22und speichern das Ergebnis.
- 13:23Zum Beispiel
- 13:23GetMailbox.
- 13:24Nach einer Bedingung filtern,
- 13:25eine Eigenschaft festlegen
- 13:26als CSV exportieren
- 13:27oder ein Team abrufen,
- 13:28nach Mitgliedschaft filtern,
- 13:29ein Mitglied hinzufügen
- 13:30und die Änderung protokollieren.
- 13:31Das Muster ist jedes Mal identisch.
- 13:33Warum ist das wichtig?
- 13:34Sobald Sie die Pipeline verstehen,
- 13:35können Sie fast alles automatisieren.
- 13:37Das Muster ist dasselbe,
- 13:38egal ob Sie einen Benutzer
- 13:39oder tausend verwalten,
- 13:40einen Server oder hundert.
- 13:41Sie lernen das Muster einmal
- 13:42und wenden es überall an.
- 13:44Alles klar,
- 13:45Sie haben gesehen,
- 13:45was es ist und wie es funktioniert.
- 13:46Lassen Sie uns jetzt darüber sprechen,
- 13:47was Sie als Nächste tun sollten.
- 13:49Ihre ersten Schritte zur Automatisierung.
- 13:51Also, fangen Sie an.
- 13:52Öffnen Sie PowerShell
- 13:52und führen Sie GetHelp aus
- 13:53mit dem Erkunden zu Beginn.
- 13:54Geben Sie GetHelp, GetProcess ein
- 13:56und sehen Sie,
- 13:56was Ihnen angezeigt wird.
- 13:58Geben Sie dann
- 13:58GetHelp, GetServiceExamples ein
- 14:00und schauen Sie sich
- 14:00die praktischen Beispiele an.
- 14:02So lernen Sie das Tool
- 14:02direkt aus dem Tool heraus.
- 14:04Kein Suchen im Internet
- 14:05oder Anschauen von Tutorials nötig.
- 14:07Die Dokumentation ist direkt verfügbar.
- 14:08Wählen Sie als nächstes
- 14:09eine Aufgabe aus,
- 14:09die jede Woche.
- 14:10Vielleicht ist es das Überprüfen
- 14:11laufende Dienst auf einem Server,
- 14:12das Auflisten von Dateien
- 14:13in einem Ordner
- 14:14oder das Exportieren eines Berichts.
- 14:15Schreiben Sie einen Einzeller dafür
- 14:16und fangen Sie einfach an.
- 14:17Etwas wie GetService.
- 14:19Where objects start to seek warning.
- 14:20Das ist ein Einzeller.
- 14:21Fühlen Sie ihn aus,
- 14:22sehen Sie sich die Ausgabe an,
- 14:23speichern Sie sie.
- 14:23Sie haben gerade etwas automatisiert,
- 14:24das Sie früher manuell edit haben.
- 14:26Nutzen Sie dann GetCommand
- 14:27und GetMember,
- 14:27um zu entdecken, was möglich ist.
- 14:28Sie müssen nicht alles
- 14:29im Voraus wissen,
- 14:30nur wie Sie finden,
- 14:31was Sie brauchen.
- 14:32GetCommand now und Service
- 14:33zeigt dir jeden dienstbezogenen Befehl
- 14:35und GetProcess.
- 14:37GetMember zeigt dir jede Eigenschaft
- 14:38von Prozessobjekten.
- 14:40Das Tool sagt dir, was es kann,
- 14:41du musst nur danach fragen.
- 14:42Der beste erste Schritt
- 14:43ist ganz einfach.
- 14:44Automatisiere die Aufgabe,
- 14:45die du am häufigsten erledigst.
- 14:46Selbst ein einfacher Einzeller
- 14:47spart dir Zeit.
- 14:48Wenn du jeden Morgen Dienste prüfst,
- 14:49schreibe einen Einzeller,
- 14:50der das für dich erledigt.
- 14:52Wenn du jede Woche
- 14:52temporäre Dateien löscht,
- 14:53schreibe einen Einzeller dafür.
- 14:55Fange klein an
- 14:56und baue darauf auf.
- 14:57Und was kommt nun als nächstes?
- 14:58Microsoft Learn
- 14:59bietet kostenlose
- 15:00PowerShell-Lärmpfade.
- 15:01Sie sind strukturiert,
- 15:02praxisnah
- 15:02und völlig kostenlos.
- 15:04Die PowerShell Gallery
- 15:05hat tausende Community-Module,
- 15:06also hat wahrscheinlich
- 15:07schon jemand ein Modul
- 15:07für dein Vorhaben geschrieben.
- 15:09Äh,
- 15:10du musst das Rad
- 15:10nicht neu erfinden.
- 15:11PowerShell ist eine Fertigkeit,
- 15:12nicht nur ein Werkzeug.
- 15:13Je mehr du es nutzt,
- 15:14desto mehr verstehst du es.
- 15:15Du musst kein Entwickler sein.
- 15:17Du musst nur anfangen.
- 15:18Zehn Minuten am Tag reichen aus,
- 15:19um echte Fähigkeiten aufzubauen.
- 15:20Führe heute einen Befehl aus,
- 15:21morgen zwei
- 15:22und ehe du dich versiehst,
- 15:23automatisierst du Dinge,
- 15:23die du nie für möglich gehalten hättest.
- 15:25Das ist also PowerShell,
- 15:26die Sprache,
- 15:27die das gesamte Microsoft-Ökosystem
- 15:28verbindet.
- 15:29Öffne es und führ
- 15:30The Get Process aus,
- 15:31um zu sehen,
- 15:31wie es aussieht.
- 15:32Abonniere dann den Kanal
- 15:33für weitere Wissenshäppchen
- 15:34und schreibe in die Kommentare,
- 15:35was du automatisieren möchtest.
- 15:36Welche Aufgabe würdest du gerne automatisieren?
- 15:38Lass mich wissen.
- 15:39Vielleicht behandle ich sie
- 15:40in einer zukünftigen Folge.