Reparar los accesos directos del escritorio de Windows 7 que desaparecen

Si ejecuta Windows 7, es posible que haya notado que los accesos directos de escritorio desaparecen sin razón aparente. Resulta que el mantenimiento del sistema es responsable de eso. Se ejecuta como un servicio de mantenimiento semanal que afecta los accesos directos del escritorio de dos maneras.

Primero eliminará los accesos directos de escritorio que no se hayan utilizado durante al menos tres meses. El Mantenimiento del sistema también eliminará los accesos directos rotos en el escritorio si hay más de cuatro. El problema con este último es que Windows 7 reconocerá los accesos directos a ubicaciones de red desconectadas como dañados y también los accesos directos que se vinculan a las carpetas de shell.

Microsoft ofrece dos soluciones al problema. El primer consejo es mantener el número de atajos rotos por debajo de cuatro. Esto no siempre es posible debido a los problemas con los atajos rotos mencionados anteriormente.

La segunda sugerencia de Microsoft es desactivar el Mantenimiento de la computadora:

  • Haga clic en Inicio y luego en Panel de control.
  • En Sistema y seguridad, haga clic en Buscar y solucionar problemas.
  • En el panel de navegación izquierdo, haga clic en Cambiar configuración.
  • Establezca Mantenimiento de la computadora en Apagado.

Sin embargo, esto desactiva todas las demás tareas relacionadas con el mantenimiento de la computadora, como verificar la hora del sistema, los errores de volumen de disco o los informes de errores de espacio en disco.

Todas las tareas de mantenimiento funcionan con scripts que se encuentran en c: \ windows \ Diagnostics \ Scheduled \ Maintenance \. Las opciones son editar los scripts directamente en ese directorio. Los permisos prohíben que el usuario actual edite los archivos.

Reparación de los accesos directos del escritorio de Windows 7 que desaparecen

Tenga en cuenta: este es un truco que puede afectar otras partes del sistema operativo. Todo funcionó bien después en un sistema de prueba, pero asegúrese de hacer una copia de seguridad de los archivos correctamente antes de editarlos

Primero tenemos que tomar el control de los archivos para poder editarlos. Para hacerlo, primero debe tomar posesión y luego modificar los derechos de acceso del usuario actual para que los archivos puedan modificarse.

La primera parte puede ser automatizada. Simplemente descargue el script en este foro y ejecútelo. Esto debería agregar una entrada Take Ownership al menú contextual en el Explorador de Windows.

Vaya a C: \ Windows \ diagnóstico \ programado \ Mantenimiento en el Explorador de Windows después de instalar el script y haga clic con el botón derecho en el archivo TS_BrokenShortcuts.ps1 . Seleccione la opción Tomar posesión que debería transferir la propiedad al usuario conectado.

El usuario aún no tiene permisos para guardar el archivo, lo que significa que tenemos que completar el siguiente paso también antes de poder editar los accesos directos rotos del archivo Powerscript para que no elimine los accesos directos rotos automáticamente.

Abra una línea de comando elevada. Para ello, haga clic en el orbe Inicio, Todos los programas y luego en Accesorios. Haga clic con el botón derecho en el enlace del símbolo del sistema y seleccione Ejecutar como administrador.

Ahora emita el siguiente comando para otorgar al usuario activo todos los derechos del archivo. Asegúrese de reemplazar USERNAME con el nombre del usuario activo.

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

Ahora puede editar el archivo normalmente en un editor de texto como el Bloc de notas. Ábrelo y localiza la línea (línea 11)

[string]$list = ""

Elimine todo lo que está debajo de esa línea hasta (línea 22)

return $list

Las líneas que se eliminan son:

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

$ fullPath = ConvertTo-WQLPath $ _. FullName

$ wmiLinkFile = Get-WmiObject -query "SELECCIONAR Nombre, Destino, Máscara de Acceso DESDE Win32_ShortcutFile DONDE Nombre = '$ fullPath'"

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

{

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

}

}

Básicamente, esto devuelve una lista en blanco al script para que no se eliminen los accesos directos. Lo he probado con cinco accesos directos rotos y no se han eliminado después de ejecutar el mantenimiento del sistema.

Eso solucionó los accesos directos rotos, pero todavía tenemos el problema de que Windows 7 también elimina los accesos directos que no se han utilizado durante algún tiempo.

Tenemos que (casi) realizar la misma operación aquí. Busque el archivo TS_UnusedDesktopIcons.ps1 en el mismo directorio. Asumir la propiedad y otorgar al usuario activo derechos de acceso.

Edite el archivo luego y ubique la línea (24)

[string]$list = ""

Eliminar todo hasta la línea (35)

return $list

para que se eliminen las siguientes líneas

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

$ fullPath = ConvertTo-WQLPath $ _. FullName

$ wmiLinkFile = Get-WmiObject -query "SELECCIONAR Nombre, Destino, Máscara de Acceso DESDE Win32_ShortcutFile DONDE Nombre = '$ fullPath'"

$ lastAccessTime = Get-LastAccessTime $ _. FullName

if ((Test-ValidLink $ wmiLinkFile) -and (Test-Delete $ wmiLinkFile) -and (Test-FileShortcut $ wmiLinkFile) -and (Test-Unused $ lastAccessTime $ umbral))

{

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

}

}

Tenga en cuenta que no probé el segundo script, pero debería funcionar igual de bien.

Esto debería resolver todos los problemas que los usuarios tienen con los accesos directos eliminados en el escritorio de Windows 7.

Asegúrese de hacer una copia de seguridad de los archivos correctamente antes de editarlos. Avíseme si esto funcionó para usted o si tiene una mejor idea sobre cómo solucionar el problema de acceso directo eliminado en Windows 7.