Déverrouiller des fichiers en masse

Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 - 25 sept. 2013 à 19:07
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 - 1 oct. 2013 à 21:01
Bonjour,

J'ai récemment transférer mes photos de ma carte SD au disque dur de mon PC. Mais, par je ne sais quel phénomène, elles sont toutes "verrouillées" et donc impossibles à retoucher.
Par verrouillées, j'entends clic-droit, propriétés, onglet 'Sécurité', Modifier. Étrangement, 'Home Users' n'est pas en 'Contrôle total'. Et c'est là qu'il faut faire la modification.
Les faire une par une ne serai pas un problème si j'en n'avais pas 2000...

J'aimerai créer une application pour faire cette modification en masse mais je ne trouve pas d'exemple ou même d'orientation pour m'aider.

J'en appelle donc vous.

Merci... ;-)
--

4 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
25 sept. 2013 à 22:06
Bonsoir,
Sans avoir testé, je pense que cette page peut vous intéresser :
http://www.vbforums.com/showthread.php?616021-Setting-file-and-folder-permissions

0
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 1
Modifié par Shaegal le 26/09/2013 à 19:04
Bonjour Jordane45 et merci.
C'est vrai que je suis quelque peu fâché avec la langue de Shakespeare.

Je regarde rapidement et je confirmerai ou infirmerai...

Note: ce qui est étrange est que je n'ai pas reçu de notification par mail de ta réponse.
--
0
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 1
Modifié par Shaegal le 26/09/2013 à 22:10
J'ai adapté le code aux fichier plutôt qu'au répertoire et ça donne ceci (les chemins des fichiers sont dans un ListView):

Private Sub btnChanger_Click(sender As Object, e As EventArgs) Handles btnChanger.Click
    Application.DoEvents()
    For Each lvFile As ListViewItem In lvPath.Items
      Try
        Dim FI As New IO.FileInfo(lvFile.Text)
        Dim Secure As New FileSecurity
        Dim Ident As String = My.User.Name '
        Secure.AddAccessRule(New FileSystemAccessRule(Ident, FileSystemRights.FullControl, AccessControlType.Allow))
        FI.SetAccessControl(Secure)
        lvFile.BackColor = Color.LightGreen
      Catch ex As Exception
        lvFile.BackColor = Color.PaleVioletRed
        lvFile.ForeColor = Color.White
      End Try
    Next
  End Sub


Mais ça ne fonctionne que sur les fichiers déjà en contrôle total!!!
L'erreur est: Tentative d'exécution d'une opération non autorisée

J'ai peut être un élément de réponse: manuellement, pour chaque fichier à modifier il faut être administrateur. Alors, comment se mettre par défaut en administrateur à chaque fichier?

Une idée?

Merci d'avance... ;-)
--
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
26 sept. 2013 à 23:07
J'ai trouvé ça sur le net :

First you need to call SetAccessRuleProtection method to remove inherited permissions, then add your new permissions. Following code snippet worked successfully.

 
 FileSecurity fs = File.GetAccessControl(folderImage); 

AuthorizationRuleCollection rules = fs.GetAccessRules(true, true, typeof(NTAccount)); 

fs.SetAccessRuleProtection(true, false); 

//passing true for first parameter protects the new permission from inheritance, and second parameter removes the existing inherited permissions 


fs.AddAccessRule(new FileSystemAccessRule(@"Administrators", FileSystemRights.FullControl, AccessControlType.Allow)); 

fs.AddAccessRule(new FileSystemAccessRule(@"Users", FileSystemRights.ReadAndExecute, AccessControlType.Allow));

 
File.SetAccessControl(folderImage, fs);


Par contre c'est en C#. .. A toi de le convertir en VB.NET ^^


Sinon, il y a aussi cette page..
http://www.vbforums.com/showthread.php?616021-Setting-file-and-folder-permissions

A essayer.

Sinon... aucune idée.. faudra qu'un dev VB.NET plus expérimenté passe par ici....
0
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 1
28 sept. 2013 à 09:36
Salut,

Je suis sur le point d'essayer mais je sèche avec NTAccount. Quelqu'un peut-il m'aider avec cette bébête?

Merci... ;-)
0
Utilisateur anonyme
28 sept. 2013 à 12:55
Salut,

"J'aimerai créer une application"
Un peu lourd pour une simple opération. Regarde la commande toute simple attrib à utiliser en ligne de commande (démarrer/exécuter/ puis taper cmd.exe).
0
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 1
1 oct. 2013 à 21:01
Salut Banana32,

Merci pour ce rappel des commandes DOS. Seulement, je ne vois pas comment modifier les autorisations en contrôle total des fichiers.

Je ne pense pas que créer un simple exécutable soit trop lourd pour ce que je veux en faire. Mais ceci est autre débat.

Je pense que je ne suis pas loin de la solution. Je suis en train de lire ceci: http://msdn.microsoft.com/fr-fr/library/vstudio/d49cww7f.aspx le temps (et c'est ce qu'il me manque le plus) de l'adapter... ;-)
0
Rejoignez-nous