Исправить исчезновение ярлыков на рабочем столе Windows 7

Если вы запускаете Windows 7, вы могли заметить, что ярлыки на рабочем столе исчезают без видимой причины. Оказывается, за это отвечает System Maintenance. Он работает как еженедельное обслуживание, которое влияет на ярлыки на рабочем столе двумя способами.

Сначала он удалит ярлыки с рабочего стола, которые не использовались как минимум три месяца. Обслуживание системы также удалит неработающие ярлыки на рабочем столе, если их больше четырех. Проблема с последним заключается в том, что Windows 7 распознает ярлыки для отключенных сетевых расположений как сломанные, а также ярлыки, которые ссылаются на папки оболочки.

Microsoft предложения два решения проблемы. Первый совет — держите количество неработающих ярлыков ниже четырех. Это не всегда возможно из-за проблем с неработающими ярлыками, упомянутыми выше.

Второе предложение Microsoft — отключить обслуживание компьютера:

  • Щелкните Пуск, а затем щелкните Панель управления.
  • В разделе «Система и безопасность» нажмите «Найти и устранить проблемы».
  • На левой панели навигации щелкните Изменить настройки.
  • Установите для параметра «Обслуживание компьютера» значение «Выкл.».

Однако это отключает все другие задачи, связанные с обслуживанием компьютера, такие как проверка системного времени, ошибок тома диска или отчетов об ошибках дискового пространства.

Все задачи обслуживания выполняются с помощью скриптов, которые находятся в c: \ windows \ Diagnostics \ Scheduled \ Maintenance \. Возможны варианты редактирования сценариев прямо в этом каталоге. Разрешения запрещают редактирование файлов текущим пользователем.

Исправление исчезновения ярлыков на рабочем столе Windows 7

пожалуйста, обратите внимание: Это взлом, который может повлиять на другие части операционной системы. После этого все работало нормально в тестовой системе, но обязательно сделайте резервную копию файлов перед их редактированием.

Сначала нам нужно взять файлы под контроль, чтобы мы могли их редактировать. Для этого вам нужно сначала стать владельцем, а затем изменить права доступа текущего пользователя, чтобы файлы можно было изменять.

Первую часть можно автоматизировать. Просто скачайте скрипт на это форум и запустите его. Это должно добавить запись Take Ownership в контекстное меню проводника Windows.

После установки скрипта перейдите в C: \ Windows \ Diagnostics \duled \ Maintenance в проводнике Windows и щелкните файл правой кнопкой мыши. TS_BrokenShortcuts.ps1. Выберите опцию Take Ownership, которая должна передать право собственности зарегистрированному пользователю.

У пользователя по-прежнему нет разрешений на сохранение файла, а это означает, что мы должны завершить следующий шаг, прежде чем мы сможем отредактировать файл Powerscript с неработающими ярлыками, чтобы он не удалял неработающие ярлыки автоматически.

Откройте командную строку с повышенными привилегиями. Вы делаете это, нажимая на кнопку «Пуск», «Все программы», затем «Стандартные». Щелкните правой кнопкой мыши ссылку «Командная строка» и выберите «Запуск от имени администратора».

Теперь выполните следующую команду, чтобы предоставить активному пользователю полные права на файл. Убедитесь, что вы заменили USERNAME на имя активного пользователя.

icacls c: \ windows \ диагностика \ запланированное \ обслуживание \ TS_BrokenShortcuts.ps1 / grant ИМЯ ПОЛЬЗОВАТЕЛЯ: F

Теперь вы можете редактировать файл как обычно в текстовом редакторе, например в Блокноте. Откройте его и найдите строку (строка 11)

[строка] $ list = «»

Удалите все, что ниже, что ниже этой строки до (строка 22)

вернуть список $

Удаляются следующие строки:

Get-ChildItem -Path $ path -filter * .lnk | Foreach-Object {
$ fullPath = ConvertTo-WQLPath $ _. FullName
$ wmiLinkFile = Get-WmiObject -query «ВЫБРАТЬ имя, цель, AccessMask FROM Win32_ShortcutFile WHERE Name = ‘$ fullPath'»

if (-not (Test-ValidLink $ wmiLinkFile) -and (Test-Delete $ wmiLinkFile))
{
$ list = AttachTo-List $ list $ wmiLinkFile.Name
}
}

По сути, это возвращает скрипту пустой список, так что никакие ярлыки не удаляются. Я протестировал его с пятью неработающими ярлыками, и они не были удалены после выполнения технического обслуживания системы.

Это устранило неработающие ярлыки, но у нас все еще есть проблема, заключающаяся в том, что ярлыки, которые не использовались в течение некоторого времени, также удаляются в Windows 7.

Здесь мы должны (почти) выполнить ту же операцию. Найдите файл TS_UnusedDesktopIcons.ps1 в том же каталоге. Возьмите его в свои руки и предоставьте активному пользователю права доступа.

После этого отредактируйте файл и найдите строку (24)

[строка] $ list = «»

Удалить все до строки (35)

вернуть список $

так что следующие строки будут удалены

Get-ChildItem -Path $ path -filter * .lnk | Foreach-Object {
$ fullPath = ConvertTo-WQLPath $ _. FullName
$ wmiLinkFile = Get-WmiObject -query «ВЫБРАТЬ имя, цель, AccessMask FROM Win32_ShortcutFile WHERE Name = ‘$ fullPath'»
$ lastAccessTime = Get-LastAccessTime $ _. FullName

if ((Test-ValidLink $ wmiLinkFile) -and (Test-Delete $ wmiLinkFile) -and (Test-FileShortcut $ wmiLinkFile) -and (Test-Unused $ lastAccessTime $ threshold))
{
$ list = AttachTo-List $ list $ wmiLinkFile.Name
}
}

Обратите внимание, что я не тестировал второй сценарий, но он должен работать так же нормально.

Это должно решить все проблемы, возникающие у пользователей с удаленными ярлыками на рабочем столе Windows 7.

Убедитесь, что вы правильно сделали резервную копию файлов, прежде чем редактировать их. Пожалуйста, дайте мне знать, сработало ли это для вас или у вас есть лучшее представление о том, как исправить проблему с удаленным ярлыком в Windows 7.