scloud by Florian Salzmann
ende

Speicherplatz für Windows 11-Upgrades mit Intune Remediation sicherstellen

Als Microsoft das Supportende von Windows 10 ankündigte, begann ich, mehrere Kunden auf den Wechsel zu Windows 11 vorzubereiten.
Dabei zeigte sich schnell ein häufiges Problem: Viele Geräte scheiterten am Upgrade wegen zu wenig Speicherplatz.

Einige Laptops haben nur eine 124 GB SSD. Das reicht kaum für grosse Funktionsupdates. Obwohl die Hardware alle Anforderungen erfüllt, blieb der Upgrade-Prozess oft mittendrin stehen.
Um das zu lösen, habe ich eine einfache Intune Remediation erstellt, die den freien Speicher prüft und Nutzern hilft, Papierkorb und Downloads zu bereinigen.

Nur das Skript?

Wenn Du nur die Remediation möchtest, kannst Du sie hier herunterladen:

Remediation mit Benutzerinteraktion @GitHub

Das Paket enthält Erkennungs- und Bereinigungsskripte als fertige PowerShell-Dateien zum Import in Intune.

Wenn Du verstehen willst, wie es funktioniert, wie man es bereitstellt und warum es wichtig ist, lies weiter. Ich zeige Dir alles Schritt für Schritt.

Warum freier Speicher für Windows 11-Upgrades wichtig ist

Windows 11 braucht mindestens 64 GB, doch in der Praxis hat sich gezeigt: Rund 25–30 GB freier Speicher sind sicher für ein reibungsloses Upgrade.
Bei Deployments bemerkte ich, dass Upgrades oft fehlschlugen, wenn Geräte weniger Platz hatten.

Mit Intune Remediations erkennst Du solche Geräte früh und kannst Benutzer automatisch durch die Bereinigung führen, komplett ohne Adminrechte oder manuelle Arbeit.

Was diese Remediation macht

Diese schlanke Lösung erledigt drei einfache Dinge:

  1. Erkennung: Prüft, ob das Systemlaufwerk mindestens 30 GB frei hat und berechnet die Grösse von Papierkorb und Downloads.
  2. Bewertung: Wenn beide zusammen über 500 MB belegen, startet die Bereinigung.
  3. Aktion: Zeigt ein Popup, in dem Nutzer selbst bereinigen oder automatisch aufräumen können.

Die Meldung erklärt, dass Dateien im Downloads-Ordner nicht gesichert sind und besser nach OneDrive oder in Dokumente verschoben werden sollen.

So bleiben Benutzer in Kontrolle, und fehlgeschlagene Windows 11-Upgrades gehen deutlich zurück.

Beispiel: Popup und Funktionsweise

Wenn eine Remediation ausgelöst wird, erscheint ein Popupfenster. Darin sehen Nutzer ihre Optionen:
Ordner öffnen, automatisch bereinigen oder abbrechen.
Ein kurzes Demo-Video findest Du im GitHub-Repo.

Popup to clean up Downloads and Recycle bin

Detection Script

Das folgende Skript prüft den freien Platz auf Laufwerk C, berechnet die Grösse von Papierkorb und Downloads und löst nur aus, wenn eine Bereinigung sinnvoll ist.

$MinGBFree    = 30
$MinReclaimMB = 500

try { $freeBytes = (Get-PSDrive -Name C -ErrorAction Stop).Free } catch { exit 0 }

if ($freeBytes -ge ($MinGBFree * 1GB)) {
  Write-Output "OK. Free space is above $MinGBFree GB."
  exit 0
}

$downloadsPath = Join-Path $env:USERPROFILE "Downloads"
$dlBytes = 0
if (Test-Path -LiteralPath $downloadsPath) {
  $dlBytes = (Get-ChildItem -LiteralPath $downloadsPath -Recurse -Force -File -ErrorAction SilentlyContinue | Measure-Object -Sum Length).Sum
}

$rbBytes = 0
try {
  $shell = New-Object -ComObject Shell.Application
  $rb = $shell.Namespace('shell:RecycleBinFolder')
  if ($rb) { foreach ($item in $rb.Items()) { try { $rbBytes += [int64]$item.Size } catch {} } }
} catch {}

$combinedBytes = [int64]$dlBytes + [int64]$rbBytes
$combinedMB = [math]::Round($combinedBytes / 1MB, 0)

Write-Output "Low space. Combined Downloads + Recycle Bin = $combinedMB MB."

if ($combinedBytes -ge ($MinReclaimMB * 1MB)) {
  Write-Output "Trigger remediation."
  exit 1
}

Write-Output "No remediation needed."
exit 0

Remediation Ablauf

Wenn das Gerät den Schwellenwert unterschreitet, startet das Bereinigungsskript.
Es zeigt eine freundliche Nachricht mit drei Buttons:

  • Downloads öffnen
  • Papierkorb öffnen
  • Jetzt bereinigen

Die Nachricht erklärt, warum mehr Speicher nötig ist und dass Dateien im Downloads-Ordner lokal bleiben. Wenn das Aufräumen nicht reicht, hilft der IT-Support weiter.

# Remediation summary
# Shows a notification to help users free up space

Title:   "More space needed for the Windows 11 upgrade"
Message: "Your device does not have enough free space to complete the upgrade. 
          You can free up space by clearing the Recycle Bin and the Downloads folder. 
          Files in Downloads are not backed up anywhere. 
          If you need to keep them, move them to OneDrive or Documents before cleaning."
Advice:  "If cleanup does not free enough space, IT will assist you. 
          This may require manual steps and a short interruption of work."

