Freigeben über


Verwenden von PowerShell-Skripts auf Windows-Geräten in Intune

Am 14. Oktober 2025 hat Windows 10 das Ende des Supports erreicht und erhält keine Qualitäts- und Featureupdates. Windows 10 ist eine zulässige Version in Intune. Geräte, auf denen diese Version ausgeführt wird, können sich weiterhin bei Intune registrieren und berechtigte Features verwenden. Die Funktionalität wird jedoch nicht garantiert und kann variieren.

Verwenden Sie die Verwaltungserweiterung für Microsoft Intune, um PowerShell-Skripts in Intune hochzuladen. Führen Sie diese Skripts dann auf Windows-Geräten aus. Die Verwaltungserweiterung verbessert MDM und erleichtert den Wechsel zur modernen Verwaltung.

Hinweis

Informationen zur Intune-Verwaltungserweiterung für Windows finden Sie unter Intune-Verwaltungserweiterung für Windows.

Bevor Sie beginnen

  • Skripts, die auf Benutzerkontext mit Administratorrechten festgelegt sind, führen PowerShell standardmäßig unter Administratorrechten aus.

  • Endbenutzer müssen sich nicht beim Gerät anmelden, um PowerShell-Skripts auszuführen.

  • Die Intune-Verwaltungserweiterung überprüft nach jedem Neustart auf neue Skripts oder Änderungen. Nachdem Sie die Richtlinie den Microsoft Entra Gruppen zugewiesen haben, wird das PowerShell-Skript ausgeführt, und die Ausführungsergebnisse werden gemeldet. Das Skript wird nur einmal ausgeführt. Eine erneute Ausführung erfolgt nur, wenn eine Änderung am Skript oder der Richtlinie vorgenommen wird. Wenn das Skript fehlschlägt, wiederholt die Intune-Verwaltungserweiterung das Skript dreimal für die nächsten drei aufeinander folgenden Intune-Verwaltungserweiterungs-Check-Ins.

  • PowerShell-Skripts, die dem Gerät zugewiesen sind, werden für jeden neuen Benutzer ausgeführt, der sich anmeldet, mit Ausnahme von SKUs mit mehreren Sitzungen, bei denen das Einchecken des Benutzers deaktiviert ist.

  • PowerShell-Skripts werden vor der Ausführung von Win32-Apps ausgeführt. Anders gesagt: PowerShell-Skripts werden zuerst ausgeführt. Anschließend werden Win32-Apps ausgeführt.

  • Bei PowerShell-Skripts tritt nach 30 Minuten ein Timeout auf.

Wichtig

Zu den bewährten Methoden für die Sensibilisierung des Datenschutzes bei der Verwendung von PowerShell-Skripts und Wartungsskripts gehören:

  • Schließen Sie keine vertraulichen Informationen in Skripts ein (z. B. Kennwörter).
  • Keine personenbezogenen Daten in Skripts einschließen
  • Verwenden Sie keine Skripts, um personenbezogene Daten von Geräten zu sammeln.
  • Befolgen Sie immer bewährte Methoden für den Datenschutz.

Weitere Informationen finden Sie unter Wartungen.

Voraussetzungen

  • Die Intune-Verwaltungserweiterung wird automatisch installiert, wenn dem Benutzer oder Gerät eine PowerShell-Skript-App zugewiesen wird. Weitere Informationen finden Sie unter Intune-Verwaltungserweiterung für Windows.

Wichtig

Skripts, die auf Clients bereitgestellt werden, auf denen die Intune-Verwaltungserweiterung ausgeführt wird, können nicht ausgeführt werden, wenn die Systemuhr des Geräts um Monate oder Jahre veraltet ist. Sobald die Systemuhr auf den neuesten Stand gebracht wurde, wird das Skript wie erwartet ausgeführt.

