Was ist PowerShell? So öffnen Sie PowerShell, alle Methoden Was ist Windows PowerShell?

💖 Gefällt es dir? Teilen Sie den Link mit Ihren Freunden
73095

Und die Speisekarte studieren Windows-Start 7 oder Initiale Windows-Bildschirm 8 1 entdecken unerfahrene Benutzer häufig Anwendungen, deren Zweck sie nicht verstehen. Eine solche Anwendung ist PowerShell. Was ist diese PowerShell und ist sie von Nutzen? Nun, da jemand es erfunden und in Windows integriert hat, bedeutet es, dass es doch einen Sinn ergibt. Das ist übrigens der Erfinder von PowerShell Microsoft-Unternehmen.


Also, . Diese Anwendung ist in erster Linie für gedacht Systemadministratoren, und hier normale Benutzer Insbesondere Anfänger werden davon kaum profitieren. PowerShell ist eine moderne standardisierte Shell Befehlszeile, was eine größere Flexibilität bei der computergestützten Verwaltung bietet Betriebssystem Windows. Im Wesentlichen ist PowerShell dasselbe Befehlszeile, aber nur viel funktionaler.

Was kann dieses Verwaltungstool? Viele Dinge. Mit seiner Hilfe können Systemadministratoren und fortgeschrittene Benutzer Prozesse, Dienste, Dateispeicher, Konten und sogar Server verwalten. Die Shell ermöglicht Ihnen auch das Ausführen externe Befehle, mit Objekten arbeiten .NETZ, COM Und XML, führen Sie verschiedene Tricks usw. aus, erstellen und führen Sie Ihre eigenen Szenarien durch. Zum Schreiben von Skripten in Windows gibt es übrigens eine spezielle grafische Konsole I.S.E., eine Art Ergänzung zur Haupt-PowerShell-Shell.

Genau wie die Konsole CMD, PowerShell verfügt über einen eigenen Befehlssatz, sogenannte Cmdlets. Das Dienstprogramm erkennt viele der CMD-Befehle, aber im Allgemeinen unterscheiden sich die Sprachsyntax, die Definitionen von Cmdlets und ihre Parameter von dem, was Benutzer von einer normalen Befehlszeile gewohnt sind. Darüber hinaus sind bekannte Befehle wie dir , CD , Kopieren usw., die von PowerShell perfekt verstanden werden, sind eigentlich Aliase. Zum Beispiel der Befehl Dir , zum Betrachten verwendet Dateisystem entspricht dem nativen Cmdlet Get-ChildItem. Pseudonyme oder wie sie sagen Aliase dienen lediglich der Zweckmäßigkeit.

Für einen unerfahrenen Benutzer wird es nicht einfach sein, PowerShell zu verstehen, insbesondere wenn er zumindest mit den Grundlagen einer normalen Befehlszeile nicht vertraut ist. Aber es gibt nicht so viele Handbücher und Nachschlagewerke, die klar genug und leicht verständlich sind. Es gibt einen guten Leitfaden von Frank Koch, dessen Lektüre wir empfehlen, wenn Sie sich entscheiden, mit dem Erlernen der PowerShell-Skriptsprache zu beginnen. Nun, und natürlich das Shell-eigene Hilfesystem.

Es ist kraftvoll und umfassend und enthält viele konkrete Beispiele. Es ist ganz einfach zu bedienen. Das Cmdlet zeigt grundlegende Informationen zum Hilfesystem an Hilfe bekommen. Das Cmdlet zeigt eine Liste aller verfügbaren Befehle an.

PowerShell verfügt über eine Reihe von Ausführungsmodi, die bestimmen, welche Art von Code ausgeführt werden darf. Dies alles wird durch einen Registrierungsschlüssel gesteuert, der in HKLM gespeichert ist. Es gibt 4 unterschiedlicher Modus Hinrichtungen:

Begrenzt(Eingeschränkt): Die Standardausführungsrichtlinie lässt die Ausführung von Skripts nicht und nur die Ausführung interaktiver Befehle zu.

Alle unterschrieben(Alle signiert): Ermöglicht die Ausführung aller Skripte. Zwar müssen alle Skripts und Konfigurationsdateien von einem vertrauenswürdigen Herausgeber signiert sein; Dieser Modus setzt Sie dem Risiko aus, signierte (aber bösartige) Skripte auszuführen, nachdem Sie eine Vertrauensbestätigung vom Herausgeber erhalten haben.

Gelöscht signiert(Remote Signed): Lokale Skripte funktionieren ohne Signatur. Alle heruntergeladenen Skripte müssen digital signiert sein.

