Breaking News

Das PowerShell-Skript, das jeder Administrator mindestens einmal pro Woche ausführen sollte

In der dynamischen Welt der Systemadministration ist proaktives Management der Schlüssel zur Gewährleistung der Sicherheit, Stabilität und Leistung von IT-Umgebungen. Eines der leistungsstärksten Tools, die Administratoren zur Verfügung stehen, ist PowerShell, eine Skriptsprache und Befehlszeilenumgebung, die dabei hilft, viele Aufgaben auf Windows-Systemen zu automatisieren. Jede Woche sollte von jedem Administrator ein bestimmtes PowerShell-Skript ausgeführt werden, ein einfaches, aber äußerst effektives Tool, um den reibungslosen Ablauf des IT-Betriebs zu gewährleisten. Dieses Skript konzentriert sich insbesondere auf die Verwaltung von PowerShell-Skriptausführungsrichtlinien, ein entscheidender Aspekt, der oft übersehen wird. In diesem Artikel wird diese wesentliche Funktionalität ausführlich untersucht.

Grundlegendes zur Strategie zur Ausführung von PowerShell-Skripten

Dort Ausführungsstrategie in PowerShell bestimmt, welche Befehle und Skripte auf einem System ausgeführt werden können. Dabei handelt es sich um eine Sicherheitsfunktion, die den Benutzer vor der Ausführung bösartiger Skripte schützt. Das Verständnis dieser Richtlinie und das Wissen, wie man sie konfiguriert, ist für jeden Administrator, der eine sichere und effiziente Windows-Umgebung aufrechterhalten möchte, von grundlegender Bedeutung.

Es gibt mehrere Ebenen Ausführungsstrategien, jedes mit seinen eigenen Sicherheitsauswirkungen und -stufen. Hier finden Sie eine Übersicht über die wichtigsten verfügbaren Richtlinien:

  • Eingeschränkt: Blockiert alle Skripte, sodass nur interaktive Befehle in der Konsole ausgeführt werden können.
  • Alle signiert: Lässt nur die Ausführung von Skripten zu, die von einem vertrauenswürdigen Herausgeber signiert wurden.
  • RemoteSigned: Ermöglicht die Ausführung nicht signierter lokaler Skripts, blockiert jedoch Skripts aus dem Internet, sofern diese nicht signiert sind.
  • Uneingeschränkt: Ermöglicht die Ausführung aller Skripts, zeigt jedoch Warnungen für diejenigen an, die aus dem Internet kommen.
  • Bypass: Wendet keine Einschränkungen an und ermöglicht die Ausführung aller Skripts ohne Warnung des Benutzers.
  • Undefiniert: Gibt an, dass die Richtlinie nicht festgelegt ist und die Richtlinie auf höherer Ebene angewendet wird.

Für Unternehmensumgebungen ist die Strategie Alle signiert wird im Allgemeinen am meisten empfohlen, da es ein hohes Maß an Sicherheit bietet und dennoch die erforderliche Ausführung von Skripten ermöglicht. Je nach Bedarf können jedoch auch andere Richtlinien angewendet werden, abhängig vom Ausführungskontext.

Erkundung von Ausführungsstrategien

Um zu sehen, welche Richtlinie derzeit auf Ihrem System angewendet wird, verwenden Sie das Cmdlet Get-ExecutionPolicy kann verwendet werden:

<!– wp:code {"content":"
Get-ExecutionPolicy
„} –>
Get-ExecutionPolicy

Um eine detailliertere Ansicht der Ausführungsrichtlinien für jeden Bereich zu erhalten, können Sie Folgendes verwenden:

<!– wp:code {"content":"
Get-ExecutionPolicy -List
„} –>
Get-ExecutionPolicy -List

Hier werden die auf jeden Bereich angewendeten Richtlinien angezeigt, einschließlich für Verfahren, AktuellerBenutzer Und Lokale Maschine.

Ausmaß Ausführungsrichtlinie
Verfahren Richtlinie, die auf die aktuelle PowerShell-Sitzung angewendet wird
AktuellerBenutzer auf den angemeldeten Benutzer angewendete Richtlinie
Lokale Maschine Strategie für die gesamte Maschine

Es empfiehlt sich, diese Konfigurationen regelmäßig zu überprüfen, um sicherzustellen, dass sie weiterhin den Sicherheitsanforderungen der Organisation entsprechen.

So ändern Sie die Ausführungsstrategie

Das Ändern der Ausführungsrichtlinie ist ein relativ einfacher Vorgang, erfordert jedoch Administratorrechte. Verwenden des Cmdlets Ausführungsrichtlinie festlegen ermöglicht es Ihnen, eine neue Strategie zu definieren. Um beispielsweise eine Richtlinie festzulegen für Alle signiert, sollte der folgende Befehl ausgeführt werden:

<!– wp:code {"content":"
Set-ExecutionPolicy -ExecutionPolicy AllSigned
„} –>
Set-ExecutionPolicy -ExecutionPolicy AllSigned

Es ist auch möglich, den Anwendungsbereich dieser Richtlinie festzulegen:

<!– wp:code {"content":"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
„} –>
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Dieser Befehl wendet die Richtlinie nur auf den aktuellen Benutzer an, was in einer Umgebung mit mehreren Benutzern nützlich sein kann.