Erstellen und Zuweisen einer Skriptrichtlinie

  1. Melden Sie sich beim Microsoft Intune Admin Center an.

  2. Wählen Sie Geräte>Skripts und Korrekturen>Plattformskripts>Hinzufügen>Windows 10 und höher aus.

    Screenshot: Erstellen eines neuen Skripts für ein Windows-Gerät

  3. Geben Sie unter Grundlegende Einstellungen die folgenden Eigenschaften ein, und klicken Sie auf Weiter:

    • Name: Geben Sie einen Namen für das PowerShell-Skript ein.
    • Beschreibung: Geben Sie eine Beschreibung für das PowerShell-Skript ein. Diese Einstellung ist optional, wird jedoch empfohlen.
  4. Geben Sie unter Skripteinstellungen die folgenden Eigenschaften ein, und klicken Sie auf Weiter:

    • Skript-Speicherort: Navigieren Sie zum PowerShell-Skript. Das Skript muss kleiner als 200 KB (ASCII) sein.

    • Ausführen dieses Skripts mit den angemeldeten Anmeldeinformationen: Wählen Sie Ja (Standard) aus, um das Skript mit den Anmeldeinformationen des Benutzers auf dem Gerät auszuführen. Wählen Sie Nein aus, um das Skript im Systemkontext auszuführen. Viele Administratoren entscheiden sich für die Option Ja. Klicken Sie auf Nein, wenn das Skript nicht im Systemkontext ausgeführt werden muss.

    • Überprüfung der Skriptsignatur erzwingen: Wählen Sie Ja (Standard) aus, wenn das Skript von einem vertrauenswürdigen Herausgeber signiert werden muss. Wählen Sie Nein aus, wenn das Skript nicht signiert werden muss.

    • Ausführen eines Skripts im 64-Bit-PowerShell-Host:Wählen Sie Ja aus, um das Skript in einem 64-Bit-PowerShell-Host auf einer 64-Bit-Clientarchitektur auszuführen. Wenn Sie auf Nein (Standard) klicken, wird das Skript in einer 32-Bit-Version des PowerShell-Hosts ausgeführt.

      Wenn Sie die Optionen Ja oder Nein auswählen, verwenden Sie die folgende Tabelle für neues und bereits bestehendes Richtlinienverhalten:

      Skript auf 64-Bit-Host ausführen Clientarchitektur Neues Skript Bereits vorhandenes Richtlinienskript
      Nein 32-Bit 32-Bit-PowerShell-Host unterstützt Wird nur auf 32-Bit-PowerShell-Host ausgeführt, der sowohl auf 32-Bit- als auch 64-Bit-Architekturen funktioniert
      Ja 64-Bit Das Skript wird auf einem 64-Bit-PowerShell-Host für 64-Bit-Architekturen ausgeführt. Bei Ausführung auf einer 32-Bit-Architektur wird das Skript auf einem 32-Bit-PowerShell-Host ausgeführt. Das Skript wird auf einem 32-Bit-PowerShell-Host ausgeführt. Wenn diese Einstellung in 64-Bit geändert wird, wird das Skript auf einem 64-Bit-PowerShell-Host geöffnet (aber nicht ausgeführt) und meldet die Ergebnisse. Bei Ausführung auf einer 32-Bit-Architektur wird das Skript auf einem 32-Bit-PowerShell-Host ausgeführt.
  5. Klicken Sie auf Bereichstags. Bereichstags sind optional. Verwenden der rollenbasierten Zugriffssteuerung und Bereichstags für verteilte IT enthält weitere Informationen.

    So fügen Sie Bereichstags hinzu:

    • Wählen Sie Bereichstags> auswählen ein vorhandenes Bereichstag aus der Liste >Auswählen aus.

    • Klicken Sie anschließend auf Weiter.

  6. Klicken Sie auf Zuweisungen>Select groups to include (Gruppen auswählen, die hinzugefügt werden sollen). Eine vorhandene Liste von Microsoft Entra Gruppen wird angezeigt.

    • Wählen Sie mindestens eine Gruppe aus, die die Benutzer enthält, deren Geräte das Skript erhalten sollen. Klicken Sie auf Auswählen. Die von Ihnen ausgewählten Gruppen werden in der Liste angezeigt und erhalten Ihre Richtlinie.

      Hinweis

      PowerShell-Skripts in Intune können auf Microsoft Entra Gerätesicherheitsgruppen oder Microsoft Entra Benutzersicherheitsgruppen ausgerichtet werden. Bei der Ausrichtung auf am Arbeitsplatz eingebundene Geräte (WPJ) können jedoch nur Microsoft Entra Gerätesicherheitsgruppen verwendet werden (benutzeradressierung wird ignoriert).

    • Wählen Sie Weiter aus.

      Zuweisen oder Bereitstellen eines PowerShell-Skripts an/für Gerätegruppen in Microsoft Intune

  7. Unter Überprüfen + hinzufügen wird eine Zusammenfassung der Einstellungen angezeigt, die Sie konfiguriert haben. Klicken Sie auf Hinzufügen, um das Skript zu speichern. Wen Sie Hinzufügen auswählen, wird die Richtlinie für die ausgewählten Gruppen bereitgestellt.

