Bonjour j'ai fait un logiciel et j'utilise install créator pour le "distribuer" je déploie également un petit programme pour finaliser l'installation (créer le fichier de licence, mettre les bon paramètres dans les fichiers clients ....) mais j'ai un problème, le répertoire créer lors de l'installation n'a pas les droits d'acces ouvertes a tous et donc mon petit programme de finalisation ne peut pas ecrire dans les fichiers en questions.
j'ai pensé corrigé en mettant touts les droits a everyone avec ce code
Mais ça ne fonctionne pas toujours, des fois oui des fois non mais plus souvent non ... sur le même poste de test cible ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 //this will give you the "Everyone" string that you require for each version of the OS e.g. English, German etc. System.Security.Principal.SecurityIdentifier sid = new System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.WorldSid, null); System.Security.Principal.NTAccount acct = sid.Translate(typeof(System.Security.Principal.NTAccount)) as System.Security.Principal.NTAccount; string strEveryoneAccount = acct.ToString(); DirectoryInfo dInfo = new DirectoryInfo(exeDir); DirectorySecurity dSecurity = dInfo.GetAccessControl(); dSecurity.SetAccessRuleProtection(true, false); dSecurity.AddAccessRule(new FileSystemAccessRule( strEveryoneAccount, FileSystemRights.FullControl, InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow) ); dInfo.SetAccessControl(dSecurity);
QQ un peut m'éclairer ?
Merci
Partager