2015-10-19 97 views
-1

这不是一个真正的编程问题,但我试图在Windows 7的开始菜单中设置文件夹结构。此文件夹结构中有几个文件夹,其中包含指向这些文件夹内的快捷方式到计算机上的应用程序。锁定开始菜单文件夹

我不希望计算机上的用户能够混淆该文件夹结构。现在他们可以从开始菜单移动,复制或删除它。

我发现注册表编辑锁定了整个开始菜单,但我只想控制特定的文件夹。

谢谢!

+0

听起来像是在写给用户的开始菜单,而不是电脑的开始菜单。 –

回答

0

如果你的用户不是这台机器上的管理员,你可以在C:\ProgramData\Microsoft\Windows\Start Menu而不是%appdata%\Microsoft\Windows\Start Menu下创建文件夹。然后只有管理员可以编辑它。

如果这是一个许多用户获得管理权限的环境,那么就会有窍门。您已修改ntfs security settings并使用正确类型的结构或使用符号链接。

问题是让文件夹并行,其中一个是可编辑的,另一个不是。这是因为作为删除的权限是从父级继承的。因此,为了使它与ntfs权限一起工作,您必须从父级(包括继承)中移除所有权限,然后将所有文件夹(但不可删除的文件夹)恢复到更深层次。如果有许多文件夹与您拥有一个文件夹并行,这是很成问题的,因为它有很多工作。

因此,我发现这项工作的唯一技巧是在不同的地方创建文件夹,然后将其链接起来。您将创建一个文件夹C:\ MyIndestructibleFolders \ MyFolder,然后删除MyFolder上的所有权限。

请记住,如果您创建一个文件夹,它可能会从它的父母继承许多权限,覆盖您设置的内容。避免这种情况的最好方法是进入安全性的“高级”菜单,并清除表示“包含来自此对象父级的可继承权限”的框。如果它要求替换或删除,请删除。然后使用“完全访问”为您的管理员创建一个条目,使用默认读取设置为“域用户”或“用户”创建一个条目。我也将它设置为gui中的“只读”,但这只会影响儿童,因此可能不需要。

现在您创建一个符号链接,以便在开始菜单中看到该文件夹​​。打开cmd并键入

mklink /D "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Folder" C:\MyIndestructibleFolders\MyFolder 

现在转到资源管理器中的联结器,同时删除所有权限。这次只需添加管理员的完全访问权限,不需要任何用户权限。 现在应该是在开始菜单中可见,但不可删除是/ -moveable

如果你必须这样做,在几台计算机编程这可能是寻找到icacls一个好主意。

需要注意的一件事是,用户似乎仍然能够将项目拖放到开始菜单中的该文件夹中。这不是真的。如果这样做会发生什么情况是,在用户AppData文件夹中创建了具有相同名称的第二个文件夹,该文件将移至该文件夹中,并同时显示这两个文件夹的内容。

从技术上讲,这是做到这一点的最佳方法,但它非常复杂。还有另外一种更加怪异的方式,你也可以考虑。处于Writelock中的文件无法移动或删除。您可以创建一个文件“〜锚点”,并使其在您的文件夹根目录中不可见。然后你可以使用PowerShell writelock它

$file = [System.io.File]::Open('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Myfolder\~Anchor', 'Open', 'Read', 'None') 

因为与〜这将是第一件事就是Windows的名称的尝试移动/删除以免其操作。如果你把你的PowerShell脚本放在启动文件夹中,或者创建一个启动的任务,在启动的时候会通过系统权限访问它,它也应该防止删除。

+0

我试过编辑ntfs安全设置,它似乎没有帮助,用户仍然能够将该文件夹拖出开始菜单并删除其中的项目。 – dstew

+0

我只是自己试了一下而已。难道你有从父文件夹继承? – Syberdoor

+0

啊,今天就试试吧!谢谢! – dstew