Szenario: Fehler beim Ausführen des Skripts

8:00 Uhr

  • Einchecken
  • Skript ConfigScript01 ausführen
  • Fehler beim Ausführen des Skripts

9:00 Uhr

  • Einchecken
  • Skript ConfigScript01 ausführen
  • Fehler beim Ausführen des Skripts (Wiederholungsanzahl = 1)

10:00 Uhr

  • Einchecken
  • Skript ConfigScript01 ausführen
  • Fehler beim Ausführen des Skripts (Wiederholungsanzahl = 2)

11:00 Uhr

  • Einchecken
  • Skript ConfigScript01 ausführen
  • Fehler beim Ausführen des Skripts (Wiederholungsanzahl = 3)

12:00 Uhr

  • Einchecken
  • Es werden keine weiteren Versuche unternommen, das Skript ConfigScript01auszuführen.
  • Wenn keine weiteren Änderungen am Skript vorgenommen werden, werden keine weiteren Versuche unternommen, das Skript auszuführen.

Überwachen des Ausführungsstatus

Sie können den Ausführungsstatus von PowerShell-Skripts für Benutzer und Geräte im Portal überwachen.

Wählen Sie unter PowerShell-Skripts das zu überwachende Skript aus, klicken Sie auf Überwachen, und wählen Sie anschließend einen der folgenden Berichte aus:

  • Gerätestatus
  • Benutzerstatus

Hinweis

Geräte status Exporte aus dem Intune Admin Center für Plattformskripts verwenden jetzt die Intune-Export-API, und CSV-Spaltennamen entsprechen dem API-Schema.

Löschen eines Skripts

Klicken Sie unter PowerShell-Skripts mit der rechten Maustaste auf das Skript, und klicken Sie dann auf Löschen.

Häufige Probleme und Lösungen

Problem: PowerShell-Skripts werden nicht ausgeführt

