Meilleur auteur de réponses
Droits d'accès coupés même pour admin sur FileServer

Question
-
Bonjour à tous !
J'ai effectué une belle boulette sur notre serveur de fichiers. J'ai supprimé un peu vite sur le dossier racine d'un partage tous les accès (même "machinelocale\administrateurs" et "domaine\administrateurs" ) puis j'ai cliqué sur "appliquer" machinalement ! :)
=> Résultat : même administrateur du domaine ou administrateur local serveur ne peut plus accéder à l'arborescence.
Alors oui bien sûr en admin du domaine je peux toujours aller dans les propriété de sécurité => avancé => désigner administrateur en tant que propriétaire et avoir accès au premier dossier.
Sauf que quand je balance l'ACL à tous les sous dossiers, j'ai une erreur de type "accès refusé".
Il faudrait que je recrée la sécurité manuellement sur tous les sous dossiers sauf que j'en ai un bon millier ;)
Bref je me suis dit que si l'opération était possible à la main alors je pouvais l'automatiser avec powershell. Mais non ! ça me refuse l'application des ACLs, même avec le powershell lancé en tant qu'admin !
Pour info voici le script :
$FolderToScan = "D:\partage\1er-sousdossier" $Owner = New-Object System.Security.Principal.NTAccount("domaine\Administrateur") $WriteACE = new-object System.Security.AccessControl.FileSystemAccessRule("domaine\Administrateur","FullControl","ContainerInherit,ObjectInherit","None","Allow") $i = 0 $files = Get-ChildItem $FolderToScan -Recurse Foreach ($file in $files) { $i = $i + 1 write-host $file.FullName $acl = Get-Acl $file.FullName $acl.SetOwner($Owner) $acl.AddAccessRule($WriteACE) Set-Acl -path $file.FullName -aclObject $acl } Write-Output "$i Fichiers traités."
Du coup j'ai cette erreur :
Get-Acl : Tentative d'exécution d'une opération non autorisée. Au caractère C:\Batch\RemplacementProprio.ps1:11 : 12 + $acl = Get-Acl $file.FullName + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Get-Acl], UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetAclCommand Exception lors de l'appel de « AddAccessRule » avec « 1 » argument(s) : « Aucun indicateur ne peut être défini. Nom du paramètre : inheritanceFlags » Au caractère C:\Batch\RemplacementProprio.ps1:17 : 5 + $acl.AddAccessRule($WriteACE) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ArgumentException Set-Acl : Tentative d'exécution d'une opération non autorisée. Au caractère C:\Batch\RemplacementProprio.ps1:18 : 5 + Set-Acl -path $file.FullName -aclObject $acl + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (D:\Donnees\07 -...TILL_EGV14.jpeg:String) [Set-Acl], UnauthorizedAcce ssException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetAclCommand
Merci par avance à celle ou celui qui pourra me sortir de cette impasse...
Bonne journée
- Modifié shinobitom jeudi 26 octobre 2017 15:21 faute de frappe
Réponses
-
Utilise TAKEOWN.EXE pour reprendre le contrôle sur le dossier:
C:\Users\loic>takeown /? TAKEOWN [/S système] [/U utilisateur [/P mot_de_passe]]] /F nom_fichier [/A] [/R [/D invite_de_commandes]] Description : Cet outil permet à un administrateur de récupérer l’accès à un fichier qui avait été refusé en réassignant l’appartenance de fichier. Liste de paramètres : /S système Spécifie le système distant auquel se connecter. /U [domaine\]utilisateur Spécifie le contexte utilisateur sous lequel la commande doit s’exécuter. /P [mot_de_passe] Spécifie le mot de passe du contexte utilisateur donné. Il est demandé s’il est omis. /F nom_fichier Spécifie le nom de fichier ou le modèle de nom du répertoire. Un caractère générique "*" peut être utilisé pour spécifier le modèle. Autorise nompartage\nomfichier. /A Donne l’appartenance au groupe d’administrateurs et non à l’utilisateur actuel. /R Récursif : force l’outil à traiter tous les fichiers du répertoire spécifié et tous ses sous-répertoires. /D invite_commandes Réponse par défaut utilisée lorsque l’utilisateur actuel ne possède pas l’autorisation "lister le dossier" sur un répertoire. Ceci se produit lors du traitement récursif (/R) sur les sous-répertoires. Utilisez les valeurs "O" pour prendre possession ou "N" pour ignorer. /SKIPSL Ne suivez pas les liens symboliques. Uniquement applicable avec /R. /? Affiche ce message d’aide. Remarque : 1) Si /A n’est pas spécifié, l’appartenance de fichier sera attribuée à l’utilisateur actuellement connecté. 2) Les modèles mixtes utilisant « ? » et « * » ne sont pas pris en charge. 3) /D est utilisé pour supprimer la demande de confirmation. Exemples : TAKEOWN /? TAKEOWN /F lostfile TAKEOWN /F \\system\share\lostfile /A TAKEOWN /F directory /R /D N TAKEOWN /F directory /R /A TAKEOWN /F * TAKEOWN /F C:\Windows\System32\acme.exe TAKEOWN /F %windir%\*.txt TAKEOWN /S système /F Mon_Partage\Acme*.doc TAKEOWN /S système /U utilisateur /F MonPartage\MonBinaire.dll TAKEOWN /S système /U domaine\utilisateur /P mot_de_passe /F partage\nom_fichier TAKEOWN /S système /U utilisateur /P mot_de_passe /F Doc\Report.doc /A TAKEOWN /S système /U utilisateur /P mot_de_passe /F Mon_Partage\* TAKEOWN /S système /U utilisateur /P mot_de_passe /F Base\Connexion /R TAKEOWN /S système /U utilisateur /P mot_de_passe /F Mon_Partage\répertoire /R /A
- Modifié Loïc Veirman vendredi 27 octobre 2017 06:07
- Proposé comme réponse Loïc Veirman vendredi 27 octobre 2017 06:07
- Marqué comme réponse Nedeltcho PopovMicrosoft contingent staff lundi 6 novembre 2017 13:13
Toutes les réponses
-
Bonjour Shinobitom,
Via l'interface graphique, si tu essais de mettre Propriétaire ton compte administrateur domaine, et que tu propage le propriétaire (pas encore les permissions) sur les dossiers enfants, c'est un accès refusé ?
Sinon, ton outil de sauvegarde ne sait il pas restaurer uniquement les permissions ?
Cordialement,
Chris.
-
Utilise TAKEOWN.EXE pour reprendre le contrôle sur le dossier:
C:\Users\loic>takeown /? TAKEOWN [/S système] [/U utilisateur [/P mot_de_passe]]] /F nom_fichier [/A] [/R [/D invite_de_commandes]] Description : Cet outil permet à un administrateur de récupérer l’accès à un fichier qui avait été refusé en réassignant l’appartenance de fichier. Liste de paramètres : /S système Spécifie le système distant auquel se connecter. /U [domaine\]utilisateur Spécifie le contexte utilisateur sous lequel la commande doit s’exécuter. /P [mot_de_passe] Spécifie le mot de passe du contexte utilisateur donné. Il est demandé s’il est omis. /F nom_fichier Spécifie le nom de fichier ou le modèle de nom du répertoire. Un caractère générique "*" peut être utilisé pour spécifier le modèle. Autorise nompartage\nomfichier. /A Donne l’appartenance au groupe d’administrateurs et non à l’utilisateur actuel. /R Récursif : force l’outil à traiter tous les fichiers du répertoire spécifié et tous ses sous-répertoires. /D invite_commandes Réponse par défaut utilisée lorsque l’utilisateur actuel ne possède pas l’autorisation "lister le dossier" sur un répertoire. Ceci se produit lors du traitement récursif (/R) sur les sous-répertoires. Utilisez les valeurs "O" pour prendre possession ou "N" pour ignorer. /SKIPSL Ne suivez pas les liens symboliques. Uniquement applicable avec /R. /? Affiche ce message d’aide. Remarque : 1) Si /A n’est pas spécifié, l’appartenance de fichier sera attribuée à l’utilisateur actuellement connecté. 2) Les modèles mixtes utilisant « ? » et « * » ne sont pas pris en charge. 3) /D est utilisé pour supprimer la demande de confirmation. Exemples : TAKEOWN /? TAKEOWN /F lostfile TAKEOWN /F \\system\share\lostfile /A TAKEOWN /F directory /R /D N TAKEOWN /F directory /R /A TAKEOWN /F * TAKEOWN /F C:\Windows\System32\acme.exe TAKEOWN /F %windir%\*.txt TAKEOWN /S système /F Mon_Partage\Acme*.doc TAKEOWN /S système /U utilisateur /F MonPartage\MonBinaire.dll TAKEOWN /S système /U domaine\utilisateur /P mot_de_passe /F partage\nom_fichier TAKEOWN /S système /U utilisateur /P mot_de_passe /F Doc\Report.doc /A TAKEOWN /S système /U utilisateur /P mot_de_passe /F Mon_Partage\* TAKEOWN /S système /U utilisateur /P mot_de_passe /F Base\Connexion /R TAKEOWN /S système /U utilisateur /P mot_de_passe /F Mon_Partage\répertoire /R /A
- Modifié Loïc Veirman vendredi 27 octobre 2017 06:07
- Proposé comme réponse Loïc Veirman vendredi 27 octobre 2017 06:07
- Marqué comme réponse Nedeltcho PopovMicrosoft contingent staff lundi 6 novembre 2017 13:13
-
Bonjour Christophe et Loïc et merci pour vos réponses.
@Christophe :
C'est ça. Via l'interface graphique ça me met un accès refusé.
Pour l'outil de restauration nous utilions Veeam (environnement VMware). je ne crois pas qu'il va jusque là je vais regarder.
@Loïc, j'essaye TakeOwn dans la journée je te tiens au jus. Tu peux appliquer une commande sur un répertoire sur lequel tu as aucun accès ? Ce serait magique ;)
Je tiens au courant.
-