0
我需要以編程方式刪除「創建文件」和「創建目錄」權限在System32目錄內的組"NT AUTHORITY\\INTERACTIVE"
。如何在C#中更改System32內的文件夾的權限?
要做到這一點,我寫了下面的代碼:
string windir = Environment.GetEnvironmentVariable("systemroot");
string redirectionFolder = (windir + "\\System32\\Tasks2");
MessageBox.Show(redirectionFolder);
FileSystemAccessRule Tasks = new FileSystemAccessRule("NT AUTHORITY\\INTERACTIVE", FileSystemRights.CreateDirectories | FileSystemRights.CreateFiles, AccessControlType.Deny);
DirectorySecurity dirSecurity = new DirectorySecurity(redirectionFolder, AccessControlSections.Group);
dirSecurity.AddAccessRule(Tasks);
Directory.SetAccessControl(redirectionFolder, dirSecurity);
當我運行一個文件夾C:\Tasks2
在這個代碼,它的工作原理。
但是,當我運行它在C:\Windows\System32\Tasks2
,我得到System.IO.DirectoryNotFoundException
例外。以管理員身份運行該應用程序無濟於事。
我能做些什麼來改變C#中System32目錄內目錄的權限?
+1,或者如果爲64位編譯太困難,請使用'C:\ WINDOWS \ SysNative'。 – vcsjones
是的,@ vcsjones這是一個選項,但我必須說,我從來沒有運氣與'C:\ WINDOWS \ SysNative'。 –
唯一讓我感到困惑的是,如果文件系統重新導入器正在踢入,它纔會存在。如果它始終存在(總是指向System32而不管位數),那將會很好。說到這一點,另一種選擇是[暫時禁用文件系統重定向](http://msdn.microsoft.com/en-us/library/windows/desktop/aa365743(v = vs.85).aspx)操作。 – vcsjones