Unbegrenzt(Uneingeschränkt): Alle Skripte und Konfigurationsdateien, die von Kommunikationsanwendungen empfangen werden, z Microsoft Outlook, Internet Explorer, Outlook Express und Windows Messenger Arbeiten Sie erst, nachdem Sie bestätigt haben, dass Sie verstehen, dass die Datei aus dem Internet stammt. keiner digitale Signaturen nicht benötigt; Dieser Modus setzt Sie dem Risiko aus, nicht signierte, bösartige Skripte auszuführen.

Standardmäßig verwendet PowerShell den eingeschränkten Modus. In diesem Modus funktioniert PowerShell nur als interaktive Shell. Die Ausführung von Skripten ist nicht möglich und es werden nur Konfigurationsdateien geladen, die von einem vertrauenswürdigen Herausgeber signiert sind.

Wenn Sie einen störenden roten Fehler erhalten, liegt das in den meisten Fällen daran, dass Sie versuchen, ein nicht signiertes Skript auszuführen. Der sicherste Weg, dieses Problem zu lösen, besteht darin, die Ausführungsrichtlinie auf „uneingeschränkt“ zu ändern, das Skript auszuführen und dann wieder auf die eingeschränkte Richtlinie umzustellen.

Um die Ausführungsrichtlinie auf „uneingeschränkt“ zu ändern, führen Sie den folgenden Befehl in der administrativen PowerShell aus:

Set-ExecutionPolicy Uneingeschränkt

Sie sehen eine Bestätigungsanfrage. Drücken Sie Enter.

Jetzt können Sie das heruntergeladene Skript ausführen. Sie setzen sich jedoch einem ernsthaften Risiko aus. Stellen Sie daher sicher, dass die Ausführungsrichtlinie nach Abschluss der Ausführung des Skripts wieder auf den eingeschränkten Modus zurückgesetzt wird. Sie können dies mit dem folgenden Befehl tun:

Set-ExecutionPolicy eingeschränkt

Es erscheint erneut eine Bestätigungsanfrage. Drücken Sie Enter.

Das ist alles! Viel Erfolg!

Es gibt ein paar auf verschiedene Arten Beim Ausführen des Skripts sind unten die wichtigsten aufgeführt:

  1. Starten Sie PowerShell und führen Sie das Skript darin aus (geben Sie den Pfad zur Datei und den Dateinamen ein, zum Beispiel so: C:\Scripts\test.ps1, oder gehen Sie mit dem Befehl cd C:\Scripts zum Skriptordner und führen Sie es aus mit dem Befehl.\test.ps1) Die Shell kann auf viele Arten gefunden und gestartet werden. Eine Möglichkeit ist über das Startmenü. Für Windows 7 müssen Sie zu „Alle Programme“ – „Zubehör“ – „ Windows PowerShell" und starten Sie die Shell „Windows PowerShell“. Für Windows 10 müssen Sie die Gruppe mit dem Buchstaben „W“ finden und darin finden Sie „Windows PowerShell“.
  2. Starten Sie „Windows PowerShell ISE“ ist ein Programm – eine Entwicklungsumgebung, mit der Sie PowerShell-Skripte bearbeiten und debuggen können, die standardmäßig zusammen mit PowerShell selbst verfügbar ist. Nachdem Sie es gestartet haben, müssen Sie nur noch auf die Schaltfläche „Öffnen“ klicken oder zum Menü „Datei – Öffnen“ gehen und das gewünschte Skript auswählen und dann F5 oder die Schaltfläche „Skript ausführen“ drücken. Sie finden Windows PowerShell ISE an derselben Stelle wie die PowerShell-Shell – im Startmenü.
  3. Starten Sie die Standardbefehlszeile und schreibe hinein:
    Powershell-Datei<имя_скрипта> (Beispiel: powershell -file myscript.ps1)

Wenn Sie noch nie PowerShell-Skripte ausgeführt haben, erhalten Sie wahrscheinlich die folgende Meldung: Datei kann nicht heruntergeladen werden<имя_скрипта>, da die Skriptausführung für dieses System verboten ist. Geben Sie „get-help about_signing“ ein, um weitere Informationen zu erhalten. Dies geschieht aus Sicherheitsgründen und um eine versehentliche Ausführung zu verhindern Schadcode, alle Skripte müssen digital signiert sein.

Wie erlaube ich die Ausführung eines nicht signierten PowerShell-Skripts?

1. In PowerShell Führen Sie vor dem Ausführen des Skripts den Befehl aus, um die Ausführung nicht signierter Skripts für die aktuelle Shell-Sitzung zu ermöglichen:

Set-ExecutionPolicy RemoteSigned -Scope-Prozess

2. Beim Start über die Standardbefehlszeile Verwenden Sie den Parameter -executionpolicy, d. h. Führen Sie das Skript wie folgt aus:

<имя_скрипта>

