Comment OneDrive rend-il son dossier non fonctionnel pour les anciennes versions de Windows?

58

Après la mise à jour de l'automne 2017, le dossier OneDrive Update de Windows 10 ne sera plus accessible à l'aide des versions antérieures de Windows. Cette bizarrerie est décrite sur le site officiel :

Si vous avez installé la mise à jour de Automne 2017 Creators pour Windows 10 et que vous synchronisez les fichiers OneDrive sur un lecteur externe, il se peut que vous ne puissiez pas ouvrir vos fichiers OneDrive si vous déplacez le lecteur externe sur un ordinateur exécutant un système d'exploitation antérieur à Automne 2017. pour Windows 10.

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

J'ai réussi à reproduire le problème sous Windows 7 en branchant un disque dur avec un dossier OneDrive, créé avec Windows 10 auparavant. Maintenant, quand j'essaie de faire quelque chose avec le répertoire (le supprimer ou cddans celui-ci), j'obtiens une erreur:

The file cannot be accessed by the system.

Il n’ya pas d’erreurs logiques dans le FS chkdsk, je suis également propriétaire du dossier et dispose de tous les privilèges de sécurité. Aucun processus n'utilise le volume. Quoi qu'il en soit, je ne peux rien faire avec ce dossier (et uniquement). Quel est le mécanisme de blocage?

enkryptor
la source

Réponses:

72

NTFS possède une fonctionnalité appelée points d'analyse , dans laquelle un fichier ou un répertoire peut être marqué pour un traitement spécial par le système d'exploitation. Il est habitué à implémenter de nombreuses fonctionnalités - par exemple les points de montage de volume (la solution Unix-alternative aux lettres de lecteur); jonctions et liens symboliques; Répertoires clairsemés GitVFS; les fichiers réellement stockés dans une image WIM; les fichiers qui ont été déchargés sur une bande ou un autre stockage lent; etc.

Les versions récentes de OneDrive utilisent également des points d'analyse pour implémenter des "fichiers en ligne" - ce sont des espaces réservés au départ, mais téléchargés à la demande. Les versions précédentes le faisaient au niveau du shell, ce qui ne fonctionnait pas avec beaucoup de programmes; En utilisant un point d'analyse et en déplaçant le téléchargement automatique dans le système d'exploitation principal, il est presque impossible de les distinguer des fichiers locaux.

Naturellement, les nouvelles balises entraînent une erreur lorsque le chemin est utilisé via un système d'exploitation plus ancien. le pilote NTFS ne sait pas quoi faire avec de tels éléments, il refuse donc l'accès. Cela pourrait indiquer, par exemple, un répertoire vide, mais cela pourrait rapidement causer davantage de dommages lorsque le système d'exploitation plus ancien essaie d'écrire dessus.

Vous pouvez utiliser fsutil reparsepoint via Cmd pour afficher la balise de point d'analyse, le cas échéant, qui a été attachée à un fichier ou à un répertoire.

Grawity
la source
11
Tu avais raison. fsutil reparsepoint query OneDrivea montré les données et fsutil reparsepoint delete OneDrivea "déverrouillé" avec succès le répertoire.
enkryptor le
1
Les points d'analyse ne sont-ils pas extensibles / installables? Certes, le système d'exploitation Windows ne prend pas nativement en charge GitVFS.
usr le
3
Le système d'exploitation Windows a effectivement reçu des modifications afin de prendre en charge GitVFS. IIRC, il a toujours eu une exigence de "version minimum Win10". Comme avec OneDrive, je suppose qu’il s’agit d’un support partiel - possibilité pour un utilisateur ou des pilotes personnalisés de se connecter au système d’exploitation ... Je ne sais pas si cela signifie prendre en charge des points d’analyse arbitraires, ou si cela signifie de soutenir un point la mise en œuvre soit installable.
Grawity
4
@usr À l'avenir, ProjFS sera probablement l'option prise en charge pour des fonctionnalités similaires, car il peut être implémenté uniquement en mode utilisateur. Ce n'est pas encore disponible dans une version stable, cependant. ProjFS lui - même (était?) Mis en œuvre en tant que pilote de filtre de système de fichiers, qui est disponible en tant que point d'extension pour quelques versions de Windows (remontant à XP, je crois). OneDrive utilise lui-même (utilisé?) CldFlt ("Pilote de filtre de fichiers en nuage").
Bob