Mögliche Lösungen:

  • Die PowerShell-Skripts werden nicht bei jeder Anmeldung ausgeführt. Sie werden in folgenden Fällen ausgeführt:

    • Wenn das Skript einem Gerät zugewiesen ist

    • Wenn Sie das Skript ändern, es hochladen und einem Benutzer oder Gerät zuweisen

      Tipp

      Bei der Microsoft Intune-Verwaltungserweiterung handelt es sich um einen Dienst, der wie die anderen Dienste in der Dienst-App (services.msc) auf dem Gerät ausgeführt wird. Nach dem Neustart eines Geräts wird dieser Dienst möglicherweise neu gestartet und nach zugewiesenen PowerShell-Skripts mit dem Intune-Dienst gesucht. Wenn der Microsoft Intune-Verwaltungserweiterungsdienst auf Manuell festgelegt ist, wird der Dienst nach dem Neustart des Geräts möglicherweise nicht neu gestartet.

  • Stellen Sie sicher, dass Geräte mit Microsoft Entra ID verknüpft sind. Geräte, die nur bei Ihrem Arbeitsplatz oder organization in Microsoft Entra-ID registriert sind, erhalten die Skripts nicht.

  • Vergewissern Sie sich, dass die Intune-Verwaltungserweiterung nach %ProgramFiles(x86)%\Microsoft Intune Management Extension heruntergeladen wurde.

  • Skripts werden nicht auf Surface Hubs oder Windows im S Modus ausgeführt.

  • Überprüfen Sie die Protokolle auf Fehler. Weitere Informationen zu Protokollen zur Intune-Verwaltungserweiterung finden Sie hier.

  • Stellen Sie zur Vermeidung möglicher Probleme mit Berechtigungen sicher, dass die Eigenschaften des PowerShell-Skripts auf Run this script using the logged on credentials festgelegt sind. Überprüfen Sie auch, ob der angemeldete Benutzer über die erforderlichen Berechtigungen zum Ausführen des Skripts verfügt.

  • Sie können Skriptprobleme folgendermaßen eingrenzen:

    • Überprüfen Sie die Konfiguration für die Ausführung von PowerShell auf Ihren Geräten. Weitere Informationen finden Sie unter Set-ExecutionPolicy.

    • Führen Sie über die Intune-Verwaltungserweiterung ein Beispielskript aus. Erstellen Sie zum Beispiel das Verzeichnis C:\Scripts, und erteilen Sie jedem Vollzugriff. Führen Sie folgendes Skript aus:

      write-output "Script worked" | out-file c:\Scripts\output.txt
      

      Wenn dies erfolgreich ist, sollte eine Datei mit dem Namen „output.txt“ erstellt werden, die den Text „Script worked“ (Skript hat funktioniert) enthält.

    • Führen Sie die Skripts zum Testen der Skriptausführung ohne Intune im Systemkonto aus, indem Sie das Tool psexec lokal verwenden:

      psexec -i -s

    • Wenn das Skript meldet, dass es erfolgreich war, aber nicht tatsächlich erfolgreich war, ist es möglich, dass Ihr Antivirendienst AgentExecutor als Sandboxing verwendet. Das folgende Skript meldet in Intune grundsätzlich einen Fehler. Als Test können Sie dieses Skript verwenden:

      Write-Error -Message "Forced Fail" -Category OperationStopped
      mkdir "c:\temp"
      echo "Forced Fail" | out-file c:\temp\Fail.txt
      

      Wenn das Skript einen Erfolg meldet, überprüfen Sie AgentExecutor.log, um die Fehlerausgabe zu bestätigen. Wenn das Skript ausgeführt wird, sollte die Länge 2 sein >.

    • Der folgende Codeausschnitt führt das Skript über AgentExecutor für PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0) aus, um die .error- und .output-Dateien zu erfassen. Die Protokolle werden zur Überprüfung aufbewahrt. Beachten Sie, dass die Intune-Verwaltungserweiterung die Protokolle nach der Skriptausführung bereinigt:

      $scriptPath = read-host "Enter the path to the script file to execute"
      $logFolder = read-host "Enter the path to a folder to output the logs to"
      $outputPath = $logFolder+"\output.output"
      $errorPath =  $logFolder+"\error.error"
      $timeoutPath =  $logFolder+"\timeout.timeout"
      $timeoutVal = 60000
      $PSFolder = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0"
      $AgentExec = "C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe"
      &$AgentExec -powershell  $scriptPath $outputPath $errorPath $timeoutPath $timeoutVal $PSFolder 0 0
      

Problem: Warum werden Skripts ausgeführt, obwohl Windows nicht mehr verwaltet wird?

Wenn ein Windows-Gerät mit zugewiesenen Skripts nicht mehr verwaltet wird, wird der IME nicht sofort entfernt. Der IME erkennt beim nächsten IME-Check-In (normalerweise alle 8 Stunden), dass windows nicht verwaltet wird, und bricht Skriptausführungen ab. In der Zwischenzeit konnten alle lokal gespeicherten Skripts ausgeführt werden. Wenn der IME nicht eingecheckt werden kann, wiederholt er das Einchecken für bis zu 24 Stunden (Zeitpunkt der Gerätewachzeit) und entfernt sich dann selbst vom Windows-Gerät.

Nächste Schritte

Überwachung und Problembehandlung Ihrer Profile.