Cómo mostrar / cambiar el propietario de un archivo en Windows 7

14

¿Hay alguna manera de mostrar el propietario de las carpetas y archivos desde la línea de comandos en el símbolo del sistema de Windows 7?

¿Puede cambiar el propietario de una carpeta o archivo a un usuario "arbitrario" que no sea su propio nombre de usuario?

Tengo algunas carpetas (y archivos) que probablemente hayan quedado de una aplicación que he eliminado. Si intento ver el contenido de las carpetas, me dicen que no tengo permiso para hacerlo, incluso si me estoy ejecutando como "Administrador".

Puedo "Tomar posesión" (supongo que esto será exitoso pero aún no lo he probado) de las carpetas (archivos), pero si necesito revertir la propiedad al dueño anterior, necesito saber el nombre de usuario del original propietario, y necesito poder "dar propiedad" a ese usuario.

¿Es posible hacer esto desde el símbolo del sistema de Windows (o si no, desde una GUI-Tool)?

Kevin Fegan
fuente
Consulte aquí una solución utilizando únicamente cmd.exe: obtenga información de propiedad de la línea de comandos utilizando wmic
schletti2000 el

Respuestas:

17

Puede tomar posesión de la línea de comando a través del comando takeown y a través de la GUI de Windows.

Puede ver el propietario de un archivo / carpeta utilizando el DIR con un parámetro / q

Puede ver (y tomar) la propiedad a través de la GUI de Windows haciendo clic derecho en el objeto en el Explorador de Windows (archivo o carpeta), seleccionando Propiedades y luego navegando a la pestaña Seguridad . En la pestaña Seguridad , haga clic en el botón Avanzado y en el cuadro de diálogo Configuración de seguridad avanzada que se muestra posteriormente , vaya a la pestaña Propietario .

Una vez que ha tomado posesión de un archivo / carpeta, Windows no rastrea al propietario anterior, por lo que no hay forma de volver al propietario anterior. Además, no existe un concepto de propiedad o permisos de archivos si está trabajando con un tipo de sistema de archivos que no admite estos atributos extendidos como FAT16, FAT32, exFAT, etc.

Arte
fuente
5

Puede utilizar wmicpara consultar la información de propiedad de esta manera:

wmic path Win32_LogicalFileSecuritySetting where Path="C:\\windows\\winsxs" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID

No lo use dirya que la información de propiedad puede estar recortada, como en este directorio de ejemplo.

Para obtener un resultado formateado DOMAIN\USER, puede usar el siguiente script por lotes:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
REM Escpe the backslash with \\
SET ESCAPED=%~f1
SET ESCAPED=!ESCAPED:\=\\!

wmic path Win32_LogicalFileSecuritySetting where Path="!ESCAPED!" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID > "%temp%\wmi.tmp"

for /F "skip=2 delims=€" %%G in ('type %temp%\wmi.tmp') do (call     :process_wmioutput "%%G")
goto :continue
:process_wmioutput
SET UNDELIMITED=%1
SET DELIMITED=!UNDELIMITED:  =€!
FOR /F "delims=€ tokens=10,12" %%G in ("!DELIMITED!") DO (ECHO %%H\%%G)
exit /B

:continue
schletti2000
fuente
3

SubInACL.exele permite configurar el propietario. La sintaxis se parece a:

SubInACL / file filename / setowner = NewOwner

Si no lo tiene, puede descargarlo de Microsoft .

Por supuesto, debes tener los derechos para poder hacer esto.

Itsme2003
fuente
2

caclsy icalcspuede editar permisos y takeownpermite tomar posesión. AFAIK también existen en Windows 7. Por lo general, una vez que hace un takeown, lo sigue con caclso icalcspara otorgarle permisos al objeto.

El modelo de seguridad de Microsoft no permite ceder la propiedad a alguien, solo tomarlo . De esa forma, un administrador (o usuario privilegiado) no puede tomar posesión de un archivo inaccesible para ella directamente, acceder o modificarlo, y devolverlo al propietario original sin previo aviso al propietario original.

Editar: El crédito va al Arte para la descripción del uso de takeown.

David Foerster
fuente
1
cacls no permite cambiar ni ver al propietario de un archivo. Se podría utilizar takeown de hacer eso. Por lo general, una vez que hace un takeown, lo sigue con calcs o icacls para otorgarle permisos al objeto.
Arte
Gracias, tienes toda la razón. Supongo que muestra que he estado fuera del mundo de Microsoft durante demasiado tiempo para recordar esas cosas. Editaré mi respuesta en consecuencia.
David Foerster
2
Sé que esto es antiguo, pero pensé que agregaría que puede configurar el propietario para que otra persona use icacls. icacls <path> / SETOWNER <name> funciona. Por supuesto, debe ser el propietario o tener los permisos adecuados antes de poder hacerlo para poder implementar el escenario de tomar posesión y devolverlo siempre que tenga la capacidad de tomar posesión en primer lugar.
palehorse
La última vez que lo revisé, Windows prohíbe la transferencia de propiedad a otra cuenta, excepto a la que realiza la transferencia.
David Foerster
@DavidFoerster: de acuerdo con esto: al restaurar 'TrustedInstaller' como propietario del ejecutable en la carpeta de Windows , parece que funcionará. Todavía no lo he probado.
Kevin Fegan
-1

Si usa solo DIRen el mundo de Microsoft, pruebe la /Qopción.

Por ejemplo:

DIR *.xlsx /Q
usuario3029478
fuente
Este es un duplicado de la respuesta de Art.
Fixer1234