PowerShell-Cmdlets, die Ihre Windows-Administratorfähigkeiten verbessern
Powershell ist der perfekte Weg für einen neuen Coder, um unter Windows zu starten. Powershell ist zu gleichen Teilen Befehlszeilentool und Skriptsprache. Sie haben die Möglichkeit, Ihren Computer mit denselben Befehlen zu automatisieren, die Sie zur Verwaltung der Eingabeaufforderung verwenden. Windows PowerShell: Was ist der Unterschied? Eingabeaufforderung im Vergleich zu Windows PowerShell: Was ist der Unterschied? Windows-Benutzer können ohne die Eingabeaufforderung oder die PowerShell auskommen. Aber mit Windows 10 und neuen Funktionen um die Ecke, ist es vielleicht an der Zeit, dass wir etwas gelernt haben. Weiterlesen . Wenn Sie ein modernes Windows-System haben, verfügen Sie bereits über Powershell. Die meisten ihrer Anwendungen sind Windows-zentrisch, aber Sie können Powershell auf einem Mac- oder Linux-Computer installieren. Installieren und Verwenden von PowerShell unter Linux. Installieren und Verwenden von PowerShell unter Linux. Im Jahr 2016 hat Microsoft die OpenShell-Version von PowerShell veröffentlicht . In diesem Artikel werde ich Ihnen zeigen, wie Sie PowerShell unter Linux installieren, ausführen und verwenden! Lesen Sie auch mehr.
Mit PowerShell arbeiten
Es gibt zwei Möglichkeiten, Powershell zu verwenden. Es gibt das grundlegende Befehlszeilenfenster, in dem Befehle ausgeführt oder vorgefertigte Skripts aufgerufen werden. Dann gibt es die ISE, die das CLI-Fenster mit einer grundlegenden Entwicklungsumgebung kombiniert. Damit können Sie Ihre Skripte schreiben und testen.
Die ISE verfügt über eine durchsuchbare Befehlsliste, und Sie können das Terminalfenster ohne geöffnete Datei verwenden. In der Befehlsliste können Sie Ihren Befehl erstellen und einfügen. Wenn Sie eine fortgeschrittenere Entwicklung durchführen, installieren Sie den Visual Studio-Code von Microsoft. Code enthält Unterstützung für die Git-Versionskontrolle. 10 Wichtige Tipps zur Produktivität für Visual Studio Code 10 Wichtige Tipps zur Produktivität für Visual Studio-Code Mit Visual Studio-Code werden andere Programmier-Texteditoren aus dem Wasser geblasen. Es ist kostenlos, Open Source, blitzschnell und voller Produktivitätsfunktionen. Lesen Sie mehr und andere Sprachen.
Powershell ist insofern einzigartig, als es ausschließlich aus Befehlen besteht. Microsoft nennt sie Cmdlets. Diese Befehle sind die gleichen, wenn Sie über die Befehlszeile arbeiten oder komplexe Skripts schreiben. Wenn Sie diese Befehle verwenden, können Sie darüber nachdenken, wie Sie sie aneinanderreihen, um Ihre ersten Skripts zu erstellen.
Die Grundlagen: Get-Command, Get-Help, Get-Member
Alle Powershell-Befehle haben die Form von Verb-Noun. Die Verben sind normalerweise: Get, Set und New.
Get-Command Damit können Sie jeden verfügbaren Befehl anzeigen. Wenn Sie Get-Command ausführen, sehen Sie, dass es unzählige Befehle gibt, die mit diesen beginnen.
Wenn Sie nur nach den Namen der Cmdlets suchen, werden Sie feststellen, dass sie alle eine ähnliche Struktur haben. Sie rufen sie mit dem Namen auf, genau wie bei Get-Command. Durch die Verwendung von Parametern wird geändert, welche Informationen Sie erhalten. Wenn Sie den Befehl jedoch nur mit Standardoptionen verwendet haben, wie finden Sie heraus, wie Sie erweiterte Parameter verwenden??
Verwendung der Hilfe erhalten Cmdlet mit Get-Command enthält weitere Informationen zum Cmdlet. 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 Anwendungsbeispiele 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. In diesem Hilfetext wird erläutert, was das Cmdlet und die Parameter beim Ausführen tun.
Wenn Sie die Hilfedatei in einem separaten Fenster anzeigen möchten, können Sie verwenden -Schaufenster. Also wenn du rennst:
Get-Help Get-Command -ShowWindow
Powershell öffnet ein Fenster mit der vollständigen Hilfedatei. Der Parameter Full muss hier nicht verwendet werden, da das Fenster den vollständigen Artikel anzeigt.
Wenn Sie mit Powershell fortgeschrittener werden, werden Sie feststellen, dass Sie Get-Member häufiger verwenden. Auf diese Weise können Sie auf einfache Weise feststellen, welche Felder in den zurückgegebenen Daten verfügbar sind, sowie andere Methoden, die Sie ausführen können. Cmdlets haben häufig eine -Eigentum Parameter, damit Sie diese aufrufen können.
Arbeiten mit Dateien: Get-ChildItem, Remove-Item, Move-Item, Copy-Item
Nun, da Sie eine Vorstellung davon haben, wie Cmdlets funktionieren und wie Sie Hilfe erhalten, nehmen wir Änderungen vor. Sie können den Inhalt eines jeden Ordners mit der Get-ChildItem Befehl. Beispielsweise können Sie die Dateien eines gesamten Laufwerks mit dem Laufwerksbuchstaben abrufen. Eingeben:
Get-ChildItem E: \
Welches ist kurz für:
Get-ChildItem -Path E: \
Wenn Sie diesen Befehl ausführen, erhalten Sie eine Liste mit Dateien, deren letzte Schreibzeit, Größe unter der Eigenschaft Länge, Name und Modus liegt. Der Modus ist das Attribut 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
- ReparsePoint
- Komprimiert
- Offline
- NotContentIndexed
- Verschlüsselt
Wenn Sie den Inhalt aller Unterverzeichnisse in einem Pfad abrufen möchten, verwenden Sie die -Recurse Parameter. Also dann laufen:
Get-ChildItem -Path E: \ -Recurse
Ihre Dateien erscheinen dann als separate Listen für jeden Ordner im Pfad.
Um die zurückgegebenen Daten zu begrenzen, können Sie verschiedene Parameter verwenden: -Datei, -Versteckt, und -Schreibgeschützt. Wenn Sie nach den Dateinamen filtern möchten, können Sie im Parameter Path Platzhalter verwenden. Geben Sie Folgendes ein, um alle DOC-Dateien in einem Verzeichnis zurückzugeben:
Get-ChildItem -Path E: \ *. Doc
Wieder hinzufügen -wiederkehren wenn Sie alles aus den Unterordnern haben wollten.
Wenn Sie eine Datei löschen möchten, verwenden Sie:
Remove-Item -Path E: \ OldFile.txt
Um die Bestätigung der einzelnen Dateien zu überspringen, fügen Sie den Parameter hinzu -$ False bestätigen (Powershell hat zwei Konstanten für boolesche Werte: $ true und $ false). Um das Entfernen von schreibgeschützten oder versteckten Dateien zu erzwingen, verwenden Sie die -Macht Parameter.
Das Verschieben von Dateien ist genauso einfach. Um alles in einem Ordner von Ihrem Flash-Laufwerk auf das lokale Laufwerk zu verschieben, gehen Sie folgendermaßen vor:
Move-Item -Pfad E: \ * -Destination C: \ FlashDriveArchive
Sie können auch eine einzelne Datei in -Path angeben, um nur diese Datei zu verschieben. Um die Datei zu kopieren, anstatt sie zu verschieben, verwenden Sie dieselbe Syntax wie Artikel kopieren Cmdlet.
Überwachen und Arbeiten mit Prozessen und Services
Jeder Windows-Benutzer kennt Task Manager 5 Leistungsfähige Alternativen zum Windows Task Manager 5 Leistungsfähige Alternativen zum Windows Task Manager Task Killer wäre ein besserer Name für den systemeigenen 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 einen schnelleren Weg, um die aktuell aus Powershell laufenden Prozesse zu sehen, Get-Process. 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 der mit Get-Process verknüpften Methoden und Eigenschaften aus. Die Informationen oben sind das, woran Sie interessiert sind. Sie sehen, dass die verschiedenen Arten von Speicher Aliase haben.
Wir können auch aus dieser Ausgabe sehen, dass wir das bekommen können Produkt Eigenschaft, um einen freundlicheren Namen für die Prozesse zu erhalten. Ändern wir die Ausgabe, damit wir bessere Informationen haben, mit denen wir arbeiten können:
Get-Process | Produktauswahl, NPM, CPU, Name, ID | Sort-Object-CPU - Absteigend
(Weitere Informationen zu Select-Object und Sort-Object finden Sie im nächsten Abschnitt.)
Da Sie jetzt die ID Ihres Befehls Get-Process haben, können Sie sie mit dem Cmdlet Stop-Process anhalten. Wenn Sie also feststellen, dass ein Chrome-Prozess all Ihre Ressourcen auffrisst, suchen Sie die ID im vorherigen Befehl. Dann renne:
Stop-Prozess -ID 45960
Ersetzen 49560 mit der ID Ihrer Ressource.
Mit dem Dateipfad können Sie einen Prozess mit Powershell starten. Führen Sie den folgenden Befehl aus, um Chrome zu starten:
Start-Process-Pfad "C: \ Programme (x86) GoogleChromeApplicationchrome.exe"
(Aufgrund der Leerzeichen müssen Sie die Anführungszeichen um den Dateipfad setzen.) -ArgumentList Mit diesem Parameter können Sie Befehlszeilenoptionen an die Anwendung übergeben. Im Falle von Chrome können Sie den Start im Inkognito-Modus mithilfe von starten -inkognito Flagge. Das gesamte Cmdlet lautet:
Start-Prozess -Filepath "C: \ Programme (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"
Die meisten dieser Dinge können Sie mit Services tun. Steuern von ausgeführten Diensten mit dem SC-Befehl [Windows] Steuern von ausgeführten Diensten mit dem SC-Befehl [Windows] Eines der Dinge, die ich seit dem Einstieg in die IT-Abteilung häufiger finde überwacht und überprüft den Status von Diensten, die auf Computern ausgeführt werden, die unternehmensweit ausgeführt werden. Es gibt… Weiterlesen . Get-Service Zeigt eine Liste aller Dienste an, die auf Ihrem Computer ausgeführt werden. Genauso wie Starten und Stoppen von Diensten, die Sie verwenden können Dienst starten und Dienst anhalten.
Mit Daten arbeiten: Sort-Object, Select-Object, Where-Object
Wenn Sie mit den Daten eines Cmdlets arbeiten, ist dies möglicherweise nicht immer die gewünschte Reihenfolge. In diesen Fällen möchten Sie die Sortierobjekt. Sie können Sort-Object für eine von Ihnen erstellte Variable aufrufen. In erster Linie wird dies jedoch durch Pipe eines anderen Cmdlets verwendet. Wie im obigen Beispiel leiten wir die Ausgabe eines Objekts an ein anderes und sortieren es. Erstellen wir ein Array aus drei Zufallszahlen und leiten es an Sort-Object.
Alles in Klammern läuft zuerst. Erstellen Sie ein einfaches Array mit:
$ (Get-Random), $ (Get-Random), $ (Get-Random)
Beachten Sie unbedingt die Kommas, die die Werte voneinander trennen. Um also die Zufallszahlen sortiert zu sehen:
$ (Get-Random), $ (Get-Random), $ (Get-Random) | Sortierobjekt
Das Cmdlet gibt die Zahlen vom kleinsten zum größten aus, wenn Sie es umkehren möchten -Absteigend.
Wenn Sie Cmdlets an Get-Member weiterleiten, gibt es mehr Eigenschaften als die Standardausgabe. Sie wählen bestimmte Eigenschaften mit aus Objekt auswählen.
Genau wie Sort-Object verwenden Sie Select-Object über ein gepipstes Cmdlet. Um beispielsweise eine Tabelle mit Diensten und deren Status zu generieren, verwenden Sie Folgendes:
Get-Service | Select-Object DisplayName, Status
Während die Ausgabe all dieser Daten schön ist, was ist, wenn Sie nur bestimmte Daten sehen möchten? Get-ChildItem enthält einige integrierte Filter, die meisten Befehle jedoch nicht. In diesen Fällen verwenden Sie Wo-Objekt.
Wenn Sie wieder zu den Diensten zurückkehren, werden Sie dieses Mal nur noch laufende Dienste erhalten. Geben Sie das Cmdlet ein:
Get-Service | Where-Object Status -eq "Läuft"
Das -Gl im vergleich ist powershell für =. In Powershell führen Sie Vergleiche mit Buchstabenkombinationen durch:
- eq: gleich
- ne: nicht gleich
- Es ist weniger als
- gt: größer als
- ge: größer oder gleich
- le: kleiner oder gleich
- wie: Verwendung wie bei Wildcard-Vergleichen
Formatierungshilfe: Format-Tabelle und Format-Liste.
Bei diesen verschiedenen Cmdlets wurden die meisten Ausgaben in Tabellenformaten erstellt. Dadurch werden die Daten in Zeilen und Spalten mit Kopfzeilen angezeigt. Um Einträge mit ihren Eigenschaften einzeln anzuzeigen, leiten Sie das Cmdlet an Format-Liste.
Manchmal haben Sie eine Ausgabe, die für das Powershell-Fenster zu breit wird. Wenn dies geschieht, zwingt Powershell es in eine Listenausgabe. Um sicherzugehen, dass Sie es im Tabellenformat behalten, geben Sie Ihre Ausgabe an Format-Tabelle.
Von der Befehlszeile zur Skripterstellung: Nächste Schritte
Wenn Sie sich erst einmal mit dem Skript vertraut gemacht haben, müssen Sie die Cmdlets eingeben. Steigern Sie Ihre Produktivität mit Windows PowerShell-Skripts Steigern Sie Ihre Produktivität mit Windows PowerShell-Skripten. Die meisten Linux-Distributionen werden mit der leistungsstarken Bash-Shell geliefert. PowerShell ist ein ebenso leistungsfähiges Terminal für Windows. Lesen Sie mehr in einer Textdatei und speichern Sie sie. Wenn Sie nervös sind, wenn Sie versuchen, Skript zu schreiben, dann seien Sie nicht dabei. Microsoft verfügt über eine enorme Menge an Dokumentation zu jedem Cmdlet. Dies ist mehr als nur die langwierige Hilfedokumentation. Schauen Sie sich also Technet an.
Wenn Sie Powershell lernen, teilen Sie uns in den Kommentaren mit, auf was Sie sich besonders freuen. Wenn Sie etwas mehr Erfahrung haben, würden wir uns über weiterführende Themen freuen, die Sie gerne behandelt hätten.
Erfahren Sie mehr über: PowerShell, Scripting.