Déverrouiller des fichiers en masse

Signaler
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
-
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
-
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

Messages postés
30359
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
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

Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
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.
--
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
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... ;-)
--
Messages postés
30359
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
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....
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
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... ;-)

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).
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
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... ;-)