Bei beiden Methoden wird die Richtlinie nur für die aktuelle Sitzung festgelegt, während die Sicherheitsrichtlinie für die Ausführung von PowerShell-Skripten, die in die Registrierung geschrieben werden, nicht geändert wird und gleich bleibt. Wenn Sie die Sicherheitsrichtlinie für die Skriptausführung auf „permanent“ ändern möchten, verwenden Sie diese Methode:

3. Start für immer zulassen: Starten Sie PowerShell als Administrator und führen Sie dann den Befehl aus:

Set-ExecutionPolicy RemoteSigned

Notiz: Wenn das Skript aus dem Internet heruntergeladen wurde, müssen Sie Bypass anstelle von RemoteSigned verwenden, um eine Aufforderung zur Bestätigung des Starts zu vermeiden. vollständige Abschaltung etwaige Wünsche und Warnungen.

Wie führe ich ein PowerShell-Skript im Hintergrund aus?

Verwenden Sie dazu einfach den Startparameter -WindowStyle, der die folgenden Werte annehmen kann: Normal, Minimized, Maximized und Hidden. Also, um ein nicht signiertes Skript auszuführen Hintergrund, müssen Sie den folgenden Befehl ausführen:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file<имя_скрипта>

Sie können bei Bedarf auch -NonInteractive hinzufügen, damit das Skript keine Fragen stellt. Somit wird das Skript vom Benutzer unbemerkt ausgeführt. Seien Sie vorsichtig, wenn Sie diese Methode verwenden.

Ausführen eines PowerShell-Skripts mit Parametern

Der eigentliche Start sollte so erfolgen, als ob Sie selbst starten würden Regelmäßiges Programm oder bat-Datei mit Parametern. Um beispielsweise ein Skript mit Parametern über die Befehlszeile auszuführen, können Sie den folgenden Befehl schreiben:

Powershell -executionpolicy RemoteSigned -Datei<имя_скрипта>param1 param2 „ein weiterer Textparameter“

Im Skript selbst können Sie diese Parameter wie folgt abrufen:

Param ($var1, $var2, $var3) echo $var1, $var2, $var3

In PowerShell ISE können Sie ein Skript mit Parametern auf die gleiche Weise über den Befehlsbereich ausführen.

Wie führe ich ein PowerShell-Skript über eine Verknüpfung aus?

Diese Aufgabe kann auf zwei Arten gelöst werden:

  1. Erstellen Sie eine bat/cmd-Datei, in die Sie einen Befehl zum Ausführen des Skripts schreiben können (Sie haben die Parameter oben gelesen).
  2. Erstellen Sie eine Verknüpfung zu PowerShell, die sich im Ordner c:\Windows\System32\WindowsPowerShell\v befindet<версия>\ und fügen Sie in den Verknüpfungseigenschaften im Feld „Objekt“ die erforderlichen Parameter hinzu.

Also zum Beispiel laufen Powershell-Skript Wenn sich der Benutzer anmeldet, können Sie einfach wie in Absatz 2 beschrieben eine Verknüpfung erstellen und diese im Startup platzieren. Wenn Sie mit einer der oben genannten Methoden eine Verknüpfung erstellen, können Sie das Skript außerdem problemlos als Administrator oder als jeder andere Benutzer als normales Programm ausführen.

Die PowerShell-Skriptsprache ist ein ziemlich mächtiges Werkzeug zur Lösung verschiedener Probleme, aber sie kann nicht nur für gute, sondern auch für schlechte Dinge verwendet werden, also setzen Sie sie mit Bedacht ein ;)

In diesem Artikel werden wir uns solche Technologien von Microsoft ansehen wie Windows PowerShell, werden wir darüber sprechen, was PowerShell ist, was Cmdlets und eine Pipeline sind, wie man Skripte und Module schreibt und auch auf andere ebenso wichtige und nützliche Funktionen von Windows PowerShell eingehen.

Vor PowerShell gab es ( und da sind) die folgenden Tools zur Automatisierung und Verwaltung von Diensten: Windows-Befehlszeile und Windows Script Host. Doch diese Technologien haben Nachteile.

Beim Team Windows-Strings Es besteht auch die Möglichkeit, einige Verwaltungsaufgaben auszuführen und einen Aktionsalgorithmus aufzuzeichnen und ihn als Skript (BAT-Datei) zu speichern, während Sie bestimmte Programmierelemente verwenden können, z. B. Variablen verwenden, Bedingungen und sogar so etwas wie Zyklen.

Die meisten Softwareprodukte verfügen über eine Konsolenschnittstelle, d.h. Wir können das Programm über die Befehlszeile steuern und gleichzeitig Ressourcen sparen, da keine Kosten für den Betrieb einer grafischen Oberfläche anfallen. Microsoft für Server-Betriebssystem Windows Server veröffentlicht sogar Editionen ohne grafische Oberfläche ( Server Core, Windows Server 2016 verfügt sogar über Nano Server), aber das alles reicht nicht aus, da die Befehlszeilenfunktionen begrenzt sind, d.h. Wir werden nicht in der Lage sein, eine komplexe Logik zu schreiben, um etwas zu automatisieren, und selbst wenn wir es könnten, wird es Zeit und Wissen erfordern.

