Powershell-Cmdlets, die Ihre Windows-Administratorfähigkeiten verbessern

Powershell ist das gleiche Kommandozeilenwerkzeug und die gleiche Skriptsprache. Es gibt Ihnen die Möglichkeit, Ihren Computer über die gleichen Befehle zu automatisieren, die Sie zum Verwalten verwenden.

Powershell ist das gleiche Kommandozeilenwerkzeug und die gleiche Skriptsprache.  Es gibt Ihnen die Möglichkeit, Ihren Computer über die gleichen Befehle zu automatisieren, die Sie zum Verwalten verwenden.
Werbung

Powershell ist eine perfekte Möglichkeit für einen neuen Programmierer, um mit Windows zu beginnen. Powershell ist das gleiche Kommandozeilenwerkzeug und die gleiche Skriptsprache. Es gibt Ihnen die Möglichkeit, Ihren Computer über die gleichen Befehle zu automatisieren, die Sie für die Verwaltung der Befehlseingabe im Vergleich zu Windows PowerShell verwenden: Was ist der Unterschied? Eingabeaufforderung und Windows PowerShell: Was ist der Unterschied? Windows-Benutzer können ohne Eingabeaufforderung oder PowerShell auskommen. Aber mit Windows 10 und neuen Funktionen um die Ecke ist es vielleicht an der Zeit, dass wir es gelernt haben. Weiterlesen . Wenn Sie ein modernes Windows-System haben, haben Sie bereits Powershell. Die meisten seiner Anwendungen sind Windows-zentriert, aber Sie können PowerShell auf einem Mac oder Linux-Computer installieren. Installieren und Verwenden von PowerShell unter Linux So installieren und verwenden Sie PowerShell unter Linux Im Jahr 2016 debuggte Microsoft Open-Source-PowerShell und eine plattformübergreifende Iteration . In diesem Artikel werde ich Ihnen zeigen, wie Sie PowerShell unter Linux installieren, ausführen und verwenden! Lesen Sie auch mehr.

Arbeiten mit Powershell

Powershell kann auf zwei Arten verwendet werden. Es gibt das grundlegende Befehlszeilenfenster, das zum Ausführen von Befehlen oder zum Aufrufen vordefinierter Skripts verwendet wird. Dann gibt es die ISE, die das CLI-Fenster mit einer grundlegenden Entwicklungsumgebung kombiniert. Mit diesem können Sie Ihre Skripte schreiben und testen.

Die ISE verfügt über eine durchsuchbare Liste von Befehlen, und Sie können das Terminalfenster ohne geöffnete Datei verwenden. Die Befehlsliste ermöglicht es Ihnen, Ihren Befehl zu erstellen und einzufügen. Wenn Sie eine erweiterte Entwicklung durchführen, installieren Sie Microsoft Visual Studio Code. Der Code enthält Unterstützung für die Versionskontrolle in Git 10 Wichtige Produktivitätstipps für Visual Studio-Code 10 Wesentliche Produktivitätstipps für Visual Studio-Code Visual Studio Code lässt andere Programmtext-Editoren aus dem Wasser. Es ist kostenlos, Open Source, blitzschnell und voller Produktivitätsfunktionen. Lesen Sie mehr und andere Sprachen.

Powershell-Befehlszeile

Powershell ist insofern einzigartig, als es vollständig aus Befehlen besteht, Microsoft nennt sie Cmdlets. Diese Befehle sind identisch, wenn Sie über die Befehlszeile arbeiten oder komplexe Skripts schreiben. Wenn Sie diese Befehle verwenden, können Sie überlegen, wie Sie sie aneinander reihen, um Ihre ersten Skripts zu erstellen.

Die Grundlagen: Get-Command, Get-Hilfe, Get-Member

Alle Powershell-Befehle haben die Form Verb-Substantiv. Die Verben sind in der Regel: Get, Set und New .

Mit Get-Command können Sie jeden verfügbaren Befehl anzeigen. Wenn Sie Get-Command ausführen, sehen Sie, dass es viele Befehle gibt, die damit beginnen.

Wenn Sie nur von den Namen der Cmdlets fortfahren, werden Sie feststellen, dass sie alle eine ähnliche Struktur haben. Sie rufen sie mit dem Namen auf, genau wie Sie es mit Get-Command getan haben. Die Verwendung von Parametern ändert die Informationen, die Sie erhalten. Wenn Sie jedoch nur den Befehl mit Standardoptionen verwendet haben, wie finden Sie heraus, wie erweiterte Parameter verwendet werden?

