Question Droits refusé

Plus d'informations
il y a 4 ans 11 mois #22567 par Vanni
Droits refusé a été créé par Vanni
Bonjour à tout le monde,

Depuis quelques temps, j'essaie de créer un script me permettant de supprimer des dossiers de sessions itinérantes qu'y sont stockée sur un serveur.

Les problèmes:
-L'utilisateur administrateur n'a aucun accès au dossier de l'utilisateur
-Dans mon programme, quand je veux récupérer les droits (get-acl), j'ai une erreur comme quoi, je n'ai pas les droits.
-Forcément, quand je fais un set-acl, je suis toujours refusé car j'ai un manque de droits.

Mon scripts me permet (enfin, si une personne à une idée de comment me mettre propriétaire du dossier) de me mettre propriétaire de tous les sous dossier qu'il y a dans le répertoire qu'il y a dans la variable \"$Data.RepertoireSessionLocalPerso\".
Enfin, ma dernière ligne me permet de supprimer le dossier parent une fois que j'aurai les droits sur tout.

[code:1]
$users = get-childitem $Data.RepertoireSessionLocalPerso

Foreach ($user in $users)
{
$acl = Get-Acl -Path $user.FullName
$acl.SetOwner([System.Security.Principal.NTAccount] \"ADMIN\")
set-acl - $user.FullName $acl
$subFolders = Get-ChildItem $user.FullName -Directory -Recurse -force
Foreach ($subFolder in $subFolders)
{
$acl = Get-Acl $subFolder.FullName
$acl.SetOwner([System.Security.Principal.NTAccount] \"ADMIN\")
set-acl $subFolder.FullName $acl
}
}
Remove-Item $Data.RepertoireSessionLocalPerso -Recurse -Force
[/code:1]

Si une personne à une idée de comment me mettre propriétaire alors que je n'ai pas les moindres droits sur le dossier, je suis preneur.

Enfin, je peux quand même me mettre propriétaire MAIS avec l'interface graphique, donc:
-Clic droits sur le dossier => propriété
-Onglet sécurité => avancé
-Modifier le propriétaire et remplacer toutes les entrées parents.

Mon but étant de le faire via un scripts car j'ai plus d'une centaine de dossier à traiter.

D'avance merci à vous,<br><br>Message édité par: Vannidavid, à: 31/10/16 12:24

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 11 mois #22568 par Vanni
Réponse de Vanni sur le sujet Re:Droits refusé
<br><br>Message édité par: Vannidavid, à: 31/10/16 12:10

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 11 mois #22570 par Philippe
Réponse de Philippe sur le sujet Re:Droits refusé
Salut,

Je me suis jamais penché sur le problème mais avec une petite recherche avec les mots \&quot;powershell ownership folder\&quot;, on trouve rapidement un blog qui détaille bien par quoi tu passe.
learn-powershell.net/2014/06/24/changing...er-using-powershell/

Il y a même un lien sur la gallery microsoft
gallery.technet.microsoft.com/scriptcenter/Set-Owner-ff4db177

Fait nous un retour d'expérience B)

A+<br><br>Message édité par: Mortasgus, à: 2/11/16 04:28

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 11 mois #22572 par Vanni
Réponse de Vanni sur le sujet Re:Droits refusé
Je vous remercie pour m'avoir guidé sur le bon chemin!!

Je me suis basé sur la fonction takeown qui m'avait l'air plus sympa à utiliser.

J'arrive enfin à pouvoir supprimer une session itinérante sans le moindre soucis.
Il faut s'avoir que je me sert d'un fichier csv bien entendu car faire un scripts pour juste un dossier n'est pas très utile.

Je vous laisse mon code commenté si jamais une personne en a besoin.

[code:1]
#Fixer le répertoire par défaut
$repertoiretest = 'C:\Réseau\Sessions$\5 éducateurs &amp; directeur\'
$Data = 'Christian2.V6'
#Se mettre propriétaire du dossier (utilisateur courant)
takeown /F $repertoiretest$Data /R /D O
#Fixer les droits de l'utilisateur serv en full control au dossier, tous les sous répertoires et les fichiers
#(Commes je travail sur un répertoire de session itinérante, je suis obligé de passer par cette manipulation.
#Si ça n'avais pas été le cas, j'aurai pu me passer de ces étapes.)
$acl = Get-Acl -Path $repertoiretest$Data
$permission = 'serv@..........', \&quot;FullControl\&quot;, ”ContainerInherit,ObjectInherit”,”None”,”Allow”
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($accessRule)
$acl | Set-Acl $repertoiretest$Data
#J'applique à tous les objets enfants les mêmes droits qu'au dossier principal
icacls $repertoiretest$Data /inheritance:e /t /c
#Maintenant que j'ai enfin tous les droits, je peux supprimer le répertoire
Remove-Item $repertoiretest$Data -Recurse -Force[/code:1]

Si vous avez des remarques à me faire à propos du code, je suis preneur.

David Vanni<br><br>Message édité par: Vannidavid, à: 2/11/16 12:07

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.056 secondes
Propulsé par Kunena