Ein Nachteil der Befehlszeile besteht auch darin, dass wir zur vollständigen Verwaltung des Servers verschiedene Konsolendienstprogramme von Softwareprodukten verwenden und daher die Verwendung der Befehlszeile für die Verwaltung tatsächlich schwierig ist, da alle diese Dienstprogramme unterschiedliche Funktionen haben Syntax, Parameter, Verwendungsmethoden und zur Erfüllung typische Aufgaben, d.h. Jeden Tag muss man sich das alles merken und um atypische Aufgaben auszuführen, muss man zuerst die Hilfe oder Dokumentation lesen.

Mit der Windows Script Host-Technologie können Sie alle Verwaltungsaufgaben über die Befehlszeile ausführen, einschließlich ihrer Automatisierung durch das Schreiben von WSH-Skripten. Hier können wir jedoch bereits vollwertige Programmiersprachen verwenden ( VBScript und JScript), d.h. komplexe Logik und Algorithmen können implementiert werden. Darüber hinaus verwalten wir mit Hilfe von WSH Softwareprodukte über eine Objektschnittstelle, d. h. Windows Script Host ist viel mehr. Kühler» als die Befehlszeile. Aber diese Technologie auch nicht das ideale Tool zur Verwaltung und Automatisierung dieser Administration für Systemadministratoren geworden, da Windows Script Host Kenntnisse der oben genannten Programmiersprachen erforderte, die für Systemadministratoren eigentlich überflüssig sind. Administratoren benötigen lediglich ein einfaches Verwaltungstool mit der Möglichkeit, einige Aktionen zu programmieren, und möchten sich nicht mit den Objektmodellen von Softwareprodukten in den Programmiersprachen VBScript und JScript befassen.

Daher musste Microsoft ein Verwaltungstool für Systemadministratoren entwickeln, das alle Anforderungen von Systemadministratoren zu 100 Prozent erfüllt, sowohl in Bezug auf Verwaltungs- und Automatisierungsmöglichkeiten als auch in Bezug auf Komfort und Benutzerfreundlichkeit, und so erschien Windows PowerShell.

Was ist Windows PowerShell?

Windows PowerShell ist eine Windows-Skriptsprache und Befehlsshell zur Verwaltung und Konfiguration von Windows-Betriebssystemen. PowerShell basiert auf dem CRL-Framework und dem .NET Framework. Im Gegensatz zur Befehlszeile, die Text akzeptiert und zurückgibt, arbeitet Windows PowerShell mit Objekten. Jedes Objekt in PowerShell verfügt über Eigenschaften und Methoden, mit denen Sie diese Objekte bearbeiten können.

In Windows PowerShell hat Microsoft das Konzept von Cmdlets entwickelt ( Cmdlets), bei dem es sich um ein Befehlsbenennungssystem handelt. Verb Nomen». Dieses System ermöglicht es Systemadministratoren, ihre Arbeit mit PowerShell schnell zu beherrschen und zu vereinfachen.

MIT unter Verwendung von Windows PowerShell kann:

  • Greifen Sie auf das Dateisystem zu;
  • Verwalten Sie die Registrierung.
  • Dienste verwalten;
  • Prozesse verwalten;
  • Konfigurieren Sie das Betriebssystem;
  • Software installieren;
  • Serverrollen und Komponenten installieren;
  • Serverrollen und -komponenten verwalten und konfigurieren;
  • Schreiben und verwenden Sie Skripte, um Management und Administration zu automatisieren;
  • Führen Sie andere Systemadministratoraufgaben aus.

Windows PowerShell enthält viele häufig verwendete Dienstprogramme und Befehle, die Sie über die Befehlszeile ausführen können, z. B. ipconfig, ping und andere. Dies geschah, um Systemadministratoren den Übergang von der Befehlszeile zu PowerShell zu erleichtern.

Der Einfachheit halber haben viele häufig verwendete Befehle und Dienstprogramme in PowerShell außerdem Synonyme ( Alias), zum Beispiel ist cls ein Synonym für das Cmdlet Clear-Host, dir ist ein Synonym für Get-ChildItem ( volle Liste Synonyme können durch Ausführen des Cmdlets Get-Alias ​​​​angezeigt werden).

Um die Suche nach dem gewünschten Befehl zu vereinfachen, verfügt PowerShell über ein spezielles Cmdlet Get-Command, mit dem Sie sowohl nach Verb als auch nach Substantiv suchen können. Alle Befehle in Windows PowerShell sind in Module gruppiert ( z.B. Hyper-V, NetTCPIP), was es auch einfacher macht, den richtigen Befehl zu finden.

