【问题标题】:Attempting To Set Hidden Attribute To Windows 10 Default Start Menu Folders尝试将隐藏属性设置为 Windows 10 默认开始菜单文件夹
【发布时间】:2016-12-26 18:04:32
【问题描述】:

正如标题所说,我正在尝试将隐藏属性设置为在开始菜单中找到的所有默认文件夹。可以在两个位置找到这些文件夹;应用程序数据和程序数据。这是我第一次尝试的bat文件:

takeown /f "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Maintenance" /r /d y > NUL 2>&1
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Maintenance" /grant administrators:F /t > NUL 2>&1
takeown /f "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Accessories" /r /d y > NUL 2>&1
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Accessories" /grant administrators:F /t > NUL 2>&1
takeown /f "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" /r /d y > NUL 2>&1
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" /grant administrators:F /t > NUL 2>&1
takeown /f "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Ease of Access" /r /d y > NUL 2>&1
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Ease of Access" /grant administrators:F /t > NUL 2>&1
takeown /f "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows System" /r /d y > NUL 2>&1
icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows System" /grant administrators:F /t > NUL 2>&1
attrib +H "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Maintenance" > NUL 2>&1
attrib +H "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Accessories" > NUL 2>&1
attrib +H "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" > NUL 2>&1
attrib +H "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows Ease of Access" > NUL 2>&1
attrib +H "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows System" > NUL 2>&1

takeown /f "%appdata%\Microsoft\Windows\Start Menu\Programs\Maintenance" /r /d y > NUL 2>&1
icacls "%appdata%\Microsoft\Windows\Start Menu\Programs\Maintenance" /grant administrators:F /t > NUL 2>&1
takeown /f "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Accessories" /r /d y > NUL 2>&1
icacls "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Accessories" /grant administrators:F /t > NUL 2>&1
takeown /f "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" /r /d y > NUL 2>&1
icacls "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" /grant administrators:F /t > NUL 2>&1
takeown /f "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Ease of Access" /r /d y > NUL 2>&1
icacls "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Ease of Access" /grant administrators:F /t > NUL 2>&1
takeown /f "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" /r /d y > NUL 2>&1
icacls "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" /grant administrators:F /t > NUL 2>&1
takeown /f "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows System" /r /d y > NUL 2>&1
icacls "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows System" /grant administrators:F /t > NUL 2>&1
attrib +H "%appdata%\Microsoft\Windows\Start Menu\Programs\Maintenance" > NUL 2>&1
attrib +H "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Accessories" > NUL 2>&1
attrib +H "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Administrative Tools" > NUL 2>&1
attrib +H "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows Ease of Access" > NUL 2>&1
attrib +H "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" > NUL 2>&1
attrib +H "%appdata%\Microsoft\Windows\Start Menu\Programs\Windows System" > NUL 2>&1

我已验证 takeown 和 icacls 已成功返回,但唯一适用的文件夹是来自 programdata 和 appdata 位置的 Maintenance 文件夹。其余文件夹不仅会保留,而且如果我尝试通过资源管理器删除它们,我会收到一个弹出窗口,说我需要管理员访问权限,单击确定并删除。很明显,有些东西正在阻止或重新获得文件夹的所有权?

然后我尝试通过 powershell 使用以下代码:

(Get-Item "Folder Path").Attributes = 'Hidden'

当我使用此代码时,它可以在维护文件夹上成功运行,但其他任何错误都会提示该目录不存在。我在这里想念什么?该帐户是禁用 UAC 的管理员,并且 bat 文件使用自动提升以管理员身份运行,所以我知道权限很好。如果我可以便携运行,我对 cmd/powershell 甚至第 3 方程序持开放态度。

【问题讨论】:

  • 您正在隐藏所有消息。你在做一些愚蠢的事情。
  • “我已验证 takeown 和 icacls 正在成功返回”,这意味着我没有隐藏并且无济于事。请下次阅读。
  • 您有足够的访问权限吗?使用attrib 命令的/S 选项怎么样?
  • > NUL 2>&1 正在隐藏每个命令的输出。
  • microsoft.com/en-us/download/details.aspx?id=25250 是做你正在做的事情的方式。无需代码。

标签: windows powershell batch-file


【解决方案1】:

因此,无论出于何种原因,在资源管理器中查看时,这些文件夹的名称都与我在 bat 文件中的名称相同。如果我打开 cmd 并进入目录并获取列表,则文件夹具有不同的名称。我已经更改了我的 bat 文件以匹配通过 cmd 找到的文件夹名称,并且一切正常。现在我剩下两个不重要的问题:

  1. 为什么对于不存在的文件夹,takeown 和 icacls 返回成功?
  2. 这是否与那些链接在一起的文件夹有关,比如图书馆?

【讨论】:

  • 他们没有。您正在隐藏所有输出。
  • 每一行都有这个> NUL 2>&1。你被告知你隐藏了所有的输出。你说它说它的工作。你在撒谎。
  • 你们都是白痴。如果有人说他们验证了代码是有效的,这意味着不输出错误,那么在我的代码中如何做到这一点?您可以做到这一点的唯一方法是删除所有代码末尾的 nul 部分。所以,从逻辑上讲,这意味着我这样做了。再一次,我用证明我是对的答案来跟进我自己的问题。正如已经多次声明的那样,该代码已被验证可以正常工作。请先学会阅读,然后再用嘴说话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
  • 2012-03-16
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多