SID-500

Home » PowerShell » PowerShell: Ändern der ExecutionPolicy

PowerShell: Ändern der ExecutionPolicy

Man ladet sich ein Skript vom Internet und möchte es ausführen. Das Skript hat die Endung .ps1. Rote Buchstaben füllen den Bildschirm. Rot ist meist nicht gut. Gelb ist ok, also nicht so schlimm, aber rot?

Beinahe jedes PowerShell Buch beginnt mit zwei grundlegenden Themen: Die Benutzung der PowerShell Hilfe und dem “Dasein” einer Ausführungsrichtlinie, genannt ExecutionPolicy. Und beide Themen sind für den Einstieg in PowerShell unverzichtbar.

Die PowerShell ExecutionPolicy verhindert das Ausführen von PS1 Skripts. Aus Sicherheitsgründen. Um PS1 Skripts ausführen zu können muss die ExecutionPolicy in den meisten Fällen geändert werden. In Windows 10 ist das zwingend nötig (auch für eigens erstelle Skripts), in Windows Server 2016 nur dann, wenn heruntergeladene Skripts nicht digital signiert sind.

Status der Ausführungsrichtlinie überprüfen

Windows PowerShell öffnen und den Status mit Get-ExecutionPolicy überprüfen:

Get-ExecutionPolicy

1.PNG

RemoteSigned ist die Standardeinstellung unter Windows Server 2012/2016. Restricted der Standard unter Windows 8/10.

Die 4 – aus meiner Sicht – wichtigsten Ausführungsparameter sind:

  • Restricted: Es dürfen keine Skripts ausgeführt werden
  • AllSigned: Alle Skripts müssen von einem vertrauenswürdigen Herausgeber signiert sein, auch die eigenen.
  • RemoteSigned: Alle Skripts aus dem Internetmüssen von einem vertrauenswürdigen Herausgeber signiert sein.
  • Unrestricted: Alle Skripts werden ausgeführt

Quelle: Technet Set-Executionpolicy

Ändern der ExecutionPolicy

Ist ein Skript nicht digital signiert, oder wurde es aus dem Internet heruntergeladen, dann wird man mit roten Buchstaben überflutet:

4.PNG

Wer liest ist klar im Vorteil:

… kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist.

Bei der Überprüfung fällt auf, dass die Policy ist auf Restricted konfiguriert ist.

0.PNG

Wenn dieses Skript ausgeführt werden soll, muss die Executionpolicy geändert werden. Zum Beispiel auf RemoteSigned:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Remotesigned

0a.PNG

Der Parameter Scope bestimmt den Bereich der Änderung:

  • Process: wirkt sich auf nur den aktuellen Prozess aus
  • CurrentUser: wirkt sich auf nur den aktuellen Benutzer aus
  • LocalMachine: wirkt sich auf alle Benutzer des Computers aus

Viel Spaß beim Ausführen von PowerShell Skripts. Coole Skripts gibts im Microsoft Skript Center oder auch hier mit besonderem Fokus auf das automatisierte Anlegen von Benutzern in Active Directory und Exchange:

Active Directory / Exchange: Onboarding von Benutzern automatisieren (Skript)

Active Directory / Exchange: Offboarding von Benutzern automatisieren (Skript)


1 Comment

  1. […] Infos zur Executionpolicy findet ihr in meinem Beitrag PowerShell: Ändern der ExecutionPolicy. […]

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

WHOIS

My name is Patrick Grünauer (pewa2303). I am from Austria. On sid-500 I write about Windows, Cisco and IT-Security in English and German. Have fun while reading!

Patrick Gruenauer
Follow SID-500 on WordPress.com