18

Я хотел бы остановить создание файла «desktop.ini» на «Рабочем столе» моего компьютера с Windows 10. Я задал этот вопрос sepcifically о Windows 10: Существует вопрос о том же номере на Windows 8 здесь, предлагаемые решения там (и в других местах) для Windows 7 и 8 не похоже на работу.

Пожалуйста, никаких решений в духе «отключить просмотр скрытых файлов». Мой конкретный вопрос - как остановить создание файла на рабочем столе.

5 ответов5

6

(Много). Позже редактирование. Похоже, что это решение больше не работает на Windows10. Оставив ответ здесь для справки.


Я использовал решение, найденное здесь:

  • Нажмите Win+R и введите regedit
  • Перейдите к HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
  • Редактировать / создать новый DWORD: UseDesktopIniCache с данными 0

Для меня у меня не было ценности, поэтому я должен был создать ее. После перезапуска он автоматически создал значение в HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Policies\Explorer

Запуск Windows 10 Build 14393.222

1

Обновлен скрипт. Проверено, работает и не вызывает диалоговое окно разрешения.


Невозможно запретить Windows создавать desktop.ini, потому что на самом деле это не Windows. Некоторый другой сторонний сервис инициирует создание этого файла, и, разумеется, Windows разрешает это, несмотря на UseDesktopIniCache = 0.

Desktop.ini сводил меня с ума, поэтому я нашел решение для разношерстных. Я заметил, что файл desktop.ini создается через несколько секунд после загрузки. Я воспользовался этим. Используя планировщик заданий, я временно отключаю разрешение на запись на рабочем столе при загрузке. Это мешает сторонним службам выполнять махинации с моим рабочим столом. Затем, через одну минуту после загрузки, другая задача восстанавливает разрешение на запись на рабочем столе.

Здесь я поделился набором образцов XML-файлов, которые планировщик задач может выполнить.

Эта версия скрипта отключает наследование

Я нашел наследование слишком запутанным, поэтому отключил его для папки Desktop. Вы можете добавить / наследование: где-то во втором скрипте, если вам это действительно нужно, но учтите, что отключение наследования - процесс с потерями, поэтому добавление этой строки не изменит все обратно на прежнее место. Рабочий стол не является системной папкой, поэтому он не должен влиять на вас.

Это для отключения разрешения записи при загрузке:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2018-01-09T18:21:14.9818893</Date>
    <Author>spero_LAPTOP\spero</Author>
    <URI>\Desktop Write Permission disable</URI>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <ExecutionTimeLimit>PT1M</ExecutionTimeLimit>
      <Enabled>true</Enabled>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>##################################</UserId>
      <LogonType>Password</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>true</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1M</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>ICACLS</Command>
      <Arguments>"C:\Users\spero\Desktop" /inheritance:d /remove "SYSTEM"</Arguments>
    </Exec>
    <Exec>
      <Command>ICACLS</Command>
      <Arguments>"C:\Users\spero\Desktop" /remove "Administrators"</Arguments>
    </Exec>
    <Exec>
      <Command>ICACLS</Command>
      <Arguments>"C:\Users\spero\Desktop" /remove "spero"</Arguments>
    </Exec>
    <Exec>
      <Command>ICACLS</Command>
      <Arguments>"C:\Users\spero\Desktop" /grant "Administrators":(OI)(GR)</Arguments>
    </Exec>
    <Exec>
      <Command>ICACLS</Command>
      <Arguments>"C:\Users\spero\Desktop" /grant "spero":(OI)(GR)</Arguments>
    </Exec>
  </Actions>
</Task>

Это для восстановления разрешения минуту спустя:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2018-01-09T18:19:03.2968461</Date>
    <Author>spero_LAPTOP\spero</Author>
    <URI>\Desktop Write Permission</URI>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <ExecutionTimeLimit>PT1M</ExecutionTimeLimit>
      <Enabled>true</Enabled>
      <UserId>spero_LAPTOP\spero</UserId>
      <Delay>PT1M</Delay>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>######################################</UserId>
      <LogonType>Password</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>true</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1M</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>ICACLS</Command>
      <Arguments>"C:\Users\spero\Desktop" /grant "Administrators":F</Arguments>
    </Exec>
    <Exec>
      <Command>ICACLS</Command>
      <Arguments>"C:\Users\spero\Desktop" /grant "spero":F</Arguments>
    </Exec>
  </Actions>
</Task>

Обратите внимание, что мой загрузочный диск - SSD, хотя и не очень быстрый. Время может варьироваться в зависимости от того, как быстро загружается ваша ОС.

Кроме того, вы не можете импортировать эти сценарии напрямую из-за наличия полей Author и User ID. Просто запомните все параметры.

-1

[Удаленный предыдущий ответ] К сожалению, извините за это. Это было некоторое время и перепутали с thumbs.db

Попробуйте это вместо файлов desktop.ini: откройте редактор реестра и перейдите по адресу: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer. Измените значение UseDesktopIniCache на 0 (добавьте его как значение DWORD, если оно еще не существует.

Вот пара ссылок на посты других, где он работал на них. Большинство были с победой 7 и 8 как бы то ни было.

-2

Лучше не удалять файл desktop.ini, так как для работы папки требуется файл .ini. Файл Desktop.ini - это файл, который определяет способ отображения папки в Windows. Однако если вы хотите, включите просмотр скрытых файлов, щелкните правой кнопкой мыши и нажмите «Удалить», чтобы удалить элемент.

-3

Я знаю, что вы сказали: "Остановите это от создания" Я предполагаю, что это потому, что вы хотите, чтобы системные файлы были видны, а desktop.ini (и, вероятно, thumbs.db) просто не присутствовали. Следующее решение не останавливает его создание, но оно скрывает системные файлы только на вашем рабочем столе, но не в масштабе всей системы. Возможно, это было бы приемлемо.

  • Выберите "Рабочий стол" в проводнике Windows
  • Нажмите на вкладку "Просмотр"
  • Снимите флажок "Скрытые элементы" в разделе «Показать / скрыть» на ленте

Я получил это решение здесь:http://searchenterprisedesktop.techtarget.com/blog/Windows-Enterprise-Desktop/Settings-Reset-in-Windows-10-Reinforces-Desktopini-Trick

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .