Я полагаю, вы используете 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);
}
Если ни одно из указанных выше не поможет, тогда я предлагаю вам опубликовать свой код.
Код ничего особенного. Установщик просто создает каталог на локальном компьютере и пытается поделиться им. Я тоже пробовал ваш код, но все равно не работает. ManagementClass mc = new ManagementClass ("win32_share"); код, действительно, разделяет каталог по домену, но только с доступом для чтения для всех. AddDirectorySecurity метод ничего не делает. – Valeriu
Будет ли это потому, что установщик работает с пользователем системы, и у него недостаточно прав? – Valeriu
Я также считаю, что inParams ["Access"] = null; дает доступ ко всем, но доступен только для чтения – Valeriu