In einer Organisation kann es sinnvoll sein, für alle Benutzer strenge Ausführungsrichtlinien festzulegen, um die mit der Ausführung nicht überprüfter Skripts verbundenen Risiken zu verringern. Hier sind einige bewährte Vorgehensweisen, die Sie berücksichtigen sollten:

  • Fördern Sie die Nutzung der Strategie Alle signiert um sicherzustellen, dass nur verifizierte Skripte ausgeführt werden.
  • Informieren Sie Benutzer über die Risiken, die mit der Ausführung heruntergeladener Skripts verbunden sind.
  • Führen Sie regelmäßige Kontrollen durch, um die Einhaltung der Einstellungen der Ausführungsstrategie sicherzustellen.

Durch die Erstellung einer Dokumentation zu Ausführungsstrategien und den Gründen für ihre Auswahl wird das Bewusstsein geschärft und das Verwaltungspersonal geschult.

Automatisieren Sie die Überprüfung der Ausführungsstrategie

Ein guter Systemadministrator weiß, dass proaktive Überwachung zu wertvollen Zeiteinsparungen führen kann. Das Schreiben eines kleinen PowerShell-Skripts zum Überprüfen der Ausführungsrichtlinie und zum Senden von Warnungen bei Änderungen kann zur Aufrechterhaltung der fortlaufenden Compliance beitragen.

<!– wp:code {"content":"
n$executionPolicy = Get-ExecutionPolicy -Listnif ($executionPolicy.CurrentUser -ne "AllSigned") {n    Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "Alerte sur stratu00e9gie d'exu00e9cution" -Body "La politique d'exu00e9cution de l'utilisateur a changu00e9." -SmtpServer "smtp.example.com"n}n
„} –>

$executionPolicy = Get-ExecutionPolicy -List
if ($executionPolicy.CurrentUser -ne "AllSigned") {
    Send-MailMessage -An "[email protected]" -Von "[email protected]" -Betreff "Ausführungsrichtlinienwarnung" -Text "Die Ausführungsrichtlinie des Benutzers hat sich geändert." -SmtpServer "smtp.example.com"
}

Dieses Skript sendet eine E-Mail an den entsprechenden Administrator, wenn die aktuelle Ausführungsrichtlinie nicht dem erwarteten Standard entspricht. Dies hilft, nach unerwarteten und potenziell gefährlichen Änderungen Ausschau zu halten.

Hier sind einige Vorschläge zur Verbesserung der Audit-Automatisierungsprozesse:

  • Integrieren Sie zusätzlich zu den Ausführungsrichtlinien Prüfungen für andere Sicherheitseinstellungen.
  • Planen Sie die Ausführung dieses Skripts in festgelegten Intervallen, beispielsweise jede Woche.
  • Verwenden Sie Konfigurationsmanagement-Tools wie Chef, Marionette Oder SolarWinds um die Integrität der Systemkonfigurationen aufrechtzuerhalten.

Durch die Automatisierung dieser Prüfungen verringern Sie das menschliche Risiko und können sich auf andere wichtige Aspekte des IT-Managements konzentrieren.

Entsperren eines sicheren PowerShell-Skripts

Beim Herunterladen von Skripts aus dem Internet werden diese möglicherweise als nicht vertrauenswürdig markiert, sodass ihre Ausführung im Rahmen der Windows-Sicherheit standardmäßig verhindert wird. Um sie auszuführen, müssen wir sie mit dem Cmdlet „entsperren“ Entsperren-Datei.

<!– wp:code {"content":"
Unblock-File "C:TEMPscript.ps1"
„} –>
Entsperren Sie die Datei "C:TEMPscript.ps1"

Dieser Befehl entfernt den Sicherheitsschutz, der mit der heruntergeladenen Datei verbunden ist. Es wird empfohlen, diesen Befehl nur für Dateien aus vertrauenswürdigen Quellen zu verwenden.

Administratoren sollten beim Entsperren von Dateien vorsichtig sein und Folgendes beachten:

  • Überprüfen Sie die Integrität und Quelle des Skripts, bevor Sie es entsperren.
  • Dokumentieren Sie entsperrte Skripte, um den Bestand und die Rückverfolgbarkeit aufrechtzuerhalten.
  • Bewerten Sie potenzielle Risiken, bevor Sie grünes Licht für die Ausführung eines sensiblen Skripts geben.

Die ordnungsgemäße Verwaltung heruntergeladener Skripte kann die Sicherheit eines Systems erheblich verbessern.

Administrative Ausführung von PowerShell-Skripten

In vielen Situationen sind zum Ausführen von Skripts Administratorrechte erforderlich, um auf bestimmte Systemressourcen zuzugreifen oder kritische Änderungen vorzunehmen. So kann ein Administrator problemlos ein Skript mit erhöhten Berechtigungen ausführen:

<!– wp:code {"content":"
Start-Process powershell -Verb RunAs -ArgumentList "-File C:TEMPscript.ps1"
„} –>
Start-Prozess Powershell -Verb RunAs -ArgumentList "-Datei C:TEMPscript.ps1"

Dadurch wird ein neuer PowerShell-Prozess mit Administratorrechten gestartet, um das angegebene Skript auszuführen. Stellen Sie sicher, dass die Benutzer in dieser Methode geschult sind, um mögliche Fehler zu vermeiden.

Es ist auch denkbar, ein Self-Elevation-Skript zu schreiben, um diesen Prozess zu automatisieren:

<!– wp:code {"content":"
nif (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {n    Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `$PSCommandPath"n    Exitn}n
„} –>

    Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `$PSCommandPath"
    Ausfahrt
}

Wenn ein Benutzer bei diesem Ansatz versucht, das Skript ohne Administratorrechte auszuführen, wird das Skript automatisch mit den erforderlichen Anforderungen neu gestartet. Es handelt sich um eine sichere Methode, die die Verwaltung von Berechtigungen vereinfacht.