Sobald der benötigte Befehl gefunden wurde, können Sie sich die Anleitung zum Arbeiten mit diesem Befehl ansehen, d. h. Hilfe gibt es für diese Zwecke ein spezielles Get-Help-Cmdlet. Der folgende Befehl zeigt beispielsweise Hilfe für das Get-Command-Cmdlet an:

Get-Help Get-Command

Die Hilfe in Windows PowerShell kann kurz und detailliert sein ( Parameter -Detailliert), voll ( Parameter -Full), und Sie können auch nur Beispiele anzeigen ( Parameter – Beispiele). Der folgende Befehl zeigt nur Beispiele für die Verwendung des Cmdlets Get-Command:

Get-Help Get-Command -Beispiele

Die PowerShell-Hilfe ist aktualisierbar, d. h. Es kann mit dem Befehl Update-Help aktualisiert werden.

Windows PowerShell-Versionen

Die erste Version von PowerShell 1.0 erschien am 14. November 2006 und wurde als separate Distribution veröffentlicht, die auf den folgenden Versionen von Windows-Betriebssystemen installiert werden konnte: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 und Windows Vista.

In Windows Server 2008 war PowerShell 1.0 eine Komponente, die ebenfalls installiert werden musste.

Ab Windows 7 und Windows Server 2008 R2 ist PowerShell ein integraler Bestandteil des Systems ( diese. vorinstalliert, keine Installation erforderlich). Nachfolgend finden Sie eine Entsprechungstabelle zwischen der Version von PowerShell und der Version des Windows-Betriebssystems ( diese. Welche Version von PowerShell ist standardmäßig auf welcher Windows-Version installiert?):

PowerShell-Version Windows-Versionen
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

Mit jedem neue Version PowerShell wird zu einem immer leistungsfähigeren Verwaltungstool; im Vergleich dazu hatte die erste PowerShell etwa 130 Cmdlets und PowerShell 5.0 hat jetzt über 600!

Wissen aktuelle Version PowerShell kann die PSVersion-Eigenschaft der integrierten Variablen $PSVersionTable verwenden. Führen Sie beispielsweise den folgenden Befehl aus:

$PSVersionTable.PSVersion

Oder führen Sie das Cmdlet aus

Get-Variable -Name PSVersionTable –ValueOnly

Dabei ist der PSVersion-Wert die PowerShell-Version.

PowerShell-Sprache

Power Shell ist eine objektorientierte Skript-Programmiersprache. Es wird zum Schreiben von Befehlen zur Steuerung aller Komponenten des Windows-Betriebssystems in Windows PowerShell und zum Schreiben von Skripts zur Automatisierung administrativer Aufgaben in der Windows PowerShell Integrated Scripting Environment (ISE) verwendet. Obwohl die PowerShell-Sprache für Verwaltungsaufgaben entwickelt wurde, handelt es sich um eine vollwertige Skript-Programmiersprache, da sie über Programmkonstrukte verfügt, die in jeder Programmiersprache vorhanden sind, wie zum Beispiel: Bedingungen, Schleifen, Fehlerbehandlung, Arbeiten mit Variablen, Objekten usw Arrays.

Die PowerShell-Sprache verfügt über eine einheitliche Syntax zum Schreiben von Befehlen und eine Namensstruktur für diese Befehle, die auf dem Prinzip „ Verb Nomen", was diese Sprache sowohl für Programmierer als auch für Systemadministratoren intuitiv macht.

Windows PowerShell

Windows PowerShell ist eine Umgebung zum Ausführen von Befehlen und Skripten in PowerShell. Diese Shell verfügt über dieselben Funktionen wie die Befehlszeile, z. B.: Speichern des Befehlsausführungsverlaufs und Einstellungen Aussehen Shell, das Ausführen von Befehlen mit der Tastenkombination Strg+C sowie viele andere Funktionen, die in der Befehlszeilen-Shell nicht verfügbar sind, zum Beispiel eine so wunderbare Funktion wie „ Satzstellung markieren» ( eingeführt in PowerShell 5.0).

Es gibt verschiedene Möglichkeiten, PowerShell zu starten, zum Beispiel:

  • Über die Befehlszeile durch Eingabe von PowerShell;
  • Über das Dialogfeld „ Ausführen» ( Tastaturkürzel Win+R), auch die Eingabe von PowerShell;
  • In Windows 7 – Start -> Alle Programme -> Zubehör -> Windows PowerShell -> Windows PowerShell;
  • In Windows 8.1 oder Windows Server 2012 R2 – Start->Alle Programme -> Systemprogramme -> Windows PowerShell;
  • In Windows 10 oder Windows Server 2016 – Start->Alle Programme -> Windows PowerShell-Verzeichnis ( in der Gruppe W) -> Windows PowerShell.