Powershell-Hilfe

Wenn Sie das Get-Help- Cmdlet mit Get-Command verwenden, werden weitere Informationen zum Cmdlet angezeigt. Wir verwenden das Cmdlet mit der folgenden Syntax:

Get-Help Get-Command 

Sie sehen dann die grundlegenden Informationen zu den Parametern. Wenn Sie die Parameterdetails und einige Verwendungsbeispiele anzeigen möchten, fügen Sie den Parameter -Full hinzu.

Wenn Sie nur die Beispiele sehen möchten, können Sie Folgendes ausführen:

 Get-Help Get-Command -Examples 

Dieses Cmdlet gibt nur die Beispiele aus der Hilfedatei zurück. Diese Beispiele sind sehr hilfreich, da sie Beschreibungen enthalten. Dieser Hilfetext erläutert, was das Cmdlet und die Parameter bei der Ausführung tun.

Hilfefenster

Wenn Sie die Hilfedatei in einem separaten Fenster öffnen möchten, können Sie -ShowWindow verwenden . Also wenn du rennst:

 Get-Help Get-Command -ShowWindow 

Powershell öffnet ein Fenster mit der vollständigen Hilfedatei. Sie müssen hier nicht den Parameter Full verwenden, da das Fenster den gesamten Artikel enthält.

Wenn Sie mit Powershell weiterkommen, werden Sie feststellen, dass Sie Get-Member häufiger verwenden. Es ist eine einfache Möglichkeit zu sehen, welche Felder aus zurückgegebenen Daten verfügbar sind, sowie andere Methoden, die Sie ausführen können. Oft verfügen Cmdlets über den Parameter -Property, über den Sie diese aufrufen können.

Mit Dateien arbeiten: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

Jetzt, da Sie eine Vorstellung davon haben, wie Cmdlets funktionieren und wie Sie Hilfe erhalten, nehmen wir Änderungen vor. Mit dem Befehl Get-ChildItem können Sie den Inhalt eines beliebigen Ordners abrufen . Beispielsweise können Sie die Dateien eines gesamten Laufwerks mit dem Laufwerksbuchstaben abrufen. Eingeben:

 Get-ChildItem E:\ 

Was ist kurz für:

 Get-ChildItem -Path E:\ 

Wenn Sie diesen Befehl ausführen, erhalten Sie eine Liste von Dateien mit der letzten Schreibzeit, Größe unter der Eigenschaft Länge, Name und Modus. Der Modus ist die Attribute einer Datei oder eines Ordners AttributeMagic Free: Ändern der Dateieigenschaften in Windows AttributeMagic Free: Ändern der Dateieigenschaften in Windows Weitere Informationen. Die möglichen Einträge sind:

  • Schreibgeschützt
  • Versteckt
  • System
  • Verzeichnis
  • Archiv
  • Gerät
  • Normal
  • Temporär
  • SparseFile
  • Reparsepunkt
  • Komprimiert
  • Offline
  • NotContentIndexed
  • Verschlüsselt

Wenn Sie den Inhalt aller Unterverzeichnisse in einem Pfad abrufen möchten, verwenden Sie den Parameter -Recurse . Also dann:

 Get-ChildItem -Path E:\ -Recurse 

Ihre Dateien werden dann als separate Listen für jeden Ordner im Pfad ausgegeben.

powershell get-childitem

Um die zurückgegebenen Daten einzuschränken, können Sie einige verschiedene Parameter verwenden: -Datei, -Hidden und -ReadOnly . Wenn Sie nach den Namen der Datei filtern möchten, können Sie Platzhalter im Path-Parameter verwenden. Geben Sie Folgendes ein, um alle .doc-Dateien in einem Verzeichnis zurückzugeben:

 Get-ChildItem -Path E:\*.doc 

Erneut hinzufügen -recurse, wenn Sie auch alles aus den Unterordnern haben wollten.

Wenn Sie eine Datei löschen wollen, benutzen Sie:

 Remove-Item -Path E:\OldFile.txt 

