PowerShell ist eine leistungsstarke Skriptsprache, die von vielen Anwendungen, einschließlich Outlook und Exchange, verwendet werden kann. Für den Endbenutzer kann sie als Nachfolger von vbs und Batch-Skripten angesehen werden.
PowerShell-Skripte sind einfach zu benutzen, aber es gibt einige Dinge, die man beachten muss, besonders wenn man solche Skripte zum ersten Mal benutzt.
Dieser Leitfaden enthält häufig gestellte Fragen zur Verwendung von PowerShell-Skripten und einige zusätzliche Tipps und Tricks, die Ihnen den Einstieg erleichtern sollen.
Warum wird mein PowerShell-Skript nicht per Doppelklick wie ein VBS- oder Bat-Skript ausgeführt?
Die Standardaktion beim Doppelklick auf eine ps1-Datei ist das Öffnen in Notepad oder einem anderen Text- oder Skript-/Code-Editor, den Sie eventuell installiert haben, wie z.B. Visual Studio Code.
Dies geschieht hauptsächlich aus Sicherheitsgründen und um zu verhindern, dass Sie versehentlich Skripte ausführen.
Teilweise ist es auch eine Komfortfunktion, um den Code einfach zu überprüfen oder zu bearbeiten, da viele Skripte nicht manuell ausgeführt werden, sondern über geplante Tasks, Anmeldeskripte automatisiert werden oder als aufrufbare Funktionen (wie Get and Set-Befehle) implementiert wurden.
Es sind noch andere Methoden verfügbar, die es Ihnen ermöglichen, ein PowerShell-Skript einfach auszuführen, was weiter unten besprochen wird.
Wie öffne ich PowerShell?
Eine schnelle Möglichkeit zum Öffnen von PowerShell besteht darin, mit der rechten Maustaste auf das Startmenü-Symbol zu klicken und Windows PowerShell zu wählen.
Wenn die Option nicht aufgeführt ist, geben Sie einfach “PowerShell” direkt nach dem Öffnen des Startmenüs oder im Suchfeld ein.
Eine weitere Alternative besteht darin, innerhalb des Startmenüs zum Windows PowerShell-Ordner zu blättern und ihn von dort aus zu starten.
In einigen Fällen ist es jedoch nicht erforderlich, PowerShell zunächst manuell zu starten, um ein Skript auszuführen (siehe nächster Eintrag).
Wie kann ich ein PowerShell-Skript einfach ausführen?
Der einfachste Weg, ein PowerShell-Skript, das eine direkte Ausführung ermöglicht, auszuführen, ist ein Rechtsklick auf die Skripte und die Auswahl von: Mit PowerShell ausführen.
Wenn Sie nur den Code haben, z.B. von einer Webseite, dann können Sie den Code oft auch einfach direkt in ein PowerShell-Fenster kopieren/einfügen.
Wenn das Skript zuerst geladen werden muss oder zusätzliche Parameter benötigt, können Sie auch eine der folgenden Methoden verwenden;
Methode 1: Menü Datei
Suchen Sie im Datei-Explorer nach dem Ort, an dem Sie die ps1-Datei gespeichert haben, und wählen Sie;
1.) Datei-> Windows PowerShell öffnen
2.) Geben Sie den Namen des Skripts ein (oder einen Teil davon).
3.) Drücken Sie TAB, um das Skript automatisch zu vervollständigen und dann den Namen einzugeben.
Hinweis: Tun Sie dies auch dann, wenn Sie den Namen vollständig eingegeben haben. Das liegt daran, dass Dateien in PowerShell mit einem Punkt-Schrägstrich ( .\ ) beginnen müssen, und durch Drücken von TAB wird dies hinzugefügt. Natürlich können Sie auch manuell .\ vor Ihrem Dateinamen eingeben, aber die Verwendung von TAB könnte bequemer sein. Die Alternative ist, den Dateipfad vollständig einzugeben.
4.) Drücken Sie ENTER, um das Skript auszuführen.
Methode 2: Ziehen und Ablegen
1.) Ein PowerShell-Fenster öffnen
2.) Ziehen Sie das Skript per Drag & Drop aus dem Datei-Explorer oder von Ihrem Desktop in das PowerShell-Fenster.
3.) Vergewissern Sie sich, dass das PowerShell-Fenster aktiv ist (klicken Sie auf die Titelleiste, um sicherzustellen, dass es aktiv ist).
4.) Drücken Sie ENTER, um das Skript auszuführen.
Sicherheitsfehler “nicht digital signiert” für heruntergeladene Skripte
Wenn Sie versuchen, ein PowerShell-Skript auszuführen, das Sie aus dem Internet heruntergeladen haben, kann es zu Fehlern kommen;
- Das Skript freigeben
Klicken Sie mit der rechten Maustaste auf das Skript und wählen Sie Eigenschaften. Aktivieren Sie im Dialogfeld Eigenschaften, falls verfügbar, das Kontrollkästchen Blockierung aufheben und drücken Sie OK. - Ausführungsrichtlinie festlegen
Wenn es jetzt immer noch nicht funktioniert, geben Sie Folgendes in ein PowerShell-Fenster ein;
Set-ExecutionPolicy -RemoteSigned -Scope CurrentUser
Wenn Sie es nicht ändern können, hat Ihr Administrator höchstwahrscheinlich die Verwendung von PowerShell-Skripten eingeschränkt. Für weitere Informationen siehe auch; Set-ExecutionPolicy.
Dot-Source-Skripts innerhalb Ihres PowerShell-Profils
Wenn das Skript Funktionen enthält, die Sie regelmäßig benötigen, können Sie das Skript “dot-source”, indem Sie einen Verweis darauf in Ihrem PowerShell-Profil hinzufügen.
Durch das “dot-sourcing” des Skripts wird das Skript automatisch geladen (aber nicht ausgeführt!), wenn Sie PowerShell starten. Das bedeutet, dass Sie den Namen des im Skript enthaltenen PowerShell-Cmdlets (Funktion) direkt eingeben können.
Um ein Skript innerhalb Ihres PowerShell-Profils zu laden, öffnen Sie PowerShell und geben Sie den Namen ein;
notepad $profile
Wenn Notepad Sie fragt, dass die Datei nicht existiert und ob Sie sie erstellen möchten, wählen Sie “Ja”. Wenn Sie die Fehlermeldung “Das System kann den angegebenen Pfad nicht finden” erhalten, schließen Sie Notepad und geben Sie stattdessen den folgenden Befehl ein;
New-Item -Path $profile -ItemType “file” -Force
Geben Sie in Notepad einen Punkt, dann ein Leerzeichen und dann den vollständigen Pfad zum Skript ein. Zum Beispiel;
. “C:\Skript\MeinSkript.ps1”
Speichern und schließen Sie Notepad und starten Sie dann PowerShell neu. Sie können nun jede Funktion, die in der Datei MeinSkript.ps1 enthalten ist, direkt eingeben.
Anmerkung:
Standardmäßig wird Ihr PowerShell-Profil in einer Datei namens Microsoft.PowerShell_profile.ps1 gespeichert.
Um den genauen Speicherort zu ermitteln, verwenden Sie den folgenden PowerShell-Befehl;
Get-Item $profile
Erstellen eines geplanten Befehls, der ein PowerShell-Skript ausführt
Um ein PowerShell-Skript automatisch über einen geplanten Prozess auszuführen, müssen Sie es für die Ausführung von PowerShell konfigurieren und das Skript als Parameter hinzufügen.
1.) Aufgabenplaner öffnen.
Geben Sie einfach “Aufgabenplanung” direkt nach dem Öffnen des Startmenüs oder im Suchfeld ein
2.) Wählen Sie aus dem Bereich Aktionen auf der rechten Seite: Einfache Aufgabe erstellen…
3.) Geben Sie einen Namen für den geplanten Auftrag an und drücken Sie auf Weiter.
4.) Wählen Sie den Auslöser für die auszuführende Aufgabe. Zum Beispiel “Täglich” oder “Wenn ich mich anmelde“.
5.) Wählen Sie für die Aktion aus: Starten Sie ein Programm.
6.) Füllen Sie das Formular Start eines Programms wie folgt aus;
Programm/Skript: PowerShell
Argumente hinzufügen (optional): Pfad zu Ihrem PowerShell-Skript einschließlich aller Befehlszeilenschalter
Start in (optional): <leer lassen>
7.) Klicken Sie auf Weiter, um einen Überblick über Ihre neu erstellte Aufgabe zu erhalten, und klicken Sie dann auf Fertig stellen, um sie tatsächlich zu erstellen.
Tipp!
Sie können eigentlich auch alles innerhalb des Feldes Programm/Skript ausfüllen. Wenn Sie auf Weiter klicken, erkennt der Aufgabenplaner, dass Sie Argumente angegeben haben, und fragt Sie, ob er diese korrigieren soll oder nicht.
Laden Sie PowerShell-Module für Office 365 herunter und installieren Sie sie.
Wenn Sie mit PowerShell-Skripts für Office 365 arbeiten, müssen Sie zunächst die PowerShell-Module für jeden Dienst installieren und eine Verbindung zu diesem Dienst herstellen, bevor Sie Skripts ausführen können.
Einige dieser Module müssen separat heruntergeladen und installiert werden, aber die meisten können auch direkt über einen PowerShell-Befehl installiert werden.
Nachstehend finden Sie eine Übersicht über die gängigsten Module;
- Exchange
1.) Anmeldung beim Exchange-Administrationszentrum
2.) Hybrid auswählen
3.) Klicken Sie auf die Schaltfläche “Konfigurieren” für das Exchange Online-PowerShell-Modul.
Dieser direkte Link könnte ebenfalls funktionieren.
4.) Wählen Sie aus dem Startmenü; Microsoft Exchange Online PowerShell Module - SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Scope CurrentUser - Teams
Install-Module -Name MicrosoftTeams -Scope CurrentUse - Skype
Herunterladen und installieren; Skype für Unternehmen online, Windows PowerShell-Modul.
Import-Module SkypeOnlineConnector - Azure AD
V2 (Graph); Install-Module -Name AzureAD -Scope CurrentUser
V1 (Legacy); Install-Module -Name MSOnline -Scope CurrentUser
Anmerkung:
Falls Sie die Fehlermeldung erhalten, dass kein Projektarchiv verfügbar ist, registrieren Sie es auf folgende Weise;
Register-PSRepository -Default -InstallationPolicy Trusted -Verbose
Um zu überprüfen, ob die PSGallery verfügbar ist, verwenden Sie:
Get-PSRepository