Можете ли вы запретить установщикам создавать ярлыки на рабочем столе?


8

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

Ответы:


0

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

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

альтернативный текст


Заборы это платная программа.
user598527

4

Я знаю, что нет перезаписывающей настройки, которая останавливает ее, однако у вас есть три варианта - один опасный, один обходной и один безопасный!

Опасный путь

Отредактируйте настройки безопасности в следующих папках: (Перейдите на одну папку вверх, щелкните ее правой кнопкой мыши и выполните настройки)

c:\users\<name>\Desktop

or

%userprofile%\Desktop

and

c:\users\default\Desktop

Далее перейдите на вкладку «Безопасность» и нажмите «Изменить». Вы хотите поместить свойство Deny как в Modify, так и в Write. Вы должны сделать это только для вашего пользователя, если установщик работает под вашим пользователем.

Это имеет недостаток, что вы не можете создавать иконки, но это должно работать.

Безопасный путь

Просто удалите любой значок, созданный при установке!

Обходной путь

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


4

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

Я установил запланированное задание для удаления значков. Это несколько несовершенно, так как он запускается периодически (и после полной установки MSI), но работает (и после 6 месяцев использования: работает довольно хорошо). Он удаляет ссылки непосредственно на рабочем столе как текущего пользователя, так и профиля «Общедоступного» пользователя, хотя это, конечно, зависит от наличия разрешения на это.


Задача создается следующим образом:

  • Имя: Удалить ярлыки на рабочем столе
  • Запуск с самыми высокими привилегиями

Планировщик задач - Общий

  • Триггеры:
    • На мероприятии:
      • Журнал: Application
      • Источник: MsiInstaller
      • Идентификатор события: 1042
    • Ежедневно: 5 утра каждый день

Планировщик задач - Условия

  • Действие: запустить программу
    • Программа / скрипт: 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>&lt;QueryList&gt;&lt;Query Id="0" Path="Application"&gt;&lt;Select Path="Application"&gt;*[System[Provider[@Name='MsiInstaller'] and EventID=1042]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</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>

0

Я не знаю, есть ли способ сделать это в Windows, но я знаю, что этот основной код будет работать:

Kill("C:\Users\<name>\Desktop\*.lnk")

Это автоматически удаляет все ярлыки на рабочем столе.

В противном случае, я не знаю ни одного способа, кроме как удалить их вручную
(что в любом случае занимает всего несколько секунд).
Если бы я действительно не хотел этого делать, я бы использовал «Опасный путь», который предлагает @William


К сожалению, есть приложения, которые воссоздают значок на рабочем столе, если он был удален.
Dour High Arch

-1

Я понимаю, что этому вопросу уже почти 7 лет, но так как он появился в веб-поиске, я подумал, что добавлю к нему.

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


-1

Измените разрешения для папки «Рабочий стол», чтобы запретить кому-либо, в том числе вам (и программам, запущенным вами, например, установщикам), запись на рабочий стол. Изначально в Вопросе упоминалось, что ярлыки «абсолютно свободны», поэтому корзина и Мой компьютер также должны быть скрыты.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.