Beispiel für die Ausführung von PowerShell in Windows Server 2016

Screenshot von PowerShell in Windows Server 2016

Cmdlets in PowerShell

Cmdlet (Cmdlet) - Das Windows-Befehl PowerShell, mit der Sie mit Betriebssystemobjekten interagieren können, um diese zu verwalten. Diese Befehle sind Teil der PowerShell-Sprache. Cmdlets werden nach dem Prinzip „ Verb Nomen", getrennt durch einen Bindestrich (-); Mit anderen Worten: Wir geben zunächst an, was zu tun ist, und geben dann mit einem Bindestrich an, was zu tun ist. Zum Beispiel das Cmdlet Get-Help, wobei Get ein Verb mit der Bedeutung „ Erhalten", und Help ist ein Substantiv " Helfen„im Kontext von PowerShell“ Zeig Hilfe" PowerShell-Cmdlets geben Ergebnisse als Objekte zurück. Dies ist einer der Hauptunterschiede zur Windows-Eingabeaufforderung, bei der Befehle nur Text auf den Bildschirm zurückgeben.

Neben Cmdlets zum Abrufen von Daten (Get) gibt es auch Arten von Cmdlets wie:

  • Hinzufügen – Daten hinzufügen;
  • Klar klar;
  • Aktivieren – aktivieren;
  • Deaktivieren – ausschalten;
  • Neu – erstellen;
  • Entfernen – entfernen;
  • Satz – Satz;
  • Start - Start;
  • Halt halt;
  • Exportieren – Exportieren;
  • Import – Import;
  • Und viele mehr.

Eine vollständige Liste der Cmdlets in Windows PowerShell kann mit dem speziellen Cmdlet Get-Command angezeigt werden. Führen Sie es beispielsweise mit dem Cmdlet-Parameter -CommandType aus. Daraufhin wird eine Liste der Cmdlets auf Ihrem Bildschirm angezeigt.

Get-Command -CommandType-Cmdlet

Wie Sie bereits verstanden haben, verfügen Cmdlets über Parameter, mit denen wir die Aktionen des Cmdlets festlegen können. Parameter können erforderlich oder optional sein; das Cmdlet „Get-Command“ verfügt beispielsweise über keine erforderlichen Parameter.

Das Bild unten zeigt eine Möglichkeit, nach einem Cmdlet anhand des Verbs zu suchen ( Verbparameter). In diesem Fall haben wir eine Liste von Cmdlets angezeigt, die etwas neu starten können.

Team

Get-Command -Verb Neustart

Um nach einem Cmdlet anhand eines Substantivs zu suchen, müssen Sie den Parameter „Noun“ verwenden. Nachfolgend finden Sie beispielsweise eine Liste von Cmdlets, die mit Diensten funktionieren.

Team

Get-Command-Noun-Dienst

Wenn Sie das gewünschte Cmdlet nicht mit seinem vollständigen Namen finden, können Sie eine Maske im *Text*-Format verwenden.

Pipeline in PowerShell

Einer der wichtigsten Windows-Funktionen PowerShell kann beim Ausführen von Befehlen eine Pipeline verwenden.

Förderer– Dies ist die Übertragung des Ergebnisses eines Cmdlets durch einen vertikalen Balken (|) an ein anderes Cmdlet. Gleichzeitig arbeiten Cmdlets, wie Sie sich erinnern, in PowerShell mit Objekten und geben Objekte zurück; dementsprechend werden Objekte auch entlang der Pipeline übertragen.

Mit Hilfe eines Förderbandes können Sie komplexe Aufgaben einfach und unkompliziert erledigen auf bequeme Weise ohne schreiben zu müssen komplexe Algorithmen und Skripte.

Lassen Sie uns zum Beispiel den Namen der größten Datei im Verzeichnis „C:\Windows\System32“ herausfinden ( einfaches Beispiel einer Pipeline).

Team

Get-ChildItem -Path "C:\Windows\System32" -File | Länge des Sortierobjekts -Absteigend | Select-Object -First 1

  • Get-ChildItem – Cmdlet zum Abrufen von Objekten im angegebenen Verzeichnis;
  • Sort-Object ist ein Cmdlet zum Sortieren von Objekten. In unserem Fall sortieren wir nach Dateigröße ( Länge -Absteigend);
  • Select-Object ist ein Cmdlet zur Auswahl der gewünschten Eigenschaften eines Objekts; in unserem Fall zeigen wir Standardfelder an und nur das allererste Objekt, also große Datei (Parameter -First 1).

Alle Cmdlets sind voneinander getrennt vertikale Linie. Das Ergebnis jedes Cmdlets wird als Eingabe an ein anderes Cmdlet übergeben, d. h. Zuerst holen wir uns alle Objekte im angegebenen Verzeichnis, dann sortieren wir das Ergebnis und wählen schließlich das allererste Objekt aus.

