He mantenido mi escritorio totalmente libre de atajos. Prefiero no tener que tomar medidas para hacerlo.
He mantenido mi escritorio totalmente libre de atajos. Prefiero no tener que tomar medidas para hacerlo.
Respuestas:
No creo que pueda deshabilitar todos los programas para crear accesos directos, pero uso Fences .
Le permite agrupar iconos en el escritorio, pero lo más importante, cuando hace doble clic en el escritorio, oculta todos los elementos que no están en las cercas.
No hay una configuración de sobrescritura que conozca que lo detenga, sin embargo, tiene tres opciones: una peligrosa, una que evita y otra segura.
Edite la configuración de seguridad en las siguientes carpetas: (suba una carpeta, haga clic derecho sobre ella y haga propiedades)
c:\users\<name>\Desktop
or
%userprofile%\Desktop
and
c:\users\default\Desktop
A continuación, vaya a la pestaña de seguridad y haga clic en editar. Desea poner la propiedad Denegar en Modificar y Escribir. Debe hacer esto solo para su usuario si el instalador se ejecuta bajo su usuario.
Esto tiene el inconveniente de que no puede crear iconos, pero debería funcionar.
¡Simplemente elimine cualquier icono generado por una instalación!
Haga clic derecho en cualquier lugar del escritorio donde no haya elementos. Expanda la opción de vista y desmarque "Mostrar iconos del escritorio" ... Esto, por supuesto, tiene el inconveniente de que no tendrá ningún icono, pero si esto es lo que está tratando de lograr, ¡no importa!
Aquí hay una manera simple de usar Tareas Programadas, y no es necesario escribir scripts o programas personalizados.
Configuré una tarea programada para eliminar iconos. Es algo imperfecto, ya que se ejecuta periódicamente (y después de que se completa la instalación de MSI) pero funciona (y después de usarlo durante 6 meses: funciona bastante bien). Elimina los enlaces directamente en el escritorio del usuario actual y del perfil del usuario "Público", aunque esto, por supuesto, depende de tener permiso para hacerlo.
La tarea se crea de la siguiente manera:
Application
MsiInstaller
1042
cmd
/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"
Aquí está la tarea, que puede guardar como un archivo .xml y luego importar en el Programador de tareas de Windows:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2012-11-02T00:46:01.691625</Date>
<Author>Gregmac</Author>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Application"><Select Path="Application">*[System[Provider[@Name='MsiInstaller'] and EventID=1042]]</Select></Query></QueryList></Subscription>
</EventTrigger>
<CalendarTrigger>
<StartBoundary>2012-11-02T05:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>Greg</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>cmd</Command>
<Arguments>/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"</Arguments>
</Exec>
</Actions>
</Task>
No sé si hay una manera de hacerlo dentro de Windows, pero sí sé que este código BÁSICO funcionará:
Kill("C:\Users\<name>\Desktop\*.lnk")
Esto elimina automáticamente todos los accesos directos en el escritorio.
De lo contrario, no conozco ninguna forma, excepto eliminarlos manualmente
(lo que de todos modos solo toma unos segundos).
Si realmente no quisiera hacer eso, usaría la "forma peligrosa" que @William sugiere
Me doy cuenta de que esta pregunta tiene casi 7 años, pero como surgió en una búsqueda en la web, pensé en agregarla.
Si el sistema operativo es un servidor de Windows, puede usar el Administrador de recursos del servidor de archivos para crear pantallas de archivos específicas para ubicaciones específicas.
Cambie los permisos en la carpeta Escritorio para evitar que alguien, incluidos usted (y los programas iniciados por usted, como los instaladores) escriban en el escritorio. La pregunta originalmente mencionaba "totalmente libre" de accesos directos, por lo que la Papelera de reciclaje y Mi PC también deberían estar ocultos.