web-dev-qa-db-fra.com

Comment OneDrive fait-il que son dossier n'est pas fonctionnel pour les versions de Windows plus anciennes?

Après la mise à jour de la mise à jour des créateurs d'automne 2017 du dossier Windows 10 OneDrive, on ne peut pas accéder à des versions de Windows antérieures. Cette bizarrerie est décrite au Site officiel :

Si vous avez installé la mise à jour des créateurs d'automne 2017 pour Windows 10 et que vous synchronisez des fichiers OneDrive sur un lecteur externe, vous ne pouvez pas pouvoir ouvrir vos fichiers OneDrive si vous déplacez le lecteur externe sur un ordinateur exécutant un système d'exploitation plus ancien que les créateurs d'automne 2017 Pour Windows 10.

La solution de contournement suggérée est "Utilisez un ordinateur exécutant la mise à jour des créateurs d'automne 2017 pour Windows 10 (ou plus récente) pour ouvrir le contenu".

J'ai reproduit avec succès le problème avec Windows 7 en branlant dans un disque dur avec un dossier OneDrive, créé à l'aide de Windows 10 plus tôt. Maintenant, quand j'essaie de faire quelque chose avec le répertoire (supprimez-le, ou cd y dans), je reçois une erreur:

The file cannot be accessed by the system.

Il n'y a pas d'erreurs logiques dans FS selon chkdsk, je suis également le propriétaire du dossier et que tous les privilèges de sécurité. Aucun processus n'utilise le volume. Peu importe, mais Je ne peux rien faire avec ce dossier (et seulement). Quel est le mécanisme de blocage?

60
enkryptor

NTFS a une fonctionnalité appelée Répandation des points , dans laquelle un fichier ou un répertoire peut être étiqueté pour un traitement spécial par le système d'exploitation. Il est utilisé pour implémenter plusieurs fonctionnalités - par exemple. points de montage du volume (l'alternative UNIX-ISH aux lettres d'entraînement); les jonctions et les liens symboliques; Gitvfs annuaires clairsemés; fichiers qui sont réellement stockés à l'intérieur d'une image WIM; Les fichiers qui ont été déchargés sur bande ou autre stockage lent; etc.

Versions récentes de OneDrive Utilisez également des points de reparse pour mettre en œuvre des "fichiers en ligne" - ce sont des espaces réservés au début, mais téléchargés sur demande. Les versions antérieures l'ont fait avec le niveau de Shell, qui n'a pas fonctionné avec de nombreux programmes; En utilisant un point de reparse et déplacer le téléchargement automatique dans le système d'exploitation centrale les rend presque indiscernables des fichiers locaux.

Naturellement, de nouvelles balises entraîneront une erreur lorsque le chemin est accessible via un ancien système d'exploitation; Le pilote NTFS ne sait pas Que faire avec de tels éléments, il suffit donc de rejette l'accès. Cela pourrait montrer par ex. Un répertoire vide, mais cela pourrait rapidement entraîner plus de dégâts lorsque l'ancien système d'exploitation tente d'écrire.

Vous pouvez utiliser Fsutil reparsepoint via cmd pour voir la balise de point de reparse, le cas échéant, qui a été joint à un fichier ou à un répertoire.

74
user1686