J'ai mis à jour le système d'exploitation de mon ordinateur portable sous Windows XP vers Windows 7. Il reste maintenant quelques fichiers restants sous Windows XP sur l'ordinateur. Si j'essaie de les supprimer, j'obtiens le message d'erreur suivant:
Vous avez besoin d'une autorisation pour effectuer cette action.
Vous devez obtenir l’autorisation de S-1 -.... pour apporter des modifications à ce dossier.
Ce qui est étrange, c'est que je suis connecté avec le seul compte d'utilisateur sur cette machine et que je dispose de privilèges d'administrateur. J'ai essayé de désactiver le contrôle de compte d'utilisateur, mais je ne parviens toujours pas à supprimer les fichiers.
Comment puis-je forcer la suppression de ces fichiers?
Il est possible que lors de la mise à niveau, l'ancien utilisateur XP n'ait pas été correctement converti vers Windows 7 - ces fichiers sont donc la propriété d'un utilisateur fantôme. Vous pouvez suivre les étapes ci-dessous:
Prendre possession des fichiers. Lancez une invite de commande (cmd) en tant qu'administrateur et entrez:
takeown /f file
takeown /f directory /r
Donnez-vous tous les droits sur le fichier:
cacls file /G username:F
cacls directory /T /G username:F
cacls
peut être utilisé avec des jokers et la traversée de répertoires. Voir également:
Sécurité depuis la ligne de commande avec CACLS
Commande CACLS
Pour un script Visual Basic plus évolué, voir: Xcacls.vbs pour modifier les autorisations NTFS .
Les arguments en ligne de commande pour prendre possession devraient être dans cet ordre
takeown/f <répertoire> /r
/f modèle de nom de fichier ou de nom de répertoire /r recurse
NOTE: cacls
est maintenant obsolète, veuillez utiliser icacls
icacls <répertoire>/grant <utilisateur>: f /t
f accès complet /t recurse
Dans mon cas, prendre possession de Windows 7 n’était pas suffisant dans mon cas particulier (mon installation de Windows 7 a été réalisée à l’aide de Symantec Backup Exec à partir d’un autre ordinateur et le dossier était sous contrôle de source).
Je devais effectuer deux autres étapes:
Cliquez avec le bouton droit sur le dossier contenant les fichiers à supprimer et sélectionnez "Propriétés" -> "Sécurité" -> "Avancé" -> sélectionnez votre utilisateur -> "Modifier l'autorisation" -> Cochez la case "Remplacer toutes les autorisations d'objet enfant par des autorisations pouvant être héritées de cet objet "
Supprimez les fichiers dans les dossiers manuellement du plus profond à la racine. Supprimez les dossiers une fois qu’ils sont vides, c’est-à-dire si vous avez "folder1-> folder2", supprimez d’abord le contenu de folder2, puis supprimez folder2, etc.
Si les autres solutions ne suffisent pas, vous pouvez essayer ces étapes suivantes.
Ce S-1-...
est un GUID restant de l'installation précédente. De toute évidence, NEWSYSTEM\Administrator
ne fait pas partie du groupe OLDSYSTEM\Administrators
.
Vous devez vous approprier le lecteur, laisser les modifications se propager, puis vous devriez pouvoir supprimer les fichiers.
Généralement, takeown
et (i)cacls
font le travail.
Alternativement, vous pouvez utiliser Unlocker pour le supprimer (il faudra probablement le redémarrer),
ou utilisez PsExec de Sysinternals pour obtenir les privilèges de l'utilisateur SYSTEM et supprimer ces fichiers (celui-ci fonctionnera sur certains fichiers et pourrait échouer sur d'autres).
Mais si ce dossier contient beaucoup de fichiers, les privilèges takeown
prendront beaucoup de temps (cela m'a pris environ 20 minutes, cela dépend de la vitesse du disque dur). Donc, dans ce cas, tout LiveCD/DVD/USB est plus rapide, car ils ne nécessitent aucun privilège pour supprimer le dossier.