Ausführung von Aufgaben im Hintergrund

Windows PowerShell bietet die Möglichkeit, Jobs im Hintergrund auszuführen. Dabei handelt es sich um einen Mechanismus, mit dem Sie einen Befehl ausführen können ( zum Beispiel, dessen Fertigstellung sehr lange dauert) im Hintergrund, d.h. Nach dem Start kehren Sie zur aktuellen Sitzung zurück und können weiterarbeiten, ohne auf die Beendigung des Befehls warten zu müssen. Diese Möglichkeit Sie benötigen es, wenn Sie einen Befehl ausführen müssen, dessen Ausführung ziemlich lange dauert. Wie Sie wissen, ist die PowerShell-Sitzung während dieser Zeit blockiert, bis der Befehl abgeschlossen ist, und Sie müssen weiterarbeiten.

Sie können alle Aufgaben verwalten, die im Hintergrund ausgeführt werden, z. B. die Liste der Aufgaben anzeigen, die Aufgabe stoppen, die Aufgabe löschen und natürlich das Ergebnis der Aufgabe anzeigen.

Windows PowerShell verfügt über die folgenden Cmdlets für die Arbeit mit Hintergrundjobs:

  • Start-Job – eine Hintergrundaufgabe starten;
  • Stop-Job – Stoppen Sie eine Hintergrundaufgabe
  • Get-Job – Liste der Hintergrundaufgaben anzeigen;
  • Receive-Job – das Ergebnis einer Hintergrundaufgabe anzeigen;
  • Remove-Job – eine Hintergrundaufgabe entfernen;
  • Wait-Job – Verschieben Sie eine Hintergrundaufgabe in den Vordergrund, um auf deren Abschluss zu warten.

Um im Hintergrund ausgeführt zu werden, müssen Sie den Start-Job-Befehl und in schreiben Geschweifte Klammern() ein Befehl oder eine Reihe von Befehlen, die im Hintergrund ausgeführt werden sollen.

Lassen Sie uns zum Beispiel eine Aufgabe ausführen ( Liste der Dienstleistungen anzeigen) im Hintergrund und sehen Sie sich dann die Liste an Hintergrundjobs und das Ergebnis unserer Aufgabe auf dem Bildschirm anzeigen ( diese. Liste der Dienstleistungen).

Führen Sie eine Aufgabe im Hintergrund aus

Start-Job (Get-Service)

Wir schauen uns die Liste der im Hintergrund laufenden Aufgaben an

Anzeige des Ergebnisses von Job1

Empfangsauftrag Job1

Wie Sie sehen, haben wir jetzt eine Aufgabe mit dem Status „ Vollendet", d.h. es ist bereits abgeschlossen ( Get-Service funktioniert einfach schnell).

Um das Ergebnis der Hintergrundaufgabe zu sehen, d.h. Mit dem Cmdlet „Get-Service“ haben wir den Befehl „Receive-Job“ ausgeführt und ihm den Jobnamen übergeben ( Auch der Bezeichnerwert ist möglich). Als Ergebnis haben wir eine Liste der Dienste angezeigt.

Fernsteuerung mit PowerShell

Windows PowerShell ist nicht nur für die lokale Verwendung, sondern auch für die Remote-Befehlsausführung konzipiert. Diese Funktion ist notwendig, damit Sie Remote-Computer von Ihrem Arbeitsplatz aus steuern können, d. h. Führen Sie PowerShell-Befehle aus.

Es gibt verschiedene Methoden der Fernbedienung:

  • Verwendung des Parameters -Computername (Viele Teams haben es). Mit anderen Worten: Sie übergeben als Parameter den Namen des Computers, auf dem Sie den Befehl ausführen möchten. Die Methode hat den Nachteil, dass sie auf die Ausführung eines Befehls beschränkt ist;
  • Verwendung von Sitzungen. Cmdlet Geben Sie PSSession ein (interaktive Sitzung). Auf diese Weise verbinden Sie sich mit entfernter Computer und alle Befehle, die Sie in PowerShell eingeben, werden auf dem Remote-Computer auf die gleiche Weise ausgeführt, als ob Sie die Befehle direkt auf dem Remote-Computer eingegeben hätten. Die Methode hat außerdem den Nachteil, dass die Sitzung auf einen Computer beschränkt ist;
  • Verwenden eines Cmdlets Invoke-Befehl. Mit Hilfe diese Methode Sie können Befehle oder Skripte auf einem oder mehreren Computern ausführen.

Um beispielsweise eine Verbindung zu einem Remotecomputer herzustellen ( im Beispiel unten Servername) Führen Sie in einer interaktiven Sitzung den folgenden Befehl aus:

