2009-11-23 3 views
0

Я делаю проект развертывания в VS2008, а в конце потока установки мне нужно создать общую папку с разрешениями полного доступа для всех на локальной машине, доступной из компании домен. Мне удалось создать общую папку, но у каждого есть доступ на чтение. Любая помощь в том, как это сделать, будет оценена по достоинству.Создать общую папку, доступную из домена с C#

Спасибо, Валериу

ответ

0

Я полагаю, вы используете ManagementClass в create a shared folder.

Настройка доступа поле вашего ManagementBaseObject должен дать полный контроль над всем:

ManagementClass mc = new ManagementClass("win32_share"); 
ManagementBaseObject inParams = mc.GetMethodParameters("Create"); 
inParams["Description"] = "Shared Folder"; 
// ... whathever ... 
inParams["Access"] = null; // <-- should give full control access to everyone 

Если выше не работает, вы могли бы хотеть попробовать явно устанавливая уровень безопасности с смт как следующее:

public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType) 
    { 
     DirectoryInfo dInfo = new DirectoryInfo(FileName); 

     DirectorySecurity dSecurity = dInfo.GetAccessControl(); 

     // Add the FileSystemAccessRule to the security settings. 
     dSecurity.AddAccessRule(new FileSystemAccessRule(Account, 
                 Rights, 
                 ControlType)); 
     // Set the new access settings. 
     dInfo.SetAccessControl(dSecurity); 
    } 

Если ни одно из указанных выше не поможет, тогда я предлагаю вам опубликовать свой код.

+0

Код ничего особенного. Установщик просто создает каталог на локальном компьютере и пытается поделиться им. Я тоже пробовал ваш код, но все равно не работает. ManagementClass mc = new ManagementClass ("win32_share"); код, действительно, разделяет каталог по домену, но только с доступом для чтения для всех. AddDirectorySecurity метод ничего не делает. – Valeriu

+0

Будет ли это потому, что установщик работает с пользователем системы, и у него недостаточно прав? – Valeriu

+1

Я также считаю, что inParams ["Access"] = null; дает доступ ко всем, но доступен только для чтения – Valeriu

Смежные вопросы