Pourquoi FIND sur Windows 7 donne-t-il une erreur «Accès refusé»? [fermé]


10

J'ai un compte administrateur sur une machine Windows 7 x64. Ce n'est pas LE compte administrateur, le compte est simplement un membre du groupe des administrateurs.

L'installation est par défaut. Lorsque l'utilisateur ouvre une invite de commande, il se retrouve dans le répertoire% HOMEPATH% des utilisateurs où vous trouverez divers répertoires comme le dossier Documents. Si l'utilisateur utilise la commande FIND (Windows) suivante, une erreur "Accès refusé" se produit:

FIND /I "My String" C:\Users\Rann\Documents
Access denied - C:\USERS\RANN\DOCUMENTS

L'utilisation de runas ou un clic droit sur l'invite de commande pour l'exécuter en tant qu'administrateur ne change pas ce comportement; un cmd.exe de niveau administrateur me donne toujours la même erreur. La modification du chemin d'accès à tout autre répertoire donne la même erreur.

Ma question est donc la suivante: comment peut-on utiliser les commandes FIND (et peut-être d'autres)? Quels droits sont nécessaires?


Cette question peut-elle être déplacée vers le superutilisateur? C'est la seule correspondance pertinente lors de la recherche de ce problème, et elle mérite une réponse concise.
not2savvy

Réponses:


13

Vous essayez d'exécuter la recherche sur un répertoire. Cela ne fonctionne que sur les fichiers. Essaye ça:

FIND /I "My String" C:\Users\Rann\Documents\*

Droite! Vous devez donc savoir à l'avance dans quel dossier le ou les fichiers se trouvent pour utiliser avec succès la commande Rechercher pour trouver la chaîne de texte que vous recherchez. Il ne comprend pas la récursivité. Il a perdu cette capacité quelque part, d'une manière ou d'une autre, en cours de route, pendant le "développement". Pour cette raison, vous pourriez aussi bien cddans le répertoire où se trouve le fichier et émettre find /i "my string" *qui rechercherait tous les fichiers dans ce dossier pour "ma chaîne".
Samir

4

C'est vrai, il semble que Find ne se reproduise plus. Mais bon, pas de soucis, nous pouvons utiliser une petite aide de script ici. En voici une que j'ai essayée et qui fonctionne:

for /R %G in (*) do (find "String_I_am_Looking_For" %G)

Cela recherchera tous les sous-dossiers.

Cela peut produire plusieurs lignes de sortie. Il peut donc être plus facile de diriger la sortie vers un fichier:

for / R% G in (*) do (find "String_I_am_Looking_For"% G) >> output.txt

Ensuite, recherchez la chaîne de recherche dans ce fichier (vous pouvez utiliser l'inspection visuelle ou Ctrl + F pour la trouver ici).


Un peu gênant pour localiser les correspondances réelles parmi toutes les ordures générées par la commande "find", mais cela fait l'affaire pour la recherche étrange!
John Rix

1
J'ai édité la commande pour envoyer la sortie dans un fichier texte - il est peut-être plus facile de cette façon d'utiliser la sortie produite.
shivesh suman

3

Ça n'est pas correct. FIND avait l'habitude de rechercher dans tous les sous-répertoires, mais il ne peut plus le faire en raison de la sécurité de Win 7. Vous devez monter le système de fichiers HORS LIGNE pour utiliser correctement FIND.


Vous pouvez ajouter Windows Vista à la liste des versions de Windows qui n'ont plus de commande Rechercher qui comprend la récursivité. J'utilise Vista Ultimate, x64 en ce moment et je vois le même problème.
Samir

3
peut-être, utilisez plutôt findstr
aeroson

@aeroson: C'est la réponse - Allez-vous le publier?
Pieter Geerkens

@PieterGeerkens Je sais que cela a fonctionné pour moi, mais je ne sais pas pourquoi, n'hésitez pas à le poster.
aéroson

-2

Ici Babar, je facture des frais mais c'est maintenant gratuit pour les représentants.

Permettez-moi de vous dire comment contourneriez-vous le fichier ou le dossier d'accès refusé via cmd:

Objectif: vous devez connaître le nom du dossier et du lecteur dans lequel vous souhaitez accéder.

Si vous appliquez ceci: Disons que votre dossier est dans Drive-D et que le nom est babar.

C: \ users \ system32> cd / dd: appuyez sur entrée

D:> pour% g dans (babar) do (find / n / i "Nom du dossier:" "% g") appuyez sur Entrée

D:> ACCESS DENIED -File Not found

:: #######################################

Cela se produira si vous essayez cette commande ci-dessus dans CMD.EXE

Maintenant, regardez comment vais-je vous faire contourner le fichier d'erreur ACCESS DENIED.

C: \ users \ system32> cd / dd:

D:> for / r% g in (babar) do (find / n / i "Folder Name:% g") press enter

D:> (find / n / i "Nom du dossier: D: \ babar")

et appuyez sur "boutons Ctrl C" pour annuler et sortir du shell CMD

J'espère que cela suffira pour comprendre combien de sites ne montrent pas d'erreurs lors de l'explication du contenu.

Merci.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.