Buttons:
  [Open Downloads]   Opens the Downloads folder
  [Open Recycle Bin] Opens the Recycle Bin
  [Clean up now]     Clears both automatically

Das komplette Skript findest du hier zum download:
👉 GitHub - Intune FreeDiskSpace Remediation

Eigenes Toast-Bild hinzufügen

Die Remediation unterstützt ein Hero-Bild oben in der Benachrichtigung. Verwende dazu eine sehr kleine Datei, damit die Benachrichtigung schnell angezeigt wird und das Skript nicht unnötog gross wird.

Erstelle das Bild im richtigen Format

  1. Verwende ein kleines PNG oder JPG (728 × 360 px, unter 10 KB)
  2. Wenn Du Hilfe beim Verkleinern brauchst, nutze https://tinypng.com/

Convert to Base64

  1. Öffne [https://codebeautify.org/image-to-base64-converter](https://codebeautify.org/image-to-base64-converter)
  2. Lade das Bild hoch
  3. Kopiere den Base64-Text und füge ih wie unten beschrieben ein.

Anpassen der Remediation
Ersetze im Remediation-Skript den Platzhalter durch die Base64-Zeichenfolge.

# At the top of the remediation script
$Picture_Base64 = "<paste your Base64 here>"

Das Skript schreibt das Bild in eine temporäre Datei und verwendet es als Grafik in der Benachrichtigung.
Wenn du kein Bild möchtest, setze den Wert auf „xx“ oder entfernen die Variable, damit der Code diesen Schritt überspringt.

Hochladen und Zuweisen in Intune

Folge diesen Schritten, um die Detection und Remediation zu einem Remediation-Paket hinzuzufügen:

  1. Öffne das Intune Admin Center.
  2. Gehe zu Geräte > Skripte und Remediations > Remediations.
  3. Wähle Erstellen und gib einen Namen an, z. B. WIN-PR-U-FreeDiskSpace.
  4. Einstellungen:
    • Detection script: Lade das Detection Skript von diesem Post hoch
    • Remediation script: Lade das Remediation Skript von diesem Post hoch oder die angepasst Version von dir (Bild)
    • Run this script using the logged-on credentials: Yes
    • Enforce script signature check: No (nur „Yes“, wenn du es selbst signierst)
    • Run script in 64-bit PowerShell: Yes
  5. Scope tags nur falls du diese nutzt
  6. Assignments
    • Starte mit einer Pilotgruppe und erweitere danach auf mehr Geräte.
    • Du kannst auch “Alle Geräte” mit einem Filter für Windows 10 verwenden: (device.osVersion -startsWith "10.0.19")
  7. Schedule
    • Ein Intervall von 3–7 Tagen ist ein guter Startwert, während der Upgrade-Phase evtl. täglich.

Intune, create Remediation package

Intune, Detection and remediation script settings

Intune, Remediation assignment and schedule

Ergebnisse überwachen

Im Intune-Portal kannst Du die Ergebnisse direkt sehen:

Intune > Devices > Scripts and remediations > Your Script (eg. WIN-PR-U-FreeDiskSpace)
> Device status

Intune Remediation monitoring

In dieser Ansicht siehst Du alle gesammelten Informationen, auch die Ausgabe des Erkennungsskripts vor der Bereinigung und, falls zutreffend, das Ergebnis danach.
So kannst Du prüfen, ob die Bereinigung wie erwartet funktioniert und welche Geräte noch Aufmerksamkeit brauchen.

Wenn nach mehreren Durchläufen viele Geräte weiterhin zu wenig Speicherplatz haben, überprüfe, ob sie sehr kleine SSDs besitzen oder ob Benutzer grosse lokale Daten im Downloads Ordner behalten.
Diese Daten helfen Dir, die nächste Upgrade Welle zu planen oder die Kommunikation mit den Benutzern zu verbessern.

Falls Du die Ausgaben der Erkennung oder Bereinigung nicht siehst, öffne im Bericht das Menü Spalten und aktiviere die fehlenden Felder.
Leider wird diese Ansicht nicht gespeichert, und Du musst die Spalten beim nächsten Öffnen des Berichts erneut auswählen.

Intune Remediation adjust Monitoring view

Erfahrunge in der Praxis

In einem Unternehmen mit über 20’000 Geräten half diese Intune Remediation, Upgrade Fehler deutlich zu reduzieren. In diesem Fall hatten wir zwischen 1’000 und 2’000 Geräte mit sehr kleinen Festplatten, die fast voll waren. Wir stellten fest, dass in den meisten Fällen genau diese beiden Ordner riesig waren.

Indem die Benutzer den Inhalt des Downloads Ordners manuell nach OneDrive verschoben und Files On Demand nutzten, um lokalen Speicher zu sparen, sowie den Papierkorb leerten, konnten wir einen grossen Teil der Probleme beheben. Die meisten Geräte bereinigten automatisch genug Speicherplatz, um das Upgrade fortzusetzen, und nur wenige brauchten noch manuelle Unterstützung durch die IT.

Ein paar Benutzer wollten absichtlich auf Windows 10 bleiben und machten ihre Festplatten extra voll. Deshalb fügte ich den Hinweis hinzu, dass ein IT Ticket erstellt wird, wenn die Bereinigung nicht automatisch gelöst werden kann und dies die Arbeit kurz unterbricht. Das traf zwar nur auf wenige zu, half aber vielen anderen weiter.

Fazit

Kleine Automationen machen oft den grössten Unterschied.
Mit Intune Remediations stellst Du sicher, dass Geräte genug Speicher haben, Upgrade-Fehler sinken und der Umstieg auf Windows 11 einfacher wird.