在 Windows 10 中禁用创建 Desktop.ini(在桌面上)

在 Windows 10 中禁用创建 Desktop.ini(在桌面上)

我想停止“desktop.ini”文件正在创建在我的 Windows 10 机器的“桌面”上。我曾专门针对 Windows 10 提出过这个问题:有一个问题是关于 Windows 8 上的相同问题这里,那里(以及其他地方)提出的针对 Windows 7 和 8 的解决方案似乎不起作用。

请不要提供类似“禁用查看隐藏文件”的解决方案。我的具体问题是如何停止在桌面上创建文件。

答案1

(很久)后编辑:看来此解决方案在 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

答案2

*更新脚本。实验性继承安全脚本。这不会破坏桌面的可用性。任何已经失去继承权的人都可以运行

ICACLS "C:\Users\<username>\Desktop" /reset /t 

以恢复全部功能。


无法阻止 Windows 创建desktop.ini,因为实际上不是 Windows 在创建它。其他一些第三方服务正在触发该文件的创建,显然,尽管 UseDesktopIniCache=0,Windows 仍允许这样做。

Desktop.ini 让我抓狂,所以我想出了一个杂乱无章的解决方案。我发现,desktop.ini 文件在启动后几秒钟内创建。我利用了这一点。使用任务计划程序,我在启动时暂时禁用桌面上的写入权限。这阻止了第三方服务对我的桌面进行恶作剧。然后在启动一分钟后,另一个任务恢复了桌面上的写入权限。

在这里我分享了一组供任务计划程序完成工作的示例 XML 文件。

这个用于在启动时禁用写权限:

<?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" /deny "spero":(WD)</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>
      <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 "spero":F /r</Arguments>
    </Exec>
  </Actions>
</Task>

请注意,我的启动驱动器是 SSD,尽管速度不是很快。时间可能会有所不同,具体取决于您的操作系统启动速度。

此外,由于存在作者和用户 ID 字段,您无法直接导入这些脚本。您需要手动用适当的值替换它们。作者只是 computername\username。可以通过打开命令提示符并输入 wmic useraccount where name='%username%' get sid 来获取当前登录用户的用户 ID。响应的第一行将是 SID,下一行将类似于 X-#-#-##-##########-##########-##########-#### - 这是您的用户 ID。并将“spero”替换为您的用户名。

您需要将其保存为 xml 文件,然后从任务计划程序导入。

答案3

[删除了之前的答案] 哎呀,很抱歉。时间有点久了,我把它和 thumbs.db 搞混了

对desktop.ini 文件尝试以下操作:打开注册表编辑器并导航到:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 将 UseDesktopIniCache 值更改为 0(如果它不存在,则将其添加为 DWORD 值)。

以下是其他人的帖子链接,其中显示了该功能是否有效。不过,大多数帖子使用的是 Windows 7 和 Windows 8。

答案4

我知道您说的是“阻止它被创建”。我猜是因为您希望系统文件可见,而desktop.ini(可能还有thumbs.db)根本不存在。以下解决方案不会阻止它被创建,但它只会隐藏桌面上的系统文件,而不是系统范围内的系统文件。也许这是可以接受的。

  • 在 Windows 资源管理器中选择“桌面”
  • 点击“查看”选项卡
  • 取消选中功能区中“显示/隐藏”下的“隐藏项目”

我在这里得到了这个解决方案: http://searchenterprisedesktop.techtarget.com/blog/Windows-Enterprise-Desktop/Settings-Reset-in-Windows-10-Reinforces-Desktopini-Trick

相关内容