Um das Bestätigen jeder Datei zu überspringen, fügen Sie den Parameter -Confirm $ false hinzu (Powershell hat zwei Konstanten für boolesche Werte: $ true und $ false). Um das Entfernen von schreibgeschützten oder versteckten Dateien zu erzwingen, verwenden Sie den Parameter -Force .

Das Verschieben von Dateien ist genauso einfach. Um alles von Ihrem Flash-Laufwerk auf das lokale Laufwerk in einem Ordner zu verschieben, verwenden Sie:

 Move-Item -Path E:\* -Destination C:\FlashDriveArchive 

Sie können auch eine einzelne Datei in -Path benennen, um nur diese Datei zu verschieben. Um die Datei zu kopieren, anstatt sie zu verschieben, verwenden Sie dieselbe Syntax für das Cmdlet Copy-Item .

Überwachen und Arbeiten mit Prozessen und Services

Jeder Windows-Benutzer kennt Task-Manager 5 Leistungsstarke Alternativen zum Windows-Task-Manager 5 Leistungsstarke Alternativen zum Windows-Task-Manager Task Killer wäre ein besserer Name für den nativen Windows-Task-Manager, da wir ihn nur dazu bringen, nicht reagierende Prozesse zu beenden. Mit alternativen Task Managern können Sie Ihre Prozesse tatsächlich verwalten. Weiterlesen . Es gibt jedoch eine schnellere Möglichkeit, die aktuell ausgeführten Prozesse von Powershell, Get-Process aus zu sehen . Wenn Sie wissen möchten, was alle Einträge in dieser Tabelle bedeuten, leiten Sie den Befehl an Get-Member . Geben Sie das Cmdlet ein:

 Get-Process | Get-Member 

Get-Member gibt eine Liste von Methoden und Eigenschaften aus, die mit Get-Process verknüpft sind. Die Information an der Spitze ist, was Sie interessiert. Sie sehen, dass die verschiedenen Arten von Speicher Aliase haben.

Powershell-Get-Prozess

Aus dieser Ausgabe können wir auch sehen, dass wir die Product- Eigenschaft erhalten können, um den Prozessen einen freundlicheren Namen zu geben. Lassen Sie uns die Ausgabe ändern, damit wir bessere Informationen haben, mit denen wir arbeiten können:

 Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending 

(Im nächsten Abschnitt finden Sie weitere Informationen zu Select-Object und Sort-Object.)

Jetzt, da Sie die ID von Ihrem Get-Process-Befehl haben, können Sie sie mit dem Cmdlet Stop-Process stoppen. Wenn Sie feststellen, dass ein Chrome-Prozess alle Ihre Ressourcen in Mitleidenschaft zieht, suchen Sie die ID im vorherigen Befehl. Dann renne:

 Stop-Process -ID 45960 

Ersetzen Sie 49560 durch die ID Ihres Ressourcen-Hogs.

Mit dem Dateipfad können Sie einen Prozess mit Powershell starten. Führen Sie den folgenden Befehl aus, um Chrome zu starten:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" 

(Wegen der Leerzeichen müssen Sie die Anführungszeichen um den Dateipfad haben.) Mit dem Parameter -ArgumentList können Sie Befehlszeilenoptionen an die Anwendung übergeben. Im Fall von Chrome können Sie im Inkognito-Modus die Verwendung des -incognito- Flags erzwingen . Das gesamte Cmdlet ist:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito" 

Powershell-Service

Sie können die meisten der gleichen Dinge mit Diensten tun So steuern Sie laufende Dienste mit dem SC-Befehl [Windows] So steuern Sie laufende Dienste mit dem SC-Befehl [Windows] Eines der Dinge, die ich selbst mache viel öfter seit Tauchen in IT überwacht und überprüft den Status von Diensten, die auf Computern ausgeführt werden, die unternehmensweit ausgeführt werden. Es gibt ... Lesen Sie mehr. Get-Service zeigt Ihnen eine Liste aller Dienste, die auf Ihrem Computer ausgeführt werden. Dasselbe gilt für Start- und Stoppdienste, Sie können Start-Service und Stop-Service verwenden .

Mit Daten arbeiten: Sort-Object, Select-Object, Where-Object

Wenn Sie mit den Daten eines Cmdlets arbeiten, ist möglicherweise nicht immer die gewünschte Reihenfolge vorhanden. In diesen Fällen möchten Sie das Sort-Objekt verwenden . Sie können Sort-Object für eine Variable aufrufen, die Sie erstellt haben. In erster Linie wird sie jedoch verwendet, indem Sie ein anderes Cmdlet weiterleiten. Wie im obigen Beispiel pipesieren wir die Ausgabe eines Objekts zu einem anderen und sortieren es. Lassen Sie uns ein Array aus drei Zufallszahlen erstellen und es zu Sort-Object leiten.

Alles in Klammern wird zuerst ausgeführt. Erstellen Sie ein einfaches Array mit:

 $(Get-Random), $(Get-Random), $(Get-Random) 

Achten Sie darauf, die Kommas zu beachten, die die Werte trennen. Um die sortierten Zufallszahlen zu sehen, gehen Sie folgendermaßen vor:

 $(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object 

Das Cmdlet gibt die Zahlen vom kleinsten zum größten Wert aus . Wenn Sie es umkehren möchten, fügen Sie hinzu - Absteigend .

Powershell-Sortierobjekt

Wenn Sie Cmdlets an Get-Member übergeben, gibt es mehr Eigenschaften als die Standardausgabe. Sie wählen bestimmte Eigenschaften aus, indem Sie Select-Object verwenden .

Genau wie Sort-Object verwenden Sie Select-Object über ein Piped-Cmdlet. Um beispielsweise eine Tabelle von Services und ihren Status zu generieren, verwenden Sie Folgendes:

 Get-Service | Select-Object DisplayName, Status 

Während der Ausgabe all dieser Daten ist nett, was ist, wenn Sie nur bestimmte Daten sehen wollen? Get-ChildItem verfügt über eine integrierte Filterfunktion, die meisten Befehle jedoch nicht. In diesen Fällen verwenden Sie Where-Object .

Powershell Where-Objekt

Wenn Sie zu den Diensten zurückkehren, werden Sie dieses Mal nur Dienste erhalten. Geben Sie das Cmdlet ein:

 Get-Service | Where-Object Status -eq "Running" 

Das -eq im Vergleich ist Powershell für = . In Powershell führen Sie Vergleiche mit Buchstabenkombinationen durch:

  • Äquiv .: gleich
  • ne: nicht gleich
  • lt: weniger als
  • gt: größer als
  • ge: größer oder gleich
  • le: kleiner oder gleich
  • like: verwende wie in Wildcard-Vergleichen

Formatierungshilfe: Format-Tabelle und Format-Liste.

Für diese verschiedenen Cmdlets wurde der größte Teil der Ausgabe in Tabellenformaten ausgegeben. Dies zeigt die Daten in Zeilen und Spalten mit Kopfzeilen an. Um Einträge anzuzeigen, die mit ihren Eigenschaften einzeln aufgeführt sind, leiten Sie das Cmdlet an Format-List .

Powershell-Format-Liste

Manchmal haben Sie eine Ausgabe, die für das Powershell-Fenster zu groß wird. Wenn dies geschieht, zwingt Powershell es in eine Listenausgabe. Um sicherzustellen, dass Sie es im Tabellenformat behalten, leiten Sie Ihre Ausgabe an Format-Tabelle .

Von der Befehlszeile zu Scripting: Nächste Schritte

Sobald Sie sich wohl fühlen, müssen Sie beim Scripting die Cmdlets eingeben. Steigern Sie Ihre Produktivität mit Windows PowerShell-Skripten Steigern Sie Ihre Produktivität mit Windows PowerShell-Skripts Was wäre, wenn Sie die Produktivität von Linux auf Windows übertragen könnten? Die meisten Linux-Distributionen sind mit der leistungsstarken Bash-Shell ausgestattet. PowerShell ist ein ebenso leistungsstarkes Terminal für Windows. Lesen Sie mehr in einer Textdatei und speichern Sie es. Wenn Sie nervös sind, Skripting zu versuchen, seien Sie nicht. Microsoft verfügt über eine enorme Menge an Dokumentation für jedes Cmdlet. Dies ist über die bereits lange Hilfe-Dokumentation hinaus, so achten Sie darauf, Technet zu überprüfen.

Wenn Sie Powershell lernen, teilen Sie uns in den Kommentaren mit, worauf Sie am meisten gespannt sind. Wenn Sie ein bisschen mehr Erfahrung haben, würden wir gerne etwas über erweiterte Themen erfahren, die Sie gerne sehen würden.

In this article