Geben Sie den Namen des PSSession-Servers ein

Skripte, Funktionen und Module in Windows PowerShell

Wenn Sie einen Algorithmus geschrieben haben, möchten Sie ihn höchstwahrscheinlich speichern, um ihn in Zukunft zu verwenden. Windows PowerShell verfügt zu diesem Zweck über einen Skriptmechanismus.

Die Essenz dieses Mechanismus ist wie folgt: Sie schreiben den benötigten Befehlssatz und speichern ihn als Skript – es ist ganz einfach Textdatei mit Erweiterung.PS1.

Um dieses Skript dann auszuführen, führen Sie es einfach in PowerShell aus. In diesem Fall müssen Sie entweder den vollständigen Pfad zur Skriptdatei angeben oder in das Verzeichnis mit dem Skript gehen und es beim Namen nennen.

Wichtig!

Standardmäßig ist das Ausführen von Skripten unter Windows verboten! Um die Skriptausführungsrichtlinie anzuzeigen, führen Sie das Cmdlet aus Get-ExecutionPolicy. Als Ergebnis wird die aktuelle Richtlinie zurückgegeben, zum Beispiel:

  • Eingeschränkt – die Ausführung aller Skripte ist blockiert ( Standardwert);
  • AllSigned – die Ausführung von Skripten mit digitaler Signatur ist erlaubt;
  • RemoteSigned – die Ausführung lokaler Skripte ist erlaubt, alle heruntergeladenen Skripte müssen eine digitale Signatur haben;
  • Uneingeschränkt – die Ausführung beliebiger Skripte ist erlaubt ( nicht empfohlen, da unsicher!).

Um die Ausführung von Skripts zu ermöglichen, müssen Sie das Cmdlet verwenden Set-ExecutionPolicy mit einem der oben genannten Parameter.

Um beispielsweise die Ausführung lokaler Skripts zu ermöglichen, führen Sie den folgenden Befehl aus und akzeptieren Sie die Änderungen, indem Sie Y drücken.

Set-ExecutionPolicy RemoteSigned

Sie können Parameter an ein Skript übergeben, sie obligatorisch machen oder einen Standardwert festlegen.

Windows PowerShell bietet einen Mechanismus zum Erstellen eigener Funktionen, die wie integrierte Cmdlets in der PowerShell-Shell verwendet werden können.

Dazu müssen Sie angeben Stichwort Funktion und schreiben Sie dann in geschweiften Klammern () den Algorithmus für diese Funktion, d. h. Befehlssatz ( Zum Beispiel ein häufig verwendetes Verfahren: Erstellen eines Benutzers mit bestimmten Rechten, Bereinigen bestimmter Verzeichnisse und so weiter). Dann müssen Sie das alles in einem Skript speichern, allerdings nur mit der Erweiterung .psm1, da diese Datei bereits ein Modul ist.

Das ist noch nicht alles, diese Datei muss in dem Verzeichnis abgelegt werden, in dem PowerShell nach Modulen sucht. Es gibt mehrere solcher Verzeichnisse ( spezielles Verzeichnis im Benutzerprofil, das Verzeichnis, in dem PowerShell installiert ist), können sie in eingesehen werden Umgebungsvariablen Power Shell. Führen Sie dazu den folgenden Befehl aus

Get-ChildItem Env:\PSModulePath | Format-Tabelle -AutoSize

Sobald Sie das von Ihnen geschriebene Modul in einem speziellen Verzeichnis abgelegt haben, können Sie als normale PowerShell-Befehle auf Ihre Funktionen zugreifen.

Windows PowerShell Integrated Scripting Environment (ISE)

Um das Schreiben von Skripten, Funktionen und damit Modulen komfortabel zu gestalten, hat Microsoft ein spezielles Programm entwickelt Grafikprogramm Integrierte Skriptumgebung(ISE) – Integrierte Skriptumgebung. Das Arbeiten mit diesem Programm ist sehr komfortabel und es verfügt außerdem über leistungsstarke Funktionen ( Erstellung mehrerer Registerkarten mit Skripten, Ausgabebereich, integriertem Debugger und mehr).

Sie können es so ausführen:

  • In Windows 7 – Start -> Alle Programme -> Zubehör -> Windows PowerShell -> Windows PowerShell ISE;
  • In Windows 10 oder Windows Server 2016 – Start->Alle Programme -> Windows PowerShell-Verzeichnis ( in der Gruppe W) -> Windows PowerShell ISE.

Notiz! ISE funktioniert nicht Windows-System Server in der Server Core-Version installiert.

Screenshot der PowerShell Integrated Scripting Environment (ISE) in Windows Server 2016

Das ist alles für mich, ich hoffe, das Material war für Sie nützlich! Viel Glück!



Freunden erzählen