Powershell - Kurzanleitung
Windows PowerShell ist eine command-line shell und scripting languagespeziell für die Systemadministration entwickelt. Es ist analog unter Linux heißt Bash Scripting. Windows PowerShell basiert auf .NET Framework und unterstützt IT-Experten bei der Steuerung und Automatisierung der Verwaltung des Windows-Betriebssystems und der Anwendungen, die in einer Windows Server-Umgebung ausgeführt werden.
Windows PowerShell-Befehle, aufgerufen cmdletskönnen Sie die Computer über die Befehlszeile verwalten. Mit Windows PowerShell-Anbietern können Sie genauso einfach auf Datenspeicher wie die Registrierung und den Zertifikatspeicher zugreifen, wie Sie auf das Dateisystem zugreifen.
Darüber hinaus verfügt Windows PowerShell über einen umfangreichen Ausdrucksparser und eine vollständig entwickelte Skriptsprache. Mit einfachen Worten können Sie alle Aufgaben erledigen, die Sie mit der GUI erledigen, und vieles mehr.
PowerShell ISE
Die Windows PowerShell Integrated Scripting Environment(ISE) ist eine Hostanwendung für Windows PowerShell. In Windows PowerShell ISE können Sie Befehle ausführen und Skripte in einer einzigen Windows-basierten grafischen Benutzeroberfläche mit mehrzeiliger Bearbeitung, Tab-Vervollständigung, Syntaxfärbung, selektiver Ausführung, kontextsensitiver Hilfe und Unterstützung für das Recht auf Recht schreiben, testen und debuggen -Links Sprachen.
Sie können Menüelemente und Tastaturkürzel verwenden, um viele der gleichen Aufgaben auszuführen, die Sie in der Windows PowerShell-Konsole ausführen würden. Wenn Sie beispielsweise ein Skript in der Windows PowerShell ISE debuggen, um einen Zeilenumbruchpunkt in einem Skript festzulegen, klicken Sie mit der rechten Maustaste auf die Codezeile, und klicken Sie dann aufToggle Breakpoint.
PowerShell-Basisbefehle
Es gibt viele PowerShell-Befehle, und es ist sehr schwierig, alle diese Befehle in diesem Lernprogramm einzugeben. Wir werden uns auf einige der wichtigsten und grundlegendsten Befehle von PowerShell konzentrieren.
Der erste Schritt besteht darin, zum Befehl Get-Help zu wechseln, in dem erläutert wird, wie ein Befehl und seine Parameter angegeben werden.
Das PowerShell-Symbol finden Sie in der Taskleiste und im Startmenü. Durch einfaches Klicken auf das Symbol wird es geöffnet.
Klicken Sie zum Öffnen einfach auf das Symbol. Der folgende Bildschirm wird geöffnet. PowerShell kann nun bearbeitet werden.
PowerShell-Version
Die neueste Version von PowerShell ist 5.0. Um zu überprüfen, was auf unserem Server installiert ist, geben Sie den folgenden Befehl ein: :$PSVersionTable Wie im folgenden Screenshot gezeigt und vom Bildschirm wissen wir auch, dass wir PSVersion 4.0 haben
Um mit der neuesten Version zu aktualisieren, die mehr Cmdlets enthält, müssen wir diese herunterladen Windows Management Framework 5.0 vom folgenden Link - https://www.microsoft.com/en-us/download/details.aspx?id=50395 und installieren Sie es.
PowerShell ISE
Die Windows PowerShell Integrated Scripting Environment(ISE) ist eine Hostanwendung für Windows PowerShell. In Windows PowerShell ISE können Sie Befehle ausführen und Skripte in einer einzigen Windows-basierten grafischen Benutzeroberfläche mit mehrzeiliger Bearbeitung, Tab-Vervollständigung, Syntaxfärbung, selektiver Ausführung, kontextsensitiver Hilfe und Unterstützung für das Recht auf Recht schreiben, testen und debuggen -Links Sprachen.
Sie können Menüelemente und Tastaturkürzel verwenden, um viele der gleichen Aufgaben auszuführen, die Sie in der Windows PowerShell-Konsole ausführen würden. Wenn Sie beispielsweise ein Skript in der Windows PowerShell ISE debuggen, um einen Zeilenumbruchpunkt in einem Skript festzulegen, klicken Sie mit der rechten Maustaste auf die Codezeile, und klicken Sie dann aufToggle Breakpoint.
Um es zu öffnen, gehen Sie einfach zu Start - Suchen und dann zu Typ - PowerShell, wie im folgenden Screenshot gezeigt.
Klicken Sie dann auf Windows PowerShell ISE. Oder klicken Sie auf den Abwärtspfeil, wie im folgenden Screenshot gezeigt.
Es werden alle auf dem Server installierten Anwendungen aufgelistet und dann auf Windows PowerShell ISE geklickt.
Die folgende Tabelle ist geöffnet -
Es hat drei Abschnitte, die enthalten - Die PowerShell Console also mit der Nummer 1 Scripting File Nummer 2 und der dritte ist der Command Module wo finden Sie das Modul.
Während Sie das Skript erstellen, können Sie es direkt ausführen und das Ergebnis wie im folgenden Beispiel sehen:
PowerShell-Basisbefehle
Es gibt viele PowerShell-Befehle, und es ist sehr schwierig, alle diese Befehle in diesem Lernprogramm einzugeben. Wir werden uns auf einige der wichtigsten und grundlegendsten Befehle von PowerShell konzentrieren.
Der erste Schritt besteht darin, zum Befehl Get-Help zu wechseln, in dem erläutert wird, wie ein Befehl und seine Parameter angegeben werden.
To get the list of Updates - -
- Get-HotFix und installieren Sie einen Hotfix wie folgt
- Get-HotFix -id kb2741530
Ein Cmdlet oder "Command let" ist ein einfacher Befehl, der in der Windows PowerShell-Umgebung verwendet wird. Die Windows PowerShell-Laufzeit ruft diese Cmdlets an der Eingabeaufforderung auf. Sie können sie programmgesteuert über Windows PowerShell-APIs erstellen und aufrufen.
Cmdlet vs Command
Cmdlets unterscheiden sich auf folgende Weise erheblich von Befehlen in anderen Command-Shell-Umgebungen:
Cmdlets sind .NET Framework-Klassenobjekte. und nicht nur eigenständige ausführbare Dateien.
Cmdlets können einfach aus nur einem Dutzend Codezeilen erstellt werden.
Parsing, Fehlerpräsentation und Ausgabeformatierung werden von Cmdlets nicht übernommen. Dies erfolgt über die Windows PowerShell-Laufzeit.
Der Cmdlets-Prozess funktioniert für Objekte, die sich nicht im Textstrom befinden, und Objekte können als Ausgabe für das Pipelining übergeben werden.
Cmdlets sind datensatzbasiert, da sie jeweils ein einzelnes Objekt verarbeiten.
Hilfe bekommen
Der erste Schritt besteht darin, zum Befehl Get-Help zu wechseln, in dem erläutert wird, wie ein Befehl und seine Parameter angegeben werden.
Im Folgenden finden Sie Beispiele für Powershell-Skripts für Dateien und Ordner.
Sr.Nr. | Operationsbeschreibung |
---|---|
1 | Ordner erstellen Beispielskript zum Zeigen, wie Ordner mit PowerShell-Skripten erstellt werden. |
2 | Dateien erstellen Beispielskript zum Zeigen, wie Dateien mit PowerShell-Skripten erstellt werden. |
3 | Ordner kopieren Beispielskript zum Zeigen, wie Dateien mit PowerShell-Skripten kopiert werden. |
4 | Dateien kopieren Beispielskript zum Zeigen, wie Dateien mit PowerShell-Skripten erstellt werden. |
5 | Ordner löschen Beispielskript zum Zeigen, wie Ordner mithilfe von PowerShell-Skripten gelöscht werden. |
6 | Dateien löschen Beispielskript zum Zeigen, wie Dateien mit PowerShell-Skripten gelöscht werden. |
7 | Ordner verschieben Beispielskript zum Zeigen, wie Ordner mithilfe von PowerShell-Skripten verschoben werden. |
8 | Dateien verschieben Beispielskript zum Zeigen, wie Dateien mit PowerShell-Skripten verschoben werden. |
9 | Ordner umbenennen Beispielskript zum Anzeigen des Umbenennens von Ordnern mithilfe von PowerShell-Skripten. |
10 | Dateien umbenennen Beispielskript zum Anzeigen des Umbenennens von Dateien mithilfe von PowerShell-Skripten. |
11 | Artikel abrufen Beispielskript, das zeigt, wie Elemente mithilfe von PowerShell-Skripten abgerufen werden. |
12 | Überprüfen Sie die Ordnerexistenz Beispielskript, das zeigt, wie die Existenz von Ordnern mithilfe von PowerShell-Skripten überprüft wird. |
13 | Überprüfen Sie die Dateiexistenz Beispielskript, das zeigt, wie das Vorhandensein von Dateien mithilfe von PowerShell-Skripten überprüft wird. |
Im Folgenden finden Sie Beispiele für Powershell-Skripte zu Datum und Uhrzeit des Systems.
Sr.Nr. | Operationsbeschreibung |
---|---|
1 | Systemdatum abrufen Beispielskript, das zeigt, wie das Systemdatum mithilfe von PowerShell-Skripten abgerufen wird. |
2 | Systemdatum einstellen Beispielskript zum Anzeigen des Systemdatums mithilfe von PowerShell-Skripten. |
3 | Systemzeit abrufen Beispielskript, das zeigt, wie die Systemzeit mithilfe von PowerShell-Skripten ermittelt wird. |
4 | Systemzeit einstellen Beispielskript zum Anzeigen der Systemzeit mithilfe von PowerShell-Skripten. |
Im Folgenden finden Sie Beispiele für Powershell-Skripte zum Erstellen und Lesen verschiedener Dateitypen.
Sr.Nr. | Operationsbeschreibung |
---|---|
1 | Textdatei erstellen Beispielskript zum Zeigen, wie eine Textdatei mit PowerShell-Skripten erstellt wird. |
2 | Textdatei lesen Beispielskript zum Anzeigen des Lesens einer Textdatei mithilfe von PowerShell-Skripten. |
3 | XML-Datei erstellen Beispielskript zum Zeigen, wie eine XML-Datei mithilfe von PowerShell-Skripten erstellt wird. |
4 | XML-Datei lesen Beispielskript zum Anzeigen des Lesens einer XML-Datei mithilfe von PowerShell-Skripten. |
5 | CSV-Datei erstellen Beispielskript zum Zeigen, wie eine CSV-Datei mithilfe von PowerShell-Skripten erstellt wird. |
6 | CSV-Datei lesen Beispielskript zum Anzeigen des Lesens einer CSV-Datei mithilfe von PowerShell-Skripten. |
7 | HTML-Datei erstellen Beispielskript zum Zeigen, wie eine HTML-Datei mit PowerShell-Skripten erstellt wird. |
8 | HTML-Datei lesen Beispielskript zum Anzeigen des Lesens einer HTML-Datei mithilfe von PowerShell-Skripten. |
9 | Dateiinhalt löschen Beispielskript zum Zeigen, wie Dateiinhalte mithilfe von PowerShell-Skripten gelöscht werden. |
10 | Textdaten anhängen Beispielskript, um zu zeigen, wie Text mithilfe von PowerShell-Skripten an einen Dateiinhalt angehängt wird. |
Cmdlets
Ein Cmdlet oder "Command let" ist ein einfacher Befehl, der in der Windows PowerShell-Umgebung verwendet wird. Die Windows PowerShell-Laufzeit ruft diese Cmdlets an der Eingabeaufforderung auf. Sie können sie programmgesteuert über Windows PowerShell-APIs erstellen und aufrufen. Im Folgenden finden Sie ein Beispiel für die erweiterte Verwendung von Cmdlets.
Sr.Nr. | Befehlstyp & Beschreibung |
---|---|
1 | Get-Unique Cmdlet Beispielprogramm zur Präsentation von Get-Unique Cmdlet. |
2 | Group-Object Cmdlet Beispielprogramm zur Präsentation des Gruppenobjekt-Cmdlets. |
3 | Measure-Object-Cmdlet Beispielprogramm zur Präsentation des Measure-Object-Cmdlets. |
4 | Cmdlet "Objekt vergleichen" Beispielprogramm zur Präsentation des Cmdlets Compare-Object. |
5 | Format-List-Cmdlet Beispielprogramm zur Präsentation des Format-List-Cmdlets. |
6 | Formatweites Cmdlet Beispielprogramm zur Präsentation des formatweiten Cmdlets. |
7 | Where-Object-Cmdlet Beispielprogramm zur Präsentation des Where-Object-Cmdlets. |
8 | Get-ChildItem-Cmdlet Beispielprogramm zur Präsentation des Get-ChildItem-Cmdlets. |
9 | ForEach-Object-Cmdlet Beispielprogramm zur Präsentation des ForEach-Object-Cmdlets. |
10 | Start-Sleep-Cmdlet Beispielprogramm zur Präsentation des Start-Sleep-Cmdlets. |
11 | Read-Host-Cmdlet Beispielprogramm zur Präsentation des Read-Host-Cmdlets. |
12 | Select-Object-Cmdlet Beispielprogramm zur Präsentation des Select-Object-Cmdlets. |
13 | Cmdlet "Objekt sortieren" Beispielprogramm zur Präsentation des Sortierobjekt-Cmdlets. |
14 | Schreibwarn-Cmdlet Beispielprogramm zur Präsentation des Write-Warning-Cmdlets. |
15 | Write-Host-Cmdlet Beispielprogramm zur Präsentation des Write-Host-Cmdlets. |
16 | Cmdlet "Element aufrufen" Beispielprogramm zur Präsentation des Invoke-Item-Cmdlets. |
17 | Cmdlet "Aufrufaufruf" Beispielprogramm zur Präsentation des Invoke-Expression-Cmdlets. |
18 | Measure-Command Cmdlet Beispielprogramm zur Präsentation des Measure-Command-Cmdlets. |
19 | Cmdlet "Invoke-History" Beispielprogramm zur Präsentation des Invoke-History-Cmdlets. |
20 | Cmdlet Add-History Beispielprogramm zur Präsentation des Add-History-Cmdlets. |
21 | Get-History-Cmdlet Beispielprogramm zur Präsentation des Get-History-Cmdlets. |
22 | Get-Culture Cmdlet Beispielprogramm zur Präsentation des Get-Culture-Cmdlets. |
Windows PowerShell ist eine command-line shell und scripting languagespeziell für die Systemadministration entwickelt. Sein Analogon unter Linux heißt Bash Scripting. Windows PowerShell basiert auf .NET Framework und unterstützt IT-Experten bei der Steuerung und Automatisierung der Verwaltung des Windows-Betriebssystems und der Anwendungen, die in einer Windows Server-Umgebung ausgeführt werden.
Windows PowerShell-Befehle, aufgerufen cmdletskönnen Sie die Computer über die Befehlszeile verwalten. Mit Windows PowerShell-Anbietern können Sie genauso einfach auf Datenspeicher wie die Registrierung und den Zertifikatspeicher zugreifen, wie Sie auf das Dateisystem zugreifen.
Darüber hinaus verfügt Windows PowerShell über einen umfangreichen Ausdrucksparser und eine vollständig entwickelte Skriptsprache. Mit einfachen Worten können Sie alle Aufgaben erledigen, die Sie mit der GUI erledigen, und vieles mehr. Windows PowerShell Scripting ist eine vollständig entwickelte Skriptsprache und verfügt über einen umfangreichen Ausdrucksparser /
Eigenschaften
Cmdlets - Cmdlets führen allgemeine Systemverwaltungsaufgaben aus, z. B. die Verwaltung der Registrierung, Dienste, Prozesse, Ereignisprotokolle und die Verwendung von Windows Management Instrumentation (WMI).
Task oriented - Die PowerShell-Skriptsprache ist aufgabenbasiert und bietet Unterstützung für vorhandene Skripts und Befehlszeilentools.
Consistent design- Da Cmdlets und Systemdatenspeicher eine gemeinsame Syntax verwenden und gemeinsame Namenskonventionen haben, ist die gemeinsame Nutzung von Daten einfach. Die Ausgabe von einem Cmdlet kann ohne Manipulation an ein anderes Cmdlet weitergeleitet werden.
Simple to Use - Durch die vereinfachte, befehlsbasierte Navigation können Benutzer in der Registrierung und in anderen Datenspeichern navigieren, die der Dateisystemnavigation ähneln.
Object based- PowerShell verfügt über leistungsstarke Funktionen zur Objektmanipulation. Objekte können direkt an andere Tools oder Datenbanken gesendet werden.
Extensible interface. - PowerShell kann angepasst werden, da unabhängige Softwareanbieter und Unternehmensentwickler mithilfe von PowerShell benutzerdefinierte Tools und Dienstprogramme erstellen können, um ihre Software zu verwalten.
Variablen
PowerShell-Variablen sind benannte Objekte. Da PowerShell mit Objekten arbeitet, werden diese Variablen zum Arbeiten mit Objekten verwendet.
Variable erstellen
Der Variablenname sollte mit $ beginnen und kann alphanumerische Zeichen und Unterstriche in ihren Namen enthalten. Eine Variable kann durch Eingabe eines gültigen Variablennamens erstellt werden.
Geben Sie den folgenden Befehl in PowerShell ISE Console ein. Angenommen, Sie befinden sich im Ordner D: \ test.
$location = Get-Location
Hier haben wir eine Variable $ location erstellt und ihr die Ausgabe des Cmdlets Get-Location zugewiesen. Es enthält jetzt den aktuellen Standort.
Variable verwenden
Geben Sie den folgenden Befehl in PowerShell ISE Console ein.
$location
Ausgabe
Sie können die folgende Ausgabe in der PowerShell-Konsole sehen.
Path
----
D:\test
Informationen über Variablen abrufen
Das Cmdlet Get-Member kann den Typ der verwendeten Variablen angeben. Siehe das folgende Beispiel.
$location | Get-Member
Ausgabe
Sie können die folgende Ausgabe in der PowerShell-Konsole sehen.
TypeName: System.Management.Automation.PathInfo
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Drive Property System.Management.Automation.PSDriveInfo Drive {get;}
Path Property System.String Path {get;}
Provider Property System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Property System.String ProviderPath {get;}
PowerShell Spezielle Variablen speichern Informationen zu PowerShell. Diese werden auch als automatische Variablen bezeichnet. Es folgt die Liste der automatischen Variablen -
Operator | Beschreibung |
---|---|
$$ | Stellt das letzte Token in der letzten von der Sitzung empfangenen Zeile dar. |
$? | Repräsentiert den Ausführungsstatus der letzten Operation. Es enthält TRUE, wenn die letzte Operation erfolgreich war, und FALSE, wenn sie fehlgeschlagen ist. |
$ ^ | Stellt das erste Token in der letzten von der Sitzung empfangenen Zeile dar. |
$ _ | Gleich wie $ PSItem. Enthält das aktuelle Objekt im Pipeline-Objekt. Sie können diese Variable in Befehlen verwenden, die eine Aktion für jedes Objekt oder für ausgewählte Objekte in einer Pipeline ausführen. |
$ ARGS | Stellt ein Array der nicht deklarierten Parameter und / oder Parameterwerte dar, die an eine Funktion, ein Skript oder einen Skriptblock übergeben werden. |
$ CONSOLEFILENAME | Stellt den Pfad der Konsolendatei (.psc1) dar, die zuletzt in der Sitzung verwendet wurde. |
$ ERROR | Stellt ein Array von Fehlerobjekten dar, die die neuesten Fehler darstellen. |
$ EVENT | Stellt ein PSEventArgs-Objekt dar, das das Ereignis darstellt, das verarbeitet wird. |
$ EVENTARGS | Stellt ein Objekt dar, das das erste Ereignisargument darstellt, das von EventArgs des Ereignisses abgeleitet wird, das verarbeitet wird. |
$ EVENTSUBSCRIBER | Stellt ein PSEventSubscriber-Objekt dar, das den Ereignisabonnenten des Ereignisses darstellt, das verarbeitet wird. |
$ EXECUTIONCONTEXT | Stellt ein EngineIntrinsics-Objekt dar, das den Ausführungskontext des PowerShell-Hosts darstellt. |
$ FALSE | Repräsentiert FALSE. Sie können diese Variable verwenden, um FALSE in Befehlen und Skripten darzustellen, anstatt die Zeichenfolge "false" zu verwenden. |
$ FOREACH | Repräsentiert den Enumerator (nicht die resultierenden Werte) einer ForEach-Schleife. Sie können die Eigenschaften und Methoden von Enumeratoren für den Wert der Variablen $ ForEach verwenden. |
$ HOME | Stellt den vollständigen Pfad des Home-Verzeichnisses des Benutzers dar. |
$ HOST | Stellt ein Objekt dar, das die aktuelle Hostanwendung für PowerShell darstellt. |
$ INPUT | Stellt einen Enumerator dar, der alle Eingaben auflistet, die an eine Funktion übergeben werden. |
$ LASTEXITCODE | Stellt den Exit-Code des zuletzt ausgeführten Windows-basierten Programms dar. |
$ MATCHES | Die Variable $ Matches funktioniert mit den Operatoren -match und -notmatch. |
$ MYINVOCATION | $ MyInvocation wird nur für Skripte, Funktionen und Skriptblöcke ausgefüllt. Die Eigenschaften PSScriptRoot und PSCommandPath der automatischen Variablen $ MyInvocation enthalten Informationen zum Aufrufer oder zum aufrufenden Skript, nicht zum aktuellen Skript. |
$ NESTEDPROMPTLEVEL | Repräsentiert die aktuelle Eingabeaufforderungsstufe. |
$ NULL | $ null ist eine automatische Variable, die einen NULL-Wert oder einen leeren Wert enthält. Mit dieser Variablen können Sie einen fehlenden oder undefinierten Wert in Befehlen und Skripten darstellen. |
$ PID | Stellt die Prozesskennung (PID) des Prozesses dar, der die aktuelle PowerShell-Sitzung hostet. |
$ PROFIL | Stellt den vollständigen Pfad des PowerShell-Profils für den aktuellen Benutzer und die aktuelle Hostanwendung dar. |
$ PSCMDLET | Stellt ein Objekt dar, das das Cmdlet oder die erweiterte Funktion darstellt, die ausgeführt wird. |
$ PSCOMMANDPATH | Stellt den vollständigen Pfad und Dateinamen des Skripts dar, das ausgeführt wird. |
$ PSCULTURE | Stellt den Namen der Kultur dar, die derzeit im Betriebssystem verwendet wird. |
$ PSDEBUGCONTEXT | Während des Debuggens enthält diese Variable Informationen zur Debugging-Umgebung. Andernfalls enthält es einen NULL-Wert. |
$ PSHOME | Stellt den vollständigen Pfad des Installationsverzeichnisses für PowerShell dar. |
$ PSITEM | Gleich wie $ _. Enthält das aktuelle Objekt im Pipeline-Objekt. |
$ PSSCRIPTROOT | Stellt das Verzeichnis dar, aus dem ein Skript ausgeführt wird. |
$ PSSENDERINFO | Stellt Informationen zu dem Benutzer dar, der die PSSession gestartet hat, einschließlich der Benutzeridentität und der Zeitzone des Ursprungscomputers. |
$ PSUICULTURE | Stellt den Namen der Benutzeroberflächenkultur dar, die derzeit im Betriebssystem verwendet wird. |
$ PSVERSIONTABLE | Stellt eine schreibgeschützte Hash-Tabelle dar, in der Details zur Version von PowerShell angezeigt werden, die in der aktuellen Sitzung ausgeführt wird. |
$ SENDER | Stellt das Objekt dar, das dieses Ereignis generiert hat. |
$ SHELLID | Repräsentiert die Kennung der aktuellen Shell. |
$ STACKTRACE | Stellt eine Stapelverfolgung für den letzten Fehler dar. |
$ DIESES | In einem Skriptblock, der eine Skripteigenschaft oder eine Skriptmethode definiert, bezieht sich die Variable $ This auf das Objekt, das erweitert wird. |
$ TRUE | Repräsentiert TRUE. Mit dieser Variablen können Sie TRUE in Befehlen und Skripten darstellen. |
PowerShell bietet eine Vielzahl von Operatoren zum Bearbeiten von Variablen. Wir können alle PowerShell-Operatoren in die folgenden Gruppen einteilen:
- Rechenzeichen
- Zuweisungsoperatoren
- Vergleichsoperatoren
- Logische Operatoren
- Umleitungsoperatoren
- Verschüttete und Join-Operatoren
- Typ Operatoren
- Unäre Operatoren
Die arithmetischen Operatoren
Arithmetische Operatoren werden in mathematischen Ausdrücken genauso verwendet wie in der Algebra. In der folgenden Tabelle sind die arithmetischen Operatoren aufgeführt.
Angenommen, die ganzzahlige Variable A enthält 10 und die Variable B 20, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
+ (Ergänzung) | Fügt Werte auf beiden Seiten des Operators hinzu. | A + B ergibt 30 |
- (Subtraktion) | Subtrahiert den rechten Operanden vom linken Operanden. | A - B ergibt -10 |
* (Multiplikation) | Multipliziert Werte auf beiden Seiten des Operators. | A * B ergibt 200 |
/ (Teilung) | Teilt den linken Operanden durch den rechten Operanden. | B / A ergibt 2 |
% (Modul) | Teilt den linken Operanden durch den rechten Operanden und gibt den Rest zurück. | B% A ergibt 0 |
Die Vergleichsoperatoren
Im Folgenden sind die Zuweisungsoperatoren aufgeführt, die von der PowerShell-Sprache unterstützt werden:
Angenommen, die ganzzahlige Variable A enthält 10 und die Variable B 20, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
Gl. (gleich) | Vergleicht zwei Werte, um gleich zu sein oder nicht. | A -eq B gibt false |
ne (nicht gleich) | Vergleicht zwei Werte als ungleich. | A -ne B wird wahr geben |
gt (größer als) | Vergleicht den ersten Wert mit dem zweiten. | B -gt A wird wahr geben |
ge (größer oder gleich) | Vergleicht den ersten Wert so, dass er größer oder gleich dem zweiten ist. | B -ge A wird wahr geben |
lt (weniger als) | Vergleicht den ersten Wert mit weniger als dem zweiten. | B -lt A wird falsch geben |
le (kleiner oder gleich) | Vergleicht den ersten Wert mit kleiner oder gleich dem zweiten Wert. | B-le A wird falsch geben |
Die Zuweisungsoperatoren
Im Folgenden sind die Zuweisungsoperatoren aufgeführt, die von der PowerShell-Sprache unterstützt werden:
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
= | Einfacher Zuweisungsoperator. Weist dem linken Operanden Werte von Operanden auf der rechten Seite zu. | C = A + B weist C den Wert von A + B zu |
+ = | UND-Zuweisungsoperator hinzufügen. Es fügt dem linken Operanden den rechten Operanden hinzu und weist das Ergebnis dem linken Operanden zu. | C + = A entspricht C = C + A. |
- = | UND-Zuweisungsoperator subtrahieren. Es subtrahiert den rechten Operanden vom linken Operanden und weist das Ergebnis dem linken Operanden zu. | C - = A entspricht C = C - A. |
Die logischen Operatoren
In der folgenden Tabelle sind die logischen Operatoren aufgeführt.
Angenommen, die booleschen Variablen A sind wahr und die Variable B ist falsch, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
UND (logisch und) | Wird als logischer UND-Operator bezeichnet. Wenn beide Operanden ungleich Null sind, wird die Bedingung wahr. | (A -AND B) ist falsch |
ODER (logisch oder) | Wird als logischer ODER-Operator bezeichnet. Wenn einer der beiden Operanden ungleich Null ist, wird die Bedingung erfüllt. | (A-ODER B) ist wahr |
NICHT (logisch nicht) | Wird als logischer NICHT-Operator bezeichnet. Verwenden Sie diese Option, um den logischen Status des Operanden umzukehren. Wenn eine Bedingung wahr ist, macht der Operator Logical NOT false. | -NOT (A -AND B) ist wahr |
Verschiedene Betreiber
Im Folgenden finden Sie verschiedene wichtige Operatoren, die von der PowerShell-Sprache unterstützt werden:
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
> (Redirectional Opeator) | Umleitungsoperator. Weist die zu druckende Ausgabe der umgeleiteten Datei / dem umgeleiteten Gerät zu. | dir> test.log druckt die Verzeichnisliste in der Datei test.log |
Es kann vorkommen, dass Sie einen Codeblock mehrmals ausführen müssen. Im Allgemeinen werden Anweisungen nacheinander ausgeführt: Die erste Anweisung in einer Funktion wird zuerst ausgeführt, gefolgt von der zweiten usw.
Programmiersprachen bieten verschiedene Steuerungsstrukturen, die kompliziertere Ausführungspfade ermöglichen.
EIN loop Anweisung ermöglicht es uns, eine Anweisung oder eine Gruppe von Anweisungen mehrmals auszuführen. Im Folgenden finden Sie die allgemeine Form einer Schleifenanweisung in den meisten Programmiersprachen.
Die PowerShell-Programmiersprache bietet die folgenden Arten von Schleifen, um die Schleifenanforderungen zu erfüllen. Klicken Sie auf die folgenden Links, um deren Details zu überprüfen.
Sr.Nr. | Schleife & Beschreibung |
---|---|
1 | für Schleife Führen Sie eine Folge von Anweisungen mehrmals aus und kürzen Sie den Code ab, der die Schleifenvariable verwaltet. |
2 | für jede Schleife Verbesserte for-Schleife. Dies wird hauptsächlich verwendet, um die Sammlung von Elementen einschließlich Arrays zu durchlaufen. |
3 | while-Schleife Wiederholt eine Anweisung oder eine Gruppe von Anweisungen, während eine bestimmte Bedingung erfüllt ist. Es testet die Bedingung, bevor der Schleifenkörper ausgeführt wird. |
4 | do ... while-Schleife Wie eine while-Anweisung, nur dass sie die Bedingung am Ende des Schleifenkörpers testet. |
Entscheidungsstrukturen haben eine oder mehrere Bedingungen, die vom Programm bewertet oder getestet werden müssen, zusammen mit einer Anweisung oder Anweisungen, die ausgeführt werden sollen, wenn die Bedingung als wahr bestimmt wird, und optional anderen Anweisungen, die ausgeführt werden sollen, wenn die Bedingung bestimmt wird falsch sein.
Es folgt die allgemeine Form einer typischen Entscheidungsstruktur, die in den meisten Programmiersprachen zu finden ist:
Die PowerShell-Skriptsprache bietet die folgenden Arten von Entscheidungsbefehlen. Klicken Sie auf die folgenden Links, um deren Details zu überprüfen.
Sr.Nr. | Aussage & Beschreibung |
---|---|
1 | if-Anweisung Ein if statement besteht aus einem booleschen Ausdruck, gefolgt von einer oder mehreren Anweisungen. |
2 | if ... else-Anweisung Ein if statement kann von einem optionalen gefolgt werden else statement, wird ausgeführt, wenn der boolesche Ausdruck false ist. |
3 | verschachtelte if-Anweisung Sie können eine verwenden if oder elseif Aussage in einem anderen if oder elseif Aussage (n). |
4 | switch-Anweisung EIN switch Mit der Anweisung kann eine Variable auf Gleichheit mit einer Liste von Werten getestet werden. |
PowerShell bietet eine Datenstruktur, die array, in dem eine sequentielle Sammlung von Elementen eines beliebigen Typs mit fester Größe gespeichert wird. Ein Array wird zum Speichern einer Sammlung von Daten verwendet. Oft ist es jedoch sinnvoller, sich ein Array als eine Sammlung von Variablen oder Objekten vorzustellen.
Anstatt einzelne Variablen wie Nummer 0, Nummer 1, ... und Nummer 99 zu deklarieren, deklarieren Sie eine Array-Variable wie Zahlen und verwenden Zahlen [0], Zahlen [1] und ..., Zahlen [99] zur Darstellung einzelne Variablen.
In diesem Lernprogramm wird erläutert, wie Sie Array-Variablen deklarieren, Arrays erstellen und Arrays mithilfe indizierter Variablen verarbeiten.
Array-Variablen deklarieren
Um ein Array in einem Programm zu verwenden, müssen Sie eine Variable deklarieren, die auf das Array verweist, und Sie können den Array-Typ angeben, auf den die Variable verweisen kann. Hier ist die Syntax zum Deklarieren einer Array-Variablen:
Syntax
$A = 1, 2, 3, 4
or
$A = 1..4
Note- Standardmäßig ist der Objekttyp des Arrays System.Object. Die Methode GetType () gibt den Typ des Arrays zurück. Typ kann übergeben werden.
Beispiel
Die folgenden Codefragmente sind Beispiele für diese Syntax:
[int32[]]$intA = 1500,2230,3350,4000
$A = 1, 2, 3, 4
$A.getType()
Dies führt zu folgendem Ergebnis:
Ausgabe
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Auf die Array-Elemente wird über das zugegriffen index. Array-Indizes basieren auf 0; Das heißt, sie beginnen bei 0 bisarrayRefVar.length-1.
Beispiel
Die folgende Anweisung deklariert eine Array-Variable, myList, erstellt ein Array von 10 Elementen vom Doppeltyp und weist myList ihren Verweis zu -
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
Das folgende Bild zeigt das Array myList. Hier enthält myList zehn Doppelwerte und die Indizes liegen zwischen 0 und 9.
Arrays verarbeiten
Bei der Verarbeitung von Array-Elementen verwenden wir häufig beides for Schleife oder foreach Schleife, da alle Elemente in einem Array vom gleichen Typ sind und die Größe des Arrays bekannt ist.
Beispiel
Hier ist ein vollständiges Beispiel, das zeigt, wie Arrays erstellt, initialisiert und verarbeitet werden.
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
write-host("Print all the array elements")
$myList
write-host("Get the length of array")
$myList.Length
write-host("Get Second element of array")
$myList[1]
write-host("Get partial array")
$subList = $myList[1..3]
write-host("print subList")
$subList
write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
$myList[$i]
}
write-host("using forEach Loop")
foreach ($element in $myList) {
$element
}
write-host("using while Loop")
$i = 0
while($i -lt 4) {
$myList[$i];
$i++
}
write-host("Assign values")
$myList[1] = 10
$myList
Dies führt zu folgendem Ergebnis:
Ausgabe
Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123
Beispiele für Arrays-Methoden
Hier ist ein vollständiges Beispiel, das Operationen an Arrays mit ihren Methoden zeigt
$myList = @(0..4)
write-host("Print array")
$myList
$myList = @(0..4)
write-host("Assign values")
$myList[1] = 10
$myList
Dies führt zu folgendem Ergebnis:
Ausgabe
Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4
Hashtable speichert Schlüssel / Wert-Paare in einer Hash-Tabelle. Wenn Sie eine Hashtabelle verwenden, geben Sie ein Objekt an, das als Schlüssel verwendet wird, und den Wert, den Sie mit diesem Schlüssel verknüpfen möchten. Im Allgemeinen haben wir String oder Zahlen als Schlüssel verwendet.
In diesem Lernprogramm wird erläutert, wie Sie Hashtabellenvariablen deklarieren, Hashtabellen erstellen und Hashtabellen mithilfe ihrer Methoden verarbeiten.
Hashtable-Variablen deklarieren
Um eine Hashtabelle in einem Programm zu verwenden, müssen Sie eine Variable deklarieren, die auf die Hashtabelle verweist. Hier ist die Syntax zum Deklarieren einer Hashtabellenvariablen:
Syntax
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}
Note- Geordnete Wörterbücher können mit ähnlicher Syntax erstellt werden. Geordnete Wörterbücher behalten die Reihenfolge bei, in der Einträge hinzugefügt werden, Hashtabellen jedoch nicht.
Beispiel
Die folgenden Codefragmente sind Beispiele für diese Syntax:
$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}
Drucken Sie die Hashtabelle.
$hash
Ausgabe
Name Value
---- -----
ID 1
Color Blue
Shape Square
Auf die Hashtabellenwerte wird über die zugegriffen keys.
> $hash["ID"]
1
Hashtable verarbeiten
Die Punktnotation kann verwendet werden, um auf Hashtabellenschlüssel oder -werte zuzugreifen.
> $hash.keys
ID
Color
Shape
> $hash.values
1
Blue
Square
Beispiel
Hier ist ein vollständiges Beispiel, das zeigt, wie Hashtabellen erstellt, initialisiert und verarbeitet werden.
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
write-host("Print all hashtable keys")
$hash.keys
write-host("Print all hashtable values")
$hash.values
write-host("Get ID")
$hash["ID"]
write-host("Get Shape")
$hash.Number
write-host("print Size")
$hash.Count
write-host("Add key-value")
$hash["Updated"] = "Now"
write-host("Add key-value")
$hash.Add("Created","Now")
write-host("print Size")
$hash.Count
write-host("Remove key-value")
$hash.Remove("Updated")
write-host("print Size")
$hash.Count
write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key
Dies führt zu folgendem Ergebnis:
Ausgabe
Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key
Name Value
---- -----
Color Blue
Created Now
ID 1
Shape
Square
Ein regulärer Ausdruck ist eine spezielle Folge von Zeichen, mit deren Hilfe Sie andere Zeichenfolgen oder Sätze von Zeichenfolgen mithilfe einer speziellen Syntax in einem Muster abgleichen oder finden können. Sie können zum Suchen, Bearbeiten oder Bearbeiten von Text und Daten verwendet werden.
In der folgenden Tabelle sind alle in PowerShell verfügbaren Metazeichen-Syntax für reguläre Ausdrücke aufgeführt.
Unterausdruck | Streichhölzer |
---|---|
^ | Entspricht dem Zeilenanfang. |
$ | Entspricht dem Zeilenende. |
. | Entspricht einem einzelnen Zeichen außer Zeilenumbruch. Verwenden vonm Mit dieser Option kann es auch mit der Newline übereinstimmen. |
[...] | Entspricht einem einzelnen Zeichen in Klammern. |
[^ ...] | Entspricht einem einzelnen Zeichen, das nicht in Klammern steht. |
\EIN | Anfang der gesamten Saite. |
\ z | Ende der gesamten Zeichenfolge. |
\ Z. | Ende der gesamten Zeichenfolge mit Ausnahme des zulässigen Abschlussabschlusses. |
Re* | Entspricht 0 oder mehr Vorkommen des vorhergehenden Ausdrucks. |
re + | Entspricht 1 oder mehr der vorherigen Sache. |
Re? | Entspricht dem Vorkommen des vorhergehenden Ausdrucks 0 oder 1. |
re {n} | Entspricht genau n Vorkommen des vorhergehenden Ausdrucks. |
re {n,} | Entspricht n oder mehr Vorkommen des vorhergehenden Ausdrucks. |
re {n, m} | Entspricht mindestens n und höchstens m Vorkommen des vorhergehenden Ausdrucks. |
a | b | Entspricht entweder a oder b. |
(Re) | Gruppiert reguläre Ausdrücke und merkt sich den übereinstimmenden Text. |
(?: re) | Gruppiert reguläre Ausdrücke, ohne sich an den übereinstimmenden Text zu erinnern. |
(?> re) | Entspricht dem unabhängigen Muster ohne Rückverfolgung. |
\ w | Entspricht den Wortzeichen. |
\ W. | Entspricht den Nichtwortzeichen. |
\ s | Entspricht dem Leerzeichen. Entspricht [\ t \ n \ r \ f]. |
\ S. | Entspricht dem Nicht-Leerzeichen. |
\ d | Entspricht den Ziffern. Entspricht [0-9]. |
\ D. | Entspricht den Nicht-Ziffern. |
\EIN | Entspricht dem Anfang der Zeichenfolge. |
\ Z. | Entspricht dem Ende der Zeichenfolge. Wenn eine neue Zeile vorhanden ist, stimmt sie kurz vor der neuen Zeile überein. |
\ z | Entspricht dem Ende der Zeichenfolge. |
\G | Entspricht dem Punkt, an dem das letzte Spiel beendet wurde. |
\ n | Rückverweis auf Erfassungsgruppennummer "n". |
\ b | Entspricht den Wortgrenzen außerhalb der Klammern. Entspricht der Rücktaste (0x08) in den Klammern. |
\ B. | Entspricht den Nichtwortgrenzen. |
\ n, \ t usw. | Entspricht Zeilenumbrüchen, Wagenrückläufen, Tabulatoren usw. |
\ Q. | Escape (Zitat) alle Zeichen bis zu \ E. |
\ E. | Beendet das mit \ Q begonnene Zitat. |
Hier finden Sie vollständige Beispiele für die Verwendung von Regex in PowerShell.
Sr.Nr. | Übereinstimmung & Beschreibung |
---|---|
1 | Übereinstimmende Charaktere Beispiel für unterstützte Zeichen für reguläre Ausdrücke. |
2 | Übereinstimmende Zeichenklassen Beispiel für unterstützte Zeichenklassen. |
3 | Match-Quantifizierer Beispiel für unterstützte Quantifizierer. |
Der Backtick (`) -Operator wird auch als Zeilenumbruchoperator bezeichnet. Damit kann ein Befehl in mehreren Zeilen geschrieben werden. Es kann auch für neue Zeilen (`n) oder Tabulatoren (` t) in Sätzen verwendet werden. Siehe die folgenden Beispiele -
Beispiel 1
Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize
Es wird werden
Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize
Überprüfen Sie die Ausgabe als
Name ServiceType Status
---- ----------- ------
MSSQLServerADHelper100 Win32OwnProcess Stopped
ntrtscan Win32OwnProcess Running
...
Beispiel 2
Verwendung neuer Zeilen und Tabulatoren.
> Write-host "Title Subtitle"
Title Subtitle
> Write-host "Title `nSubtitle"
Title
Subtitle
> Write-host "Title `tSubtitle"
Title Subtitle
Powershell unterstützt drei Arten von Klammern.
Parenthesis brackets. − ()
Braces brackets. − {}
Square brackets. − []
Klammern
Diese Art von Klammern wird verwendet
Argumente übergeben
Legen Sie mehrere Anweisungen bei
Mehrdeutigkeit auflösen
Array erstellen
Beispiel
> $array = @("item1", "item2", "item3")
> foreach ($element in $array) { $element }
item1
item2
item3
Klammern Klammern
Diese Art von Klammern wird verwendet
Aussagen beilegen
Befehle blockieren
Beispiel
$x = 10
if($x -le 20){
write-host("This is if statement")
}
Dies führt zu folgendem Ergebnis:
Ausgabe
This is if statement.
Eckige Klammern
Diese Art von Klammern wird verwendet
Zugriff auf Array
Zugriff auf Hashtabellen
Filter mit regulären Ausdrücken
Beispiel
> $array = @("item1", "item2", "item3")
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
>Get-Process [r-s]*
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
320 72 27300 33764 227 3.95 4028 SCNotification
2298 77 57792 48712 308 2884 SearchIndexer
...
Der PowerShell-Alias ist ein anderer Name für das Cmdlet oder ein beliebiges Befehlselement.
Alias erstellen
Verwenden New-AliasCmdlet zum Erstellen eines Alias. Im folgenden Beispiel haben wir eine Alias-Hilfe für das Cmdlet Get-Help erstellt.
New-Alias -Name help -Value Get-Help
Rufen Sie nun den Alias auf.
help Get-WmiObject -Detailed
Sie sehen die folgende Ausgabe.
NAME
Get-WmiObject
SYNOPSIS
Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.
SYNTAX
Get-WmiObject [
...
Alias bekommen
Verwenden get-alias Cmdlet, um alle Alias in der aktuellen Powershell-Sitzung abzurufen.
Get-Alias
Sie sehen die folgende Ausgabe.
CommandType Name Definition
----------- ---- ----------
Alias % ForEach-Object
Alias ? Where-Object
Alias ac Add-Content
Alias asnp Add-PSSnapIn
...
Drucken