PowerShell ist ein leistungsstarkes Tool für Systemadministratoren und Entwickler, das die Automatisierung komplexer Aufgaben und die Verwaltung von Systemen ermöglicht. Einer der häufigsten Stolpersteine für Neueinsteiger und manchmal auch für erfahrene Benutzer ist jedoch die Fehlermeldung: “Die Ausführung von Skripts auf diesem System ist deaktiviert.” Dieser Artikel führt Sie durch die Gründe hinter dieser Sicherheitsmaßnahme, wie Sie die Ausführungsrichtlinien anpassen können, und bietet Best Practices für die sichere Ausführung von PowerShell-Skripten.

Warum sind Skriptausführungen in PowerShell standardmäßig deaktiviert?

Microsoft hat PowerShell mit einer eingebauten Sicherheitsfunktion, bekannt als Ausführungsrichtlinien, ausgestattet. Diese Richtlinien sind dazu gedacht, das unbeabsichtigte Ausführen potenziell schädlicher Skripte zu verhindern. Die Standardrichtlinie, “Restricted”, verhindert die Ausführung aller Skripte, um sicherzustellen, dass Benutzer nicht versehentlich Skripte ausführen, die das System beschädigen könnten.

Ausführungsrichtlinien in PowerShell

PowerShell unterstützt verschiedene Ausführungsrichtlinien, um unterschiedliche Sicherheitsbedürfnisse zu erfüllen:

  • Restricted: Verhindert die Ausführung aller Skripte.
  • AllSigned: Erlaubt nur die Ausführung von Skripten, die mit einem vertrauenswürdigen Zertifikat signiert sind.
  • RemoteSigned: Erlaubt die Ausführung von Skripten, die auf dem lokalen System erstellt wurden, während Skripte aus dem Internet signiert sein müssen.
  • Unrestricted: Erlaubt die Ausführung aller Skripte, wobei eine Warnung bei Skripten aus dem Internet angezeigt wird.

Überprüfung und Änderung der Ausführungsrichtlinie

Um die derzeitige Ausführungsrichtlinie zu überprüfen, öffnen Sie PowerShell als Administrator und führen Sie folgenden Befehl aus:

Get-ExecutionPolicy

Um die Ausführungsrichtlinie zu ändern, nutzen Sie den Set-ExecutionPolicy-Befehl, gefolgt von der gewünschten Richtlinienstufe. Zum Beispiel:

Set-ExecutionPolicy RemoteSigned

Umgang mit der Fehlermeldung ohne Administratorrechte

Sollten Sie nicht über Administratorrechte verfügen, können Sie dennoch die Ausführungsrichtlinie für Ihren Benutzerkontext ändern. Der folgende Befehl setzt die Richtlinie auf “RemoteSigned” für den aktuellen Benutzer:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Diese Möglichkeit ist besonders nützlich in Umgebungen, in denen Benutzern keine Administratorrechte gewährt werden können. Es erlaubt individuellen Benutzern, ihre Arbeit zu automatisieren und gleichzeitig das Sicherheitsniveau des Systems zu wahren.

Best Practices für die Ausführung von PowerShell-Skripten

Die Flexibilität von PowerShell kommt mit der Verantwortung, sichere Praktiken zu befolgen:

  • Verwenden Sie Skripte aus vertrauenswürdigen Quellen: Seien Sie vorsichtig beim Ausführen von Skripten, die Sie online finden. Stellen Sie sicher, dass sie von einer vertrauenswürdigen Quelle stammen.
  • Überprüfen Sie Skripte vor der Ausführung: Nehmen Sie sich die Zeit, den Code zu verstehen, den Sie ausführen werden, insbesondere wenn er sensible Aufgaben durchführt.
  • Digitale Signaturen: Erwägen Sie die Verwendung digital signierter Skripte, insbesondere in Produktionsumgebungen. Dies erhöht die Sicherheit durch die Gewährleistung der Skriptintegrität.
  • Minimale Rechte: Führen Sie Skripte immer mit dem minimal erforderlichen Zugriffslevel aus. Vermeiden Sie die Ausführung von Skripten mit Administratorrechten, es sei denn, es ist absolut notwendig.

siehe auch hier