Von Zeit zu Zeit muss man einen Computer neu aufsetzen. In Intune kann man das über einen „Wipe“ auslösen.

Nach einiger Zeit übernimmt der Computer den Befehl und führt den Wipe Befehl durch. Anders als bei den Feststationen früher kann ich die mobilen Geräte nicht über WOL oder Intel AMT aufstarten (damit das Neuaufsetzen über Nacht geschieht). Bis der Computer wieder einsatzbereit ist, dauert es bei uns meist über eine Stunde. So kommt das Neuaufsetzen also zu einem ungünstigen Zeitpunkt (nämlich dann, wenn der Computer zum Arbeiten eingeschaltet ist).
Im Moment müssen wir aber die Geräte der Lehrpersonen alle neu aufsetzen. Da wir alle unsere Server abschalten wollen, also auch die Domänencontroller, müssen wir die Computer vorher von der lokalen Domäne trennen. Das geht am einfachsten (und meines Wissens ausschliesslich) durch ein Neuaufsetzen.
Ideal wäre, wenn die Lehrpersonen den Zeitpunkt für den Wipe selber auslösen könnten. Dafür werden aber Adminrechte benötigt. Auf der Suche nach einer Lösung bin ich über diesen Blog gestossen. Die Idee ist, ein Programm über das Unternehmensportal anzubieten, das man zwar als Standardbenutzer auslösen kann, das aber im Hintergrund als „System“ die benötigten Rechte hat und eigentlich die gleichen Befehle ausführt, wie wenn der Befehl zum Wipe über Intune ausgelöst worden wäre.
Im Skript wird ein grosser Aufwand betrieben, um nochmals ein Fenster anzuzeigen, das man mit OK bestätigen muss. Darauf habe ich verzichtet. Ich werde das Programm per Mail ausführlich erklären und nur auf die Geräte ausrollen, die wirklich neu aufgesetzt werden müssen.
Das Programm lautet dann nur noch:
# Reset and wipe an Intune managed Windows 10/11 device
# Created by Jeroen Burgerhout (@BurgerhoutJ)
# Modified by Christian Kruesi
# Create a tag file just so Intune knows this was installed (Just for the fun)
if (-not (Test-Path "$($env:ProgramData)\schalt\ResetMDMDevice"))
{
Mkdir "$($env:ProgramData)\schalt\ResetMDMDevice"
}
Set-Content -Path "$($env:ProgramData)schalt\ResetMDMDevice\Reset-MDMWipeDevice.ps1.tag" -Value "Installed"
# And this is where the magic happens
$namespaceName = "root\cimv2\mdm\dmmap"
$className = "MDM_RemoteWipe"
$methodName = "doWipeMethod" #change this to doWipeMethod if you run this app on Surface devices
$session = New-CimSession
$params = New-Object Microsoft.Management.Infrastructure.CimMethodParametersCollection
$param = [Microsoft.Management.Infrastructure.CimMethodParameter]::Create("param", "", "String", "In")
$params.Add($param)
$instance = Get-CimInstance -Namespace $namespaceName -ClassName $className -Filter "ParentID='./Vendor/MSFT' and InstanceID='RemoteWipe'"
$session.InvokeMethod($namespaceName, $instance, $methodName, $params)
Das Skript habe ich als WipeDevice.ps1 gespeichert und dann in ein intunewin Programm umgewandelt.
Den Rest habe ich auch vom Originalblogpost genommen. Für Installation und Deinstallation heisst es dann verkürzt:
Install Command:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -NoProfile -File ".\WipeDevice.ps1"
Uninstall Command:
cmd.exe /c del %ProgramData%\schalt\ResetMDMDevice\Reset-MDMWipeDevice.ps1.tag
Und als „Detection rules“ überprüft man, ob die im Programm gesetzte Flag Datei vorhanden ist.

Danach kann man das Programm als „Available for enrolled devices“ der Gruppe der Computer, die noch mit der Domäne verbunden sind, verteilen.
Wie man die Gruppe der Geräte findet, konnte ich aus diesem Blog entnehmen.

Nun können die Lehrpersonen die App aus dem Unternehmensportal starten:
