¿Por qué FIND en Windows 7 da un error de "Acceso denegado"? [cerrado]

10

Tengo una cuenta de administrador en una máquina con Windows 7 x64. No es LA cuenta de administrador, la cuenta es simplemente un miembro del grupo de administradores.

La instalación es la predeterminada. Cuando el usuario abre un símbolo del sistema, termina en el directorio% HOMEPATH% de los usuarios, donde encontrará varios directorios como la carpeta Documentos. Si el usuario utiliza el siguiente comando (Windows) FIND, se produce un error "Acceso denegado":

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

Usar runas o hacer clic derecho en el símbolo del sistema para ejecutarlo como administrador no cambia este comportamiento; un cmd.exe de nivel de administrador todavía me da el mismo error. Cambiar la ruta a cualquier otro directorio da el mismo error.

Mi pregunta es así: ¿cómo se supone que uno debe usar los comandos FIND (y posiblemente otros)? ¿Qué derechos se necesitan?


fuente
¿Se pueden trasladar estas preguntas al superusuario? Es la única coincidencia relevante cuando se busca este problema, y ​​merece una respuesta concisa.
not2savvy

Respuestas:

13

Estás intentando ejecutar find en un directorio. Solo funciona en archivos. Prueba esto:

FIND /I "My String" C:\Users\Rann\Documents\*
Pausado hasta nuevo aviso.
fuente
¡Derecho! Por lo tanto, debe saber de antemano en qué carpeta se encuentran el archivo o los archivos para usar con éxito el comando Buscar para encontrar la cadena de texto que está buscando. No entiende la recursividad. Perdió esa habilidad en algún lugar, de alguna manera, en el camino, durante el "desarrollo". Por esta razón, también podría cdingresar al directorio donde está el archivo y emitir el find /i "my string" *que buscaría "mi cadena" en todos los archivos de esa carpeta.
Samir
4

Eso es cierto, parece que Find ya no vuelve a aparecer. Pero bueno, no te preocupes, aquí podemos usar un poco de ayuda con los scripts. Aquí hay uno que probé y funciona:

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

Esto buscará todas las subcarpetas.

Esto puede producir varias líneas de salida. Por lo tanto, puede ser más fácil dirigir la salida a un archivo:

para / R% G en (*) do (busque "String_I_am_Looking_For"% G) >> output.txt

Y luego busque la cadena de búsqueda en este archivo (puede usar la inspección visual o Ctrl + F para encontrar aquí).

shivesh suman
fuente
Un poco incómodo para localizar las coincidencias reales entre toda la basura que genera el comando 'find', ¡pero esto es el truco para la búsqueda extraña!
John Rix
1
He editado el comando para enviar la salida a un archivo de texto; tal vez sea más fácil de esta manera usar la salida que se produce.
shivesh suman
3

Esto no está bien. FIND solía buscar en todos los subdirectorios, pero ya no 'puede' debido a la seguridad de Win 7. Tienes que montar el sistema de archivos OFFLINE para usar FIND correctamente.

creador
fuente
Puede agregar Windows Vista a la lista de versiones de Windows que ya no tienen un comando Buscar que comprende la recursividad. Estoy ejecutando Vista Ultimate, x64 en este momento y veo el mismo problema.
Samir
3
tal vez, en lugar utilizar findstr
aeroson
@aeroson: Esa es la respuesta : ¿vas a publicarlo?
Pieter Geerkens el
@PieterGeerkens Sé que funcionó para mí, pero no sé por qué, no dudes en publicarlo.
aeroson
-2

Este es Babar Aquí, cobro tarifas por esto, pero ahora es gratis por el bien de los representantes.

Déjame decirte cómo omitirías el archivo o la carpeta de acceso denegado a través de cmd:

Objetivo: debe conocer el nombre de la carpeta y la unidad a la que desea acceder.

Si aplica esto: Digamos que su carpeta está en Drive-D y el nombre es babar.

C: \ users \ system32> cd / dd: presione enter

D:> para% g en (babar) do (find / n / i "Nombre de carpeta:" "% g") presione enter

D:> ACCESO DENEGADO - Archivo no encontrado

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

Esto sucederá si prueba este comando anterior en CMD.EXE

Ahora mire cómo le haré omitir el archivo de error ACCESS DENIED.

C: \ users \ system32> cd / dd:

D:> para / r% g en (babar) do (find / n / i "Nombre de carpeta:% g") presione enter

D:> (find / n / i "Nombre de la carpeta: D: \ babar")

y presione "ctrl botones C" para cancelar y salir del shell CMD

Espero que esto sea suficiente para comprender cuántos sitios no muestran errores durante la explicación del contenido.

Gracias.

Ben999
fuente