Я держу свой рабочий стол полностью свободным от ярлыков. Я бы предпочел не предпринимать никаких действий, чтобы сделать это.
Я держу свой рабочий стол полностью свободным от ярлыков. Я бы предпочел не предпринимать никаких действий, чтобы сделать это.
Ответы:
Я не думаю, что вы можете отключить все программы для создания ярлыков, но я использую Заборы .
Он позволяет группировать значки на рабочем столе, но, что наиболее важно, при двойном щелчке на рабочем столе он скрывает все элементы, которых нет в заборах.
Я знаю, что нет перезаписывающей настройки, которая останавливает ее, однако у вас есть три варианта - один опасный, один обходной и один безопасный!
Отредактируйте настройки безопасности в следующих папках: (Перейдите на одну папку вверх, щелкните ее правой кнопкой мыши и выполните настройки)
c:\users\<name>\Desktop
or
%userprofile%\Desktop
and
c:\users\default\Desktop
Далее перейдите на вкладку «Безопасность» и нажмите «Изменить». Вы хотите поместить свойство Deny как в Modify, так и в Write. Вы должны сделать это только для вашего пользователя, если установщик работает под вашим пользователем.
Это имеет недостаток, что вы не можете создавать иконки, но это должно работать.
Просто удалите любой значок, созданный при установке!
Щелкните правой кнопкой мыши в любом месте на рабочем столе, где нет элементов. Разверните опцию просмотра и снимите флажок «Показать значки рабочего стола» ... Это, конечно, имеет недостаток, что у вас не будет никаких значков - но если это то, что вы пытаетесь достичь, это не имеет значения!
Вот простой способ использования запланированных задач, и вам не нужно писать собственные скрипты или программы.
Я установил запланированное задание для удаления значков. Это несколько несовершенно, так как он запускается периодически (и после полной установки MSI), но работает (и после 6 месяцев использования: работает довольно хорошо). Он удаляет ссылки непосредственно на рабочем столе как текущего пользователя, так и профиля «Общедоступного» пользователя, хотя это, конечно, зависит от наличия разрешения на это.
Задача создается следующим образом:
Application
MsiInstaller
1042
cmd
/c for %f in (%userprofile%\Desktop\*.lnk %userprofile%\..\Public\Desktop\*.lnk) do del "%f"
Вот задача, которую вы можете сохранить в виде XML-файла и затем импортировать в планировщик задач 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>
Я не знаю, есть ли способ сделать это в Windows, но я знаю, что этот основной код будет работать:
Kill("C:\Users\<name>\Desktop\*.lnk")
Это автоматически удаляет все ярлыки на рабочем столе.
В противном случае, я не знаю ни одного способа, кроме как удалить их вручную
(что в любом случае занимает всего несколько секунд).
Если бы я действительно не хотел этого делать, я бы использовал «Опасный путь», который предлагает @William
Я понимаю, что этому вопросу уже почти 7 лет, но так как он появился в веб-поиске, я подумал, что добавлю к нему.
Если операционной системой является Windows Server, вы можете использовать диспетчер ресурсов файлового сервера для создания определенных файловых экранов для определенных мест.
Измените разрешения для папки «Рабочий стол», чтобы запретить кому-либо, в том числе вам (и программам, запущенным вами, например, установщикам), запись на рабочий стол. Изначально в Вопросе упоминалось, что ярлыки «абсолютно свободны», поэтому корзина и Мой компьютер также должны быть скрыты.