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 de 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 des dossiers (et des fichiers) qui sont probablement laissés par une application que j'ai supprimée. Si j'essaie de voir le contenu des dossiers, on me dit que je n'ai pas la permission de le faire, même si je cours en tant qu'administrateur.
Je peux "prendre possession" des dossiers (fichiers) (mais je ne pense pas que cela aura été un succès), mais si je dois rétablir la propriété du 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 faire cela à partir de l'invite de commande Windows (ou sinon, à partir d'un outil graphique)?
Vous pouvez devenir propriétaire à partir de la ligne de commande via la commande takeown et via l'interface graphique de Windows.
Vous pouvez afficher le propriétaire d'un fichier/dossier à l'aide de DIR avec un paramètre/q
Vous pouvez afficher (et prendre) la propriété via l'interface graphique Windows en cliquant avec le bouton droit de la souris sur l'objet dans l'explorateur Windows (fichier ou dossier), en sélectionnant Propriétés, puis en naviguant jusqu'à la page . Sécuritéonglet. Dans l'onglet Sécurité, cliquez sur le bouton Avancéet sur les paramètres de sécurité avancés dans la boîte de dialogue, accédez au Propriétaireonglet.
Une fois que vous avez pris possession d'un fichier/dossier, Windows ne suit pas le propriétaire précédent. Il est donc impossible de revenir au propriétaire précédent. En outre, il n'existe pas de concept de propriété ni d'autorisations de fichier si vous utilisez un type de système de fichiers qui ne prend pas en charge ces attributs étendus tels que FAT16, FAT32, exFAT, etc.
Vous pouvez utiliser wmic
pour interroger les informations de propriété de la manière suivante:
wmic path Win32_LogicalFileSecuritySetting where Path="C:\\windows\\winsxs" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID
N'utilisez pas dir
car les informations de propriété peuvent être tronquées, comme dans cet exemple de répertoire.
Pour obtenir une sortie formatée avec DOMAIN\USER
, vous pouvez utiliser le script de lot 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
SubInACL.exe
vous permet de définir le propriétaire. La syntaxe ressemble à quelque chose comme:
SubInACL/fichier nom de fichier / setowner =Nouveau propriétaire
Si vous ne l'avez pas, vous pouvez le télécharger à partir de Microsoft .
Bien sûr, vous devez avoir les droits pour pouvoir le faire.
cacls
et icalcs
peut modifier les autorisations et takeown
permet de s’approprier. Autant que je sache, ils existent également dans Windows 7. En règle générale, une fois que vous faites une takeown
, vous la suivez avec cacls
ou icalcs
pour vous accorder des autorisations sur l'objet.
Le modèle de sécurité de Microsoft n’autorise pas à donner la propriété de quelqu'un, mais seulement à de le prendre . Ainsi, un administrateur (ou un autre utilisateur privilégié) ne peut pas s'approprier un fichier inaccessible directement à celui-ci, y accéder ou le modifier, et le restituer au propriétaire d'origine sans le notifier au propriétaire d'origine.
Edit: le crédit va à Art pour la description de l'utilisation de takeown
.