我想停止“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