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


25

我想停止在Windows 10计算机的“桌面”上创建 “ desktop.ini”文件。我问这个问题sepcifically有关Windows 10:有一个关于Windows 8的同一个问题的问题在这里,该方案提出在那里(和其他地方)的Windows 7和8似乎并不工作。

请不要采取“禁用查看隐藏文件”的方法。我的具体问题是如何停止在桌面上创建文件。


是否UseDesktopIniCache=0(从答复superuser.com/a/650431/523828)不工作在Windows 10?
dxiv

@dxiv害怕它不起作用。
尼尔·汤森

我假设您在“ Software”和“ Software \ Wow6432Node”下都进行了更改/验证,然后重新启动。
dxiv

@dxiv是……怕我有……
尼尔·汤森

感谢您的跟进。当我的“ 10”时间到来时,要少尝试一件事。
dxiv

Answers:


7

(更多)以后的编辑:看来该解决方案不再适用于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内部版本14393.222


请阅读如何参考他人撰写的材料。您应该阻止其他人编写的引号文本。请参阅Markdown帮助。这次我们已为您修复了该问题,但以后请注意。
DavidPostill

2
嗨,担心这在运行最新版本10的Windows 10系统上不起作用。感谢您的尝试,不胜感激。
尼尔·汤森德

1

更新了脚本。验证工作正常,不会触发权限对话框。


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

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

在这里,我共享了一组示例XML文件,供Task Scheduler完成该工作。

此版本的脚本禁用继承

我发现继承过于混乱,因此已为桌面文件夹禁用了继承。如果确实需要,可以在第二个脚本中的某处添加/ inheritance:e,但是请注意,禁用继承是一个有损的过程,因此添加该行不会将所有内容恢复到以前的状态。桌面不是系统文件夹,因此无论如何它都不会影响您。

这是用于禁用启动时的写权限:

<?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>
      <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,尽管不是非常快。时间可能会有所不同,具体取决于您的操作系统启动速度。

另外,由于存在作者和用户ID字段,因此无法直接导入这些脚本。只要注意所有参数即可。


更新: 稍微使用了上述解决方案之后,不得不处理一千条“您当前无权访问此文件夹”消息,事实证明,这比台式机.ini文件麻烦得多,现在我建议将命令更改为ICACLS“ C:\ Users \ Spero \ Desktop” / deny“ Administrators” :( WD)。我已经相应地更新了上面的脚本。
Spero

-1

[删除的先前答案]抱歉,对此感到抱歉。它已经有一段时间了,并与thumbs.db混淆了

尝试对Desktop.ini文件尝试以下操作:打开注册表编辑器,然后浏览至:HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer将UseDesktopIniCache值更改为0(如果尚不存在,请将其添加为DWORD值。

这是指向其他人为他们工作的帖子的几个链接。但是大多数人都赢了7和8。


害怕这行不通,对不起。
尼尔·汤森

抱歉,对此感到抱歉。已经有一段时间了,它与thumbs.db混淆了,我已经更新了一个已经尝试过并且正在为我工​​作的分辨率。试试看。
2016年

感谢您的尝试,但无效。我发现在那里的Windows 7/8方法都不起作用!我会把这个问题弄清楚。
尼尔·汤森

理解了,谢谢您的检查,对不起。
雷神

-2

最好不要删除desktop.ini文件,因为该文件夹需要.ini文件才能正常运行。Desktop.ini文件是确定Windows显示文件夹的方式的文件。但是,如果确实要启用,请启用查看隐藏文件并单击鼠标右键,然后按Delete键删除该项目。


4
我的隐藏文件一直可见。我定期删除此文件,一切正常。但是过一会儿它会重新创建。根据问题,我想停止创建它。我该怎么做呢?
尼尔·汤森

1
答案是正确的。它是执行系统功能的系统文件。Windows重新创建它,因为它知道应该拥有它。您的解决方案是:隐藏它。忽略它。请MS彻底更改下一个发行版中的OS,或者停止使用Windows。
Linef4ult

3
虽然这是官方路线,deleting it may cause the folder to be problematic但也会引起误解。如果删除desktop.ini,您能说出一种不良影响吗?
dxiv

做了更多的研究,没有病,但是最好不要管它。
土豆人

-3

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

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

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


但是,尽管文章说了什么,但这也阻止了隐藏项目在任何地方都可见。这是一个系统范围的开关,至少在我尝试过的时候!
尼尔·汤森

@GollyRojer ..否决了您的“答案”,因为您不完全了解该问题。您所建议的只是隐藏某些东西,而不是实际上阻止操作系统创建它们。此外,您的建议还会给那些已采取明确措施以显示所有文件的人引起问题。隐藏它们,就像在地毯下面扫了一堆污垢。看不见,但污垢仍然存在。
TG2

TG2,你甚至读过我的帖子吗?这里有些缺乏理解,但这不是我自己的意思。
GollyRojer '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.