Comment afficher / changer le propriétaire d'un fichier sur Windows 7

14

Existe-t-il un moyen d'afficher le propriétaire des dossiers et des fichiers à partir de la ligne de commande dans l'invite de commande Windoews 7?

Pouvez-vous changer le propriétaire d'un dossier ou d'un fichier en un utilisateur "arbitraire" qui n'est pas votre propre nom d'utilisateur?

J'ai quelques dossiers (et fichiers) qui sont probablement restés d'une application que j'ai supprimée. Si j'essaie d'afficher le contenu des dossiers, je suis averti que je n'ai pas l'autorisation de le faire, même si je cours en tant qu'administrateur.

Je peux "prendre possession" (je suppose que cela réussira mais je ne l'ai pas encore essayé) des dossiers (fichiers), mais si j'ai besoin de restaurer la propriété au propriétaire précédent, j'ai besoin de connaître le nom d'utilisateur de l'original propriétaire, et je dois être en mesure de "donner la propriété" à cet utilisateur.

Est-il possible de le faire à partir de l'invite de commande Windows (ou sinon, à partir d'un GUI-Tool)?

Kevin Fegan
la source
Voir ici pour une solution utilisant uniquement cmd.exe: Obtenez les informations de propriété à partir de la ligne de commande en utilisant wmic
schletti2000

Réponses:

17

Vous pouvez vous approprier à partir de la ligne de commande via la commande takeown et via l'interface graphique Windows.

Vous pouvez afficher le propriétaire d'un fichier / dossier à l'aide du DIR avec un paramètre / q

Vous pouvez afficher (et devenir propriétaire) via l'interface graphique Windows en cliquant avec le bouton droit sur l'objet dans l'Explorateur Windows (fichier ou dossier), en sélectionnant Propriétés , puis en accédant à l' onglet Sécurité . Dans l' onglet Sécurité , cliquez sur le bouton Avancé et dans la boîte de dialogue Paramètres de sécurité avancés qui s'affiche ensuite, accédez à l' onglet Propriétaire .

Une fois que vous avez pris possession d'un fichier / dossier, Windows ne suit pas le propriétaire précédent, il n'y a donc aucun moyen de revenir au propriétaire précédent. En outre, il n'existe aucun concept de propriété ou d'autorisations de fichier si vous travaillez avec un type de système de fichiers qui ne prend pas en charge ces attributs étendus tels que FAT16, FAT32, exFAT, etc.

Art
la source
5

Vous pouvez utiliser wmicpour interroger les informations de propriété comme ceci:

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

Ne pas utiliser dircar les informations de propriété peuvent être tronquées, comme avec cet exemple de répertoire.

Pour obtenir une sortie formatée avec, DOMAIN\USERvous pouvez utiliser le script batch suivant:

@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
la source
3

SubInACL.exevous permet de définir le propriétaire. La syntaxe ressemble à quelque chose comme:

SubInACL / fichier nom de fichier / setowner = NewOwner

Si vous ne l'avez pas, vous pouvez le télécharger auprès de Microsoft .

Bien sûr, vous devez avoir les droits pour pouvoir le faire.

Itsme2003
la source
2

caclset icalcspeut modifier les autorisations et takeownpermet de s'approprier. AFAIK, ils existent également dans Windows 7. En règle générale, une fois que vous effectuez une takeown, vous effectuez un suivi avec caclsou icalcspour vous accorder des autorisations sur l'objet.

Le modèle de sécurité de Microsoft ne permet pas de donner la propriété à quelqu'un, seulement de le prendre . De cette façon, un administrateur (ou un utilisateur autrement privilégié) ne peut pas s'approprier directement un fichier inaccessible, y accéder ou le modifier et le rendre au propriétaire d'origine sans préavis au propriétaire d'origine.

Edit: Le crédit revient à Art pour la description de l'utilisation de takeown.

David Foerster
la source
1
cacls ne permet pas de modifier ou d'afficher le propriétaire d'un fichier. Vous utiliseriez le takeown pour cela. En règle générale, une fois que vous effectuez un démontage, vous effectuez un suivi avec des calculs ou des icacls pour vous accorder des autorisations sur l'objet.
Art
Merci, vous avez tout à fait raison. Je suppose que cela montre que je suis hors du monde de Microsoft depuis trop longtemps pour me souvenir de ces choses. Je modifierai ma réponse en conséquence.
David Foerster
2
Je sais que c'est vieux, mais j'ai pensé que j'ajouterais que vous pouvez définir le propriétaire sur quelqu'un d'autre en utilisant icacls. icacls <path> / SETOWNER <name> fonctionne. Bien sûr, vous devez être le propriétaire ou disposer des autorisations appropriées avant de pouvoir le faire afin que vous puissiez adopter le scénario de prise de possession et de restitution à condition que vous ayez la possibilité de devenir propriétaire en premier lieu.
palehorse
La dernière fois que j'ai vérifié, Windows interdit le transfert de propriété vers un autre compte, sauf celui qui effectue le transfert.
David Foerster
@DavidFoerster - Selon cela: la restauration de 'TrustedInstaller' en tant que propriétaire pour l'exécutable dans le dossier Windows , il semble que cela fonctionnera. Je ne l'ai pas encore essayé moi-même.
Kevin Fegan
-1

Si vous utilisez uniquement DIRdans le monde Microsoft, essayez l' /Qoption.

Par exemple:

DIR *.xlsx /Q
user3029478
la source
Ceci est un double de la réponse d'Art.
fixer1234