Powershell-Tutorial für Anfänger: Lernen Sie Powershell-Scripting
Was ist PowerShell?
Windows Powershell ist eine objektorientierte Automatisierungs-Engine und Skriptsprache. Es ist hauptsächlich für IT-Experten und Systemadministratoren konzipiert, um die Verwaltung von zu steuern und zu automatisieren Windows OS und andere Anwendungen. Es bietet überzeugende neue Konzepte, um das erworbene Wissen und die von Ihnen erstellten Skripte innerhalb des Windows Eingabeaufforderung und Windows Skript-Host-Umgebungen.
Es kombiniert die Flexibilität von Skripten, die Geschwindigkeit der Befehlszeile und die Leistung eines GUI-basierten Administratortools. Es ermöglicht Ihnen, Probleme effizient zu lösen, indem es dem Systemadministrator hilft, zukünftige manuelle Arbeitsstunden einzusparen. Wir gehen alle wichtigen Aspekte durch, die Sie kennen sollten, um PowerShell zu lernen.
Dies ist eine vollständige Anleitung zu den Grundlagen der Powershell-Skripterstellung. Fangen wir an!
Warum Powershell verwenden?
Hier sind einige wichtige Gründe für die Verwendung von Powershell:
- Powershell bietet eine gut integrierte Befehlszeilenerfahrung für das Betriebssystem
- PowerShell ermöglicht vollständigen Zugriff auf alle Typen im .NET Framework
- Von Systemadministratoren als vertrauenswürdig eingestuft.
- PowerShell ist eine einfache Möglichkeit, Server- und Workstation-Komponenten zu manipulieren
- Es richtet sich an Systemadministratoren, indem es eine einfachere Syntax erstellt
- PowerShell ist sicherer als das Ausführen VBScript oder andere Skriptsprachen
PowerShell-Verlauf
Die erste PowerShell-Version 1.0 wurde 2006 veröffentlicht. Heute liegt PowerShell in der Version 7.2 vor. Im Laufe des Jahres und der vergangenen Versionen sind die Funktionen und Hosting-Umgebungen von PowerShell erheblich gewachsen.
Sehen wir uns den Versionsverlauf von Powershell an:
- PowerShell Version 1 unterstützte die lokale Verwaltung von Windows Server 2003
- PowerShell 2.0 wurde integriert Windows 7 und Windows Server 2008 R2. Diese Version unterstützt Remoting und erweitert die Funktionen von PowerShell wie Transaktionen, Hintergrundjobs, Ereignisse, Debugging usw.
- PowerShell 3.0 wurde als interner Teil von veröffentlicht Windows Managementrahmen. Es wurde am installiert Windows 8 und Windows Server 2012. Sie können Jobs hinzufügen und planen, Sitzungskonnektivität, automatisches Laden von Modulen usw.
- PowerShell 4.0 wurde mitgeliefert Windows 8.1 und Windows Server 2012 R2. In dieser Version wurden Unterstützung für die gewünschte Statuskonfiguration, verbessertes Debugging und Netzwerkdiagnose hinzugefügt.
- PowerShell 5.0 wurde als interner Teil von veröffentlicht Windows Management Framework 5. Die Funktionsangebote in dieser Version sind Remote-Debugging, Klassendefinitionen, .NET-Enumerationen usw.
- PowerShell 7.2 wurde veröffentlicht. Es basiert auf .NET 6.0. Diese Version bietet neue Operatoren, eine vereinfachte und dynamische Fehleransicht, automatische Benachrichtigungen über neue Versionen usw.
Als Nächstes lernen wir in diesem Powershell-Skript-Tutorial die Funktionen von Powershell kennen.
Funktionen von Powershell
- PowerShell Remoting: PowerShell ermöglicht den Aufruf von Skripts und Cmdlets auf einem Remotecomputer.
- Hintergrundjobs: Es hilft Ihnen, Skripte oder Pipelines asynchron aufzurufen. Sie können Ihre Jobs entweder auf dem lokalen Computer oder auf mehreren ferngesteuerten Computern ausführen.
- Transaktionen: Cmdlet aktivieren und Entwicklern die Ausführung ermöglichen
- Abend: Mit diesem Befehl können Sie Verwaltungs- und Systemereignisse abhören, weiterleiten und darauf reagieren.
- Netzwerkdateiübertragung: Powershell bietet native Unterstützung für priorisierte, asynchrone und gedrosselte Dateiübertragungen zwischen Maschinen mithilfe der BITS-Technologie (Background Intelligent Transfer Service).
So starten Sie PowerShell
In diesem Powershell-Skript-Tutorial erfahren wir nun, wie man Powershell startet Windows OS.
PowerShell ist in allen aktuellen Versionen von vorinstalliert Windows. Wir müssen PowerShell starten, dazu müssen wir die angegebenen Schritte befolgen:
Schritt 1) Suchen Sie nach PowerShell in Windows. Auswählen und klicken
Schritt 2) Das Power Shell-Fenster wird geöffnet
PowerShell-Cmdlet
Ein Cmdlet, das auch Command let genannt wird, ist ein einfacher Befehl, der in der Windows-basierten PowerShell-Umgebung verwendet wird. PowerShell ruft diese Cmdlets in der Eingabeaufforderung auf. Sie können Cmdlets-Befehle mit PowerShell APIS erstellen und aufrufen.
Cmdlet vs. Befehl
Cmdlets unterscheiden sich in folgenden Punkten von Befehlen in anderen Befehls-Shell-Umgebungen?
- Cmdlets sind . NET Framework Klassenobjekte Es kann nicht separat ausgeführt werden
- Cmdlets können aus nur einem Dutzend Codezeilen erstellt werden
- Das Parsen, die Ausgabeformatierung und die Fehlerdarstellung werden nicht von Cmdlets übernommen
- Der Cmdlets-Prozess funktioniert auf Objekten. Daher können Textströme und Objekte nicht als Ausgabe für das Pipelining übergeben werden
- Cmdlets sind datensatzbasiert, d. h. sie verarbeiten jeweils ein einzelnes Objekt
Der Großteil der PowerShell-Funktionalität stammt von Cmdlets, die immer im Verb-Nomen-Format und nicht im Plural vorliegen. Darüber hinaus geben Cmdlets Objekte und keinen Text zurück. Ein Cmdlet ist eine Reihe von Befehlen, die mehr als eine Zeile umfassen und in einer Textdatei mit der Erweiterung .ps1 gespeichert sind.
Ein Cmdlet besteht immer aus einem Verb und einem Substantiv, getrennt durch einen Bindestrich. Einige der Verben, die Sie zum Erlernen von PowerShell verwenden, sind:
- Erhalten Sie - Etwas bekommen
- Startseite – Etwas ausführen
- Außen — Etwas ausgeben
- Stoppen – Um etwas zu stoppen, das läuft
- Stelle den – Etwas definieren
- Neue – Etwas erschaffen
PowerShell-Befehle
Nachfolgend finden Sie eine Liste wichtiger PowerShell-Befehle:
Hilfe bekommen: Hilfe zu PowerShell-Befehlen und -Themen
Beispiel: Hilfeinformationen zum Befehl Format-Table anzeigen
Get-Help Format-Table
Get-Befehl: Informieren Sie sich über alles, was aufgerufen werden kann
Beispiel für ein Powershell-Skript: So erstellen Sie eine Liste der auf Ihrem Computer installierten Cmdlets und Funktionen
Get-Command
Get-Service: Findet alle Cmdlets, die das Wort „Service“ enthalten.
Beispiel: Alle Dienste abrufen, die mit „vm“ beginnen
Get-Service "vm*"
Get-Mitglied: Zeigen Sie, was mit einem Objekt gemacht werden kann
Beispiel: Mitglieder der VM-Prozesse abrufen.
Get-Service "vm*" | Get-Member
Andere Befehle:
- Modul abrufen Zeigt Befehlspakete an
- Inhalt abrufen Dieses Cmdlet kann eine Datei übernehmen, deren Inhalt verarbeiten und etwas damit tun
- Get- get Findet alle Cmdlets, die mit dem Wort „get-“ beginnen.
Beispiel: Erstellen Sie einen Ordner
New-Item -Path 'X:\Guru99' -ItemType Directory
Ausgang:
Powershell-Datentypen
Spezielle Variablen
Spezielle Variable | Beschreibung |
---|---|
$Fehler | Ein Array von Fehlerobjekten, die die neuesten Fehler anzeigen |
$Host | Zeigt den Namen der aktuellen Hosting-Anwendung an |
$Profil | Speichert den gesamten Pfad eines Benutzerprofils für die Standard-Shell |
$PID | Speichert die Prozesskennung |
$PSUICulture | Es enthält den Namen der aktuellen UI-Kultur. |
$NULL | Enthält einen leeren oder NULL-Wert. |
$Falsch | Enthält FALSE-Wert |
$Wahr | Enthält WAHREN Wert |
PowerShell-Skripts
Powershell-Skripte werden in einer .ps1-Datei gespeichert. Standardmäßig können Sie ein Skript nicht durch einfaches Doppelklicken auf eine Datei ausführen. Dies schützt Ihr System vor versehentlichen Schäden. So führen Sie ein Skript aus:
Schritt 1: Klicken Sie mit der rechten Maustaste darauf und klicken Sie auf „Mit PowerShell ausführen“.
Darüber hinaus gibt es eine Richtlinie, die die Skriptausführung einschränkt. Sie können diese Richtlinie anzeigen, indem Sie den Befehl „Get-ExecutionPolicy“ ausführen.
Sie erhalten eine der folgenden Ausgaben:
- Beschränkt— Es sind keine Skripte erlaubt. Dies ist die Standardeinstellung und wird daher zum ersten Mal angezeigt, wenn Sie den Befehl ausführen.
- AllSigned— Sie können von einem vertrauenswürdigen Entwickler signierte Skripte ausführen. Mithilfe dieser Einstellung fragt ein Skript vor der Ausführung nach einer Bestätigung, dass Sie es ausführen möchten.
- RemoteSigniert— Sie können Ihre eigenen oder von einem vertrauenswürdigen Entwickler signierten Skripte ausführen.
- Uneingeschränkt— Sie können jedes Skript ausführen, das Sie ausführen möchten
Schritte zum Ändern der Ausführungsrichtlinie
Schritt 1) Öffnen Sie eine PowerShell-Eingabeaufforderung mit erhöhten Rechten. Klicken Sie mit der rechten Maustaste auf PowerShell und wählen Sie „Als Administrator ausführen“.
Schritt 2) Geben Sie die folgenden Befehle ein
- Get-ExecutionPolicy
- Set-Ausführungsrichtlinie uneingeschränkt
- Geben Sie Y in die Eingabeaufforderung ein
- Get-ExecutionPolicy
Erstes PowerShell-Skript
Schreiben Sie in einen Notizblock den folgenden Befehl
Write-Host "Hello, Guru99!"
PowerShell-Skripte haben die Erweiterung ps1. Speichern Sie die Datei als FirstScript.ps1
Rufen Sie in Powershell das Skript mit dem Befehl auf
& "X:\FirstScript.ps1"
Was ist PowerShell ISE?
Die Windows PowerShell Integrated Scripting Environment (ISE) ist der Standardeditor für Windows Power Shell. In dieser ISE können Sie Befehle, Schreibtests und Debugskripts in einer fensterbasierten GUI-Umgebung ausführen. Sie können mehrzeilige Bearbeitung, Syntaxfärbung, Tab-Vervollständigung, selektive Ausführung und viele andere Dinge durchführen.
Windows Mit PowerShell ISE können Sie Befehle auch in einem Konsolenfenster ausführen. Es werden jedoch auch Fenster unterstützt, in denen Sie gleichzeitig den Quellcode Ihres Skripts und anderer Tools anzeigen können, die Sie in die ISE einbinden können.
Sie können sogar mehrere Skriptfenster gleichzeitig öffnen. Dies ist insbesondere dann nützlich, wenn Sie ein Skript debuggen, das Funktionen verwendet, die in anderen Skripten oder Modulen definiert sind.
Das gleiche Skript, das wir im Editor erstellt haben, kann in ISE erstellt werden
- Fügen Sie Code in den Editor ein
- Skript speichern
- Verwenden Sie F5, um das Skript auszuführen
- Beobachten Sie die Ausgabe in der Konsole
Probe 2:
Der folgende Code gibt den kostenlosen Virtueller Speicher in Ihrer Maschine
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
Powershell Concepts
Jetzt lernen wir in diesem Powershell-Tutorial für Anfänger wichtige Powershell-Konzepte kennen:
Cmdlets | Cmdlets sind Build-Befehle, die in .net-Sprachen wie VB oder C# geschrieben sind. Es ermöglicht Entwicklern, den Cmdlet-Satz durch das Laden und Schreiben von PowerShell-Snap-Ins zu erweitern. |
Funktionen | Funktionen sind Befehle, die in der PowerShell-Sprache geschrieben sind. Es kann ohne Verwendung einer anderen IDE entwickelt werden Visual Studio und Entwickler. |
Scripts | Skripte sind Textdateien auf der Festplatte mit der Erweiterung .ps1 |
Anwendungen | Anwendungen sind vorhandene Windows-Programme. |
Was wäre wenn | Weist das Cmdlet an, es nicht auszuführen, sondern Ihnen mitzuteilen, was passieren würde, wenn das Cmdlet ausgeführt würde. |
Schichtannahme | Weisen Sie das Cmdlet an, vor der Ausführung des Befehls eine Eingabeaufforderung einzugeben. |
Ausführlich | Bietet einen höheren Detaillierungsgrad. |
Debuggen | Weist das Cmdlet an, Debuginformationen bereitzustellen. |
Fehleraktion | Weist das Cmdlet an, eine bestimmte Aktion auszuführen, wenn ein Fehler auftritt. Zulässige Aktionen werden fortgesetzt, gestoppt, stillschweigend fortgesetzt und abgefragt. |
Fehlervariable | Es gibt die Variable an, die Fehlerinformationen enthält. |
OutVariable | Weist das Cmdlet an, eine bestimmte Variable zum Speichern der Ausgabeinformationen zu verwenden |
AußenBuffer | Weist das Cmdlet an, die bestimmte Anzahl von Objekten zu speichern, bevor das nächste Cmdlet in der Pipeline aufgerufen wird. |
Vorteile der Verwendung von PowerShell-Skripten
- PowerShell-Skripte sind wirklich leistungsstark und können in weniger Zeilen viel erledigen.
- Variablen werden in der Form $ deklariert
- Variablen könnten verwendet werden, um die Ausgabe von Befehlen, Objekten und Werten zu speichern.
- Der „Typ“ einer Variablen muss nicht angegeben werden.
PowerShell vs. Eingabeaufforderung
Powershell | Eingabeaufforderung |
---|---|
PowerShell lässt sich tief in das integrieren Windows Betriebssystem. Es bietet eine interaktive Befehlszeilenschnittstelle und Skriptsprache. | Die Eingabeaufforderung ist eine Standard-Befehlszeilenschnittstelle, die von bereitgestellt wird Microsoft. Es handelt sich um eine einfache Win32-Anwendung, die mit allen Win32-Objekten in der interagieren und kommunizieren kann Windows Betriebssystem. |
PowerShell verwendet sogenannte Cmdlets. Es kann entweder in der Laufzeitumgebung oder in den Automatisierungsskripten aufgerufen werden. | Über die Eingabeaufforderung werden keine derartigen Funktionen angeboten. |
PowerShell betrachtet sie als Objekte. Daher kann die Ausgabe über die Pipeline als Eingabe an andere Cmdlets übergeben werden. | Ob Eingabeaufforderung oder sogar die *nix-Shell: Die von einem Cmdlet generierte Ausgabe ist nicht nur ein Textstrom, sondern eine Sammlung von Objekten. |
Die PowerShell ist hinsichtlich Features, Fähigkeiten und innerer Funktionsweise sehr fortschrittlich. | Die Eingabeaufforderung ist sehr einfach. |
Anwendungen von Powershell
Heute ist PowerShell die ideale Wahl für IT-Administratoren, da es die Verwaltungsvorgänge und den Verwaltungsaufwand in großen Unternehmensnetzwerken vereinfacht. Nehmen wir beispielsweise an, Sie verwalten ein großes Netzwerk mit mehr als vierhundert Servern. Nun möchten Sie eine neue Sicherheitslösung implementieren. Diese Sicherheitslösung hängt von einem bestimmten Dienst ab, der auf diesen Servern ausgeführt werden muss.
Sie können sich sicher bei jedem Server anmelden und sehen, ob dieser Dienst installiert ist und ausgeführt wird oder nicht. Allerdings sind dazu sicherlich viele menschliche Fehler nötig, da Ihre Mitarbeiter viel Zeit für diesen unproduktiven Prozess aufwenden müssen.
Wenn Sie jedoch PowerShell verwenden, können Sie diese Aufgabe in nur wenigen Minuten erledigen. Das liegt daran, dass der gesamte Vorgang mit einem einzigen Skript ausgeführt wird, das Informationen zu den auf den Servern ausgeführten Diensten sammelt.
Zusammenfassung
- Windows PowerShell ist eine objektorientierte Automatisierungs-Engine und Skriptsprache
- Powershell bietet eine gut integrierte Befehlszeilenerfahrung für das Betriebssystem
- Die erste Version 1.0 von PowerShell wurde 2006 veröffentlicht
- PowerShell ermöglicht den Aufruf von Skripten und Cmdlets auf einem Remotecomputer
- PowerShell ist in allen aktuellen Versionen von vorinstalliert Windows
- Ein Cmdlet ist ein einfacher Befehl, der in der Windows-basierten PowerShell-Umgebung verwendet wird
- Get, Start, Out, Stop, Set, New sind wichtige PowerShell-Befehle
- Boolean, Byte, Chat, Decimal, Decimal, Long sind wichtige Datentypen von PowerShell
- $Fehler. $Host, $Profile, $PID, $PSUICulture, $NULL sind einige spezielle Variablen, die in PowerShell verwendet werden
- Die Windows PowerShell Integrated Scripting Environment (ISE) ist der Standardeditor für PowerShell
- PowerShell lässt sich tief in das integrieren Windows Betriebssystem, während die Eingabeaufforderung eine Standard-Befehlszeilenschnittstelle ist, die von bereitgestellt wird Microsoft
- PowerShell ist für IT-Administratoren zur idealen Wahl geworden, da es den Verwaltungsaufwand in großen Unternehmensnetzwerken vereinfacht.