2015-10-19 101 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