Dateiname zu lang

Neulich konnte mein Benutzerprofil nicht vom Server geladen werden, weil ein Dateiname zu lang ist.

In der Ereignisanzeige stand dazu folgendes:

Die Datei \bibliothekdfsprofileHaraldPop.V2AppDataRoamingMicrosoftWindowsRecent
http--digitool.hbz-nrw.de1801-view-action-singleViewer.dodvs=1285079615708~695&locale=de_DE&
preferred_usage_type=VIEW_MAIN&DELIVERY_RULE_ID=10510&frameId=1&usePid1=true&usePid2=true.lnk
konnte nicht nach C:UsersHaraldPopAppDataRoamingMicrosoftWindowsRecent
http--digitool.hbz-nrw.de1801-view-action-singleViewer.dodvs=1285079615708~695&locale=de_DE
&preferred_usage_type=VIEW_MAIN&DELIVERY_RULE_ID=10510&frameId=1&usePid1=true&usePid2=true.lnk
kopiert werden.
Mögliche Fehlerursachen sind Netzwerkprobleme oder nicht ausreichende Sicherheitsrechte.
Details - Der Dateiname oder die Erweiterung ist zu lang.

Tja, was ist da schiefgelaufen? Offensichtlich hatte sich in meinem Profil eine sehr lange Datei angesammelt.

C:UsersHaraldPopAppDataRoamingMicrosoftWindowsRecenthttp--digitool.hbz-nrw.de1801-view-action-
singleViewer.dodvs=1285079615708~695&locale=de_DE&preferred_usage_type=VIEW_MAIN&DELIVERY_RULE_ID=10510
&frameId=1&usePid1=true&usePid2=true.lnk

ist 246 Zeichen lang.

Nachdem sie auf den Server kopiert wurde, ist sie wegen dem geänderten Pfad  264 Zeichen lang. Das ist wohl zu viel für Windows. Alles über 260 Zeichen macht Probleme.

Da es keine Gruppenrichtlinie zur Beschränkungen der maximalen Pfadlängen gibt, habe ich folgendes Miniskript geschrieben und führe es als Abmeldeskript auf den Arbeitsplätzen aus:

iereset.ps1

#Sucht im %appdata%-Ordner des Benutzers nach Dateien und Pfaden die länger als 220 Zeichen sind.
$pfade = (Get-ChildItem $Env:appdata -Recurse)
foreach ($datei in $pfade){
if($datei.fullname.length -gt 220){
#Alle Dateien die länger sind werden gelöscht, damit es keine Problem mit zu langen Dateinamen in den Roaming Profiles gibt
$datei | Remove-Item -Recurse
}
}