Fix Windows 7 Desktop-Verknüpfungen verschwinden

Unter Windows 7 haben Sie möglicherweise bemerkt, dass Desktop-Verknüpfungen ohne ersichtlichen Grund verschwinden. Es stellt sich heraus, dass die Systemwartung dafür verantwortlich ist. Es wird als wöchentlicher Wartungsdienst ausgeführt, der sich auf zwei Arten auf Desktop-Verknüpfungen auswirkt.

Zunächst werden Desktop-Verknüpfungen entfernt, die seit mindestens drei Monaten nicht mehr verwendet wurden. Die Systemwartung entfernt auch fehlerhafte Verknüpfungen auf dem Desktop, wenn mehr als vier vorhanden sind. Das Problem bei letzterem ist, dass Windows 7 Verknüpfungen zu getrennten Netzwerkstandorten als fehlerhaft erkennt und Verknüpfungen, die auf Shell-Ordner verweisen.

Microsoft bietet zwei Lösungen für das Problem an. Der erste Rat ist, die Anzahl der fehlerhaften Verknüpfungen unter vier zu halten. Dies ist aufgrund der oben erwähnten Probleme mit fehlerhaften Verknüpfungen nicht immer möglich.

Der zweite Vorschlag von Microsoft ist, die Computerwartung zu deaktivieren:

  • Klicken Sie auf Start und anschließend auf Systemsteuerung.
  • Klicken Sie unter System und Sicherheit auf Probleme suchen und beheben.
  • Klicken Sie im linken Navigationsbereich auf Einstellungen ändern.
  • Stellen Sie die Computerwartung auf Aus.

Hierdurch werden jedoch alle anderen Aufgaben im Zusammenhang mit der Computerwartung deaktiviert, z. B. das Überprüfen der Systemzeit, der Datenträgerfehler oder der Speicherplatzfehlerberichte.

Alle Wartungsaufgaben werden von Skripten ausgeführt, die sich unter C: \ Windows \ Diagnostics \ Scheduled \ Maintenance \ befinden. Sie können die Skripte direkt in diesem Verzeichnis bearbeiten. Die Berechtigungen verbieten, dass die Dateien vom aktuellen Benutzer bearbeitet werden.

Beheben von Windows 7-Desktopverknüpfungen Verschwinden

Bitte beachten Sie: Dies ist ein Hack, der sich auf andere Teile des Betriebssystems auswirken kann. Auf einem Testsystem hat danach alles einwandfrei funktioniert, aber stellen Sie sicher, dass Sie die Dateien ordnungsgemäß sichern, bevor Sie sie bearbeiten

Zuerst müssen wir die Kontrolle über die Dateien übernehmen, damit wir sie bearbeiten können. Dazu müssen Sie zuerst den Besitz übernehmen und dann die Zugriffsrechte des aktuellen Benutzers ändern, damit die Dateien geändert werden können.

Der erste Teil kann automatisiert werden. Laden Sie einfach das Skript in diesem Forum herunter und führen Sie es aus. Hierdurch sollte dem Kontextmenü im Windows-Explorer ein Eintrag zum Übernehmen der Eigentumsrechte hinzugefügt werden.

Wechseln Sie im Windows Explorer nach der Installation des Skripts zu C: \ Windows \ diagnostics \ Scheduled \ Maintenance, und klicken Sie mit der rechten Maustaste auf die Datei TS_BrokenShortcuts.ps1 . Wählen Sie die Option Besitz übernehmen, die den Besitz an den angemeldeten Benutzer übertragen soll.

Der Benutzer hat immer noch keine Berechtigung zum Speichern der Datei. Dies bedeutet, dass wir den nächsten Schritt ausführen müssen, bevor wir die beschädigten Verknüpfungen bearbeiten können. Powerscript-Datei löscht beschädigte Verknüpfungen nicht automatisch.

Öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten. Klicken Sie dazu auf Start, Alle Programme und dann auf Zubehör. Klicken Sie mit der rechten Maustaste auf den Link Eingabeaufforderung, und wählen Sie Als Administrator ausführen aus.

Geben Sie nun den folgenden Befehl ein, um dem aktiven Benutzer die vollständigen Rechte für die Datei zu erteilen. Stellen Sie sicher, dass Sie USERNAME durch den Namen des aktiven Benutzers ersetzen.

icacls c:\windows\diagnostics\scheduled\maintenance\TS_BrokenShortcuts.ps1 /grant USERNAME:F

Jetzt können Sie die Datei normal in einem Texteditor wie Notepad bearbeiten. Öffne es und finde die Linie (Linie 11)

[string]$list = ""

Löschen Sie alles unter dieser Zeile bis (Zeile 22).

return $list

Folgende Zeilen werden gelöscht:

Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {

$ fullPath = ConvertTo-WQLPath $ _. FullName

$ wmiLinkFile = Get-WmiObject -query "SELECT Name, Ziel, AccessMask FROM Win32_ShortcutFile WHERE Name = '$ fullPath'"

if (-not (Test-ValidLink $ wmiLinkFile) -und (Test-Delete $ wmiLinkFile))

{

$ list = AttachTo-List $ list $ wmiLinkFile.Name

}

}

Dies gibt grundsätzlich eine leere Liste an das Skript zurück, sodass keine Verknüpfungen gelöscht werden. Ich habe es mit fünf defekten Verknüpfungen getestet und sie wurden nach dem Ausführen der Systemwartung nicht gelöscht.

Damit wurden die fehlerhaften Verknüpfungen behoben, aber es gibt immer noch das Problem, dass Verknüpfungen, die seit einiger Zeit nicht mehr verwendet wurden, auch von Windows 7 gelöscht werden.

Wir müssen hier (fast) die gleiche Operation ausführen. Suchen Sie die Datei TS_UnusedDesktopIcons.ps1 im selben Verzeichnis. Übernehmen Sie das Eigentumsrecht und gewähren Sie den aktiven Benutzern Zugriffsrechte.

Bearbeiten Sie die Datei anschließend und suchen Sie die Zeile (24)

[string]$list = ""

Alles löschen bis Zeile (35)

return $list

damit die folgenden Zeilen gelöscht werden

Get-ChildItem -Path $path -filter *.lnk | Foreach-Object {

$ fullPath = ConvertTo-WQLPath $ _. FullName

$ wmiLinkFile = Get-WmiObject -query "SELECT Name, Ziel, AccessMask FROM Win32_ShortcutFile WHERE Name = '$ fullPath'"

$ lastAccessTime = Get-LastAccessTime $ _. FullName

if ((Test-ValidLink $ wmiLinkFile) -und (Test-Delete $ wmiLinkFile) -und (Test-FileShortcut $ wmiLinkFile) -und (Test-Unused $ lastAccessTime $ threshold))

{

$ list = AttachTo-List $ list $ wmiLinkFile.Name

}

}

Bitte beachten Sie, dass ich das zweite Skript nicht getestet habe, aber es sollte genauso gut funktionieren.

Dies sollte alle Probleme beheben, die Benutzer mit entfernten Verknüpfungen auf dem Windows 7-Desktop haben.

Stellen Sie sicher, dass Sie die Dateien ordnungsgemäß sichern, bevor Sie sie bearbeiten. Bitte lassen Sie mich wissen, ob dies bei Ihnen funktioniert hat oder ob Sie eine bessere Idee haben, wie Sie das Problem mit gelöschten Verknüpfungen in Windows 7 beheben können.