![Windows 8.1 与 Windows 10 的默认用户启动文件夹](https://linux22.com/image/1503077/Windows%208.1%20%E4%B8%8E%20Windows%2010%20%E7%9A%84%E9%BB%98%E8%AE%A4%E7%94%A8%E6%88%B7%E5%90%AF%E5%8A%A8%E6%96%87%E4%BB%B6%E5%A4%B9.png)
当我在 Windows 8.1 和 Windows 10 中摆弄默认用户的启动文件夹时,注意到了一些事情:出于某种原因,在我安装的所有 Windows 10 中,默认用户的启动文件夹都不存在于它应该在的位置,C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
而在 Windows 8.1 中它存在。
我在网上看到它显然C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
在 Win7 中被替换为启动,但我在 Win8.1 中有此路径,但在 Win10 中没有。Win10 进入程序文件夹,然后启动不存在。
如果我手动创建启动文件夹C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\
并在其中存放某些内容,操作系统会在启动时运行它吗?
因为在这种情况下,我无法使用 ProgramData 中的 Startup 文件夹,因为 .BAT 文件在使用后会自动删除,但它需要在每个新用户首次登录时运行。通过将其放入C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
,它会在用户创建配置文件时简单地复制到用户自己的 Startup 文件夹中,运行,然后自行删除。
如果手动创建启动文件夹不起作用,是否有简单的方法可以完成我需要做的事情?我发现的唯一其他方法是使用 IF 语句启动批处理文件,以搜索批处理文件的结果是否存在(这是一个注册表项),如果存在则不运行,但这意味着每次用户登录时,批处理文件都会启动,这并不理想。
提前致谢!
答案1
虽然它默认不存在,但C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
如果您手动创建它,它是一个有效路径。
当其他用户首次登录时,放置在这里的档案将被复制到该用户的 StartUp 文件夹中。如果用户之前已经登录过,因此已经有了一个用户文件夹,那么在删除用户配置文件之前,这不会产生任何影响。
对于自删除的 .bat 文件,这似乎是您的最佳选择。我今天在 Windows 10 Enterprise 21H2 上亲自测试了它。
相比之下,public
文件夹的相同启动才不是工作,即C:\Users\Public\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
。
相反,正如有用的评论所提到的,C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
它只在 Windows 10 及更高版本中可用。除了在所有用户之间同步之外,此文件夹还需要管理员权限才能修改。
如果选择此选项,则可以向脚本添加检查以查看它是否已为用户运行过,例如,您可以在用户的 AppData 中创建一个隐藏文件,然后在运行脚本之前检查它是否存在。
这与您的具体用例并不相关,但任务管理器启动列表现在也存在,这个答案记录如何通过在注册表中添加字符串值来自己添加程序HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
。
按照同样的逻辑,您也可以将其添加到默认用户注册表中HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run
。