Question [Résolu] Droit NTFS et interdiction

Plus d'informations
il y a 5 ans 4 jours #28561 par guigui76
Bonjour Mesdames et Messieurs,
pour mon premier post sur le forum et aussi mes premières lignes d'instruction en Powershell, je désire gérer des droits NTFS.


j'arrive à créer un dossier \"user\" et dans celui-ci un dossier \"personnel_prive\".

Je ne sais pas comment rendre la suppression impossible du dossier \"personnel_prive\" tout en gardant la possibilité
à l'utilisateur de supprimer des données contenu dans les dossiers


et mon ps1

La pièce jointe share_dossier-12037e8f27645ca59bec3d4c7e9534d1.ps1 est absente ou indisponible



j'utilise pour la gestion des droits NTFS:


Add-NTFSAccess –Path \"$PersonnelPathRoot\$User\Personnel_prive\" –Account \"$User\" –AccessRights FullControl

mais je n'ai rien trouvé empêcher la suppresion du dossier.
je vous remercie et vous souhaite une agréable journée

Guigui

Message édité par: guigui, à: 24/03/19 17:04<br><br>Message édité par: Arnaud, à: 27/03/19 10:18

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

Plus d'informations
il y a 5 ans 3 jours #28568 par Arnaud Petitjean
Bonjour Guigui,

Sois le bienvenu dans le forum !

...mais je n'ai rien trouvé empêcher la suppresion du dossier.


Si tu ne souhaites pas que l'utilisateur soit en mesure de supprimer le dossier, il ne faut pas lui donner la permission \&quot;Full Control\&quot; mais simplement \&quot;Modify\&quot;.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 5 ans 2 jours #28573 par guigui76
Réponse de guigui76 sur le sujet Re:droit ntfs et interdiction
Hello, j'ai trouvé une solution :
[code:1]
# Ajout des autorisations NTFS

Add-NTFSAccess –Path \&quot;$PersonnelPathRoot\$Nom_profil\Personnel_prive\&quot; –Account \&quot;$Nom_profil\&quot; -AccessType Deny -AppliesTo ThisFolderOnly -AccessRights Delete
[/code:1]
je refus la suppression que pour le dossier et non pour le contenue.
Je vous remercie


[code:1]Install-Module NTFSSecurity

#################################################



# 2013-04-07 - TGI



# Downloaded on blog.akril.net



# www.tutos.eu/?n=8963



#################################################



# Chargement des Windows Form



#region



[void][System.Reflection.Assembly]::LoadWithPartialName(\&quot;System.Windows.Forms\&quot;«»)



[void][System.Reflection.Assembly]::LoadWithPartialName(\&quot;System.Drawing\&quot;«»)



#endregion



# Creation de la form principale



$form = New-Object Windows.Forms.Form



# Pour bloquer le resize du form et supprimer les icones Minimize and Maximize

$form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedDialog

$form.MaximizeBox = $False

$form.MinimizeBox = $False



# Choix du titre

$form.Text = \&quot;Creation user\&quot;



# Choix de la taille

$form.Size = New-Object System.Drawing.Size(360,330)



# Récupére la description actuelle du poste

$old_name= Get-CimInstance -ClassName Win32_OperatingSystem | select Description



#################################################

# ajout des boutons graphiques

#################################################



# Ajout des boutons OK et Exit



$button_ok = New-Object System.Windows.Forms.Button

$button_ok.Text = \&quot;OK\&quot;

$button_ok.Size = New-Object System.Drawing.Size(100,30)

$button_ok.Location = New-Object System.Drawing.Size(140,150)

$form.Controls.Add($button_ok)# Affichage du bouton ok dans la Windows Form principale



$button_exit = New-Object System.Windows.Forms.Button

$button_exit.Text = \&quot;Exit\&quot;

$button_exit.Size = New-Object System.Drawing.Size(100,30)

$button_exit.Location = New-Object System.Drawing.Size(10,150)

$form.Controls.Add($button_exit)# Affichage du bouton exit dans la Windows Form principale





#################################################

# ajout du label prénom

#################################################



$label1 = New-Object System.Windows.Forms.Label

$label1.AutoSize = $true

$label1.Location = New-Object System.Drawing.Point(10,20)

$label1.Text = 'Prénom:'

$form.Controls.Add($label1)



$textBox1 = New-Object System.Windows.Forms.TextBox

$textBox1.Size = New-Object System.Drawing.Size(150,20)

$textBox1.Location = New-Object System.Drawing.Point(100,17)

$form.Controls.Add($textBox1)








#################################################

# ajout du label nom

#################################################



$label2 = New-Object System.Windows.Forms.Label

$label2.AutoSize = $true

$label2.Location = New-Object System.Drawing.Point(10,80)

$label2.Text = 'Nom:'



$form.Controls.Add($label2)



$textBox2 = New-Object System.Windows.Forms.TextBox

$textBox2.Size = New-Object System.Drawing.Size(150,20)

$textBox2.Location = New-Object System.Drawing.Point(100,77)

$form.Controls.Add($textBox2)




#################################################

# ajout du label Service

#################################################



$label3 = New-Object System.Windows.Forms.Label

$label3.AutoSize = $true

$label3.Location = New-Object System.Drawing.Point(10,120)

$label3.Text = 'Service:'

$form.Controls.Add($label3)



$textBox3 = New-Object System.Windows.Forms.TextBox

$textBox3.Size = New-Object System.Drawing.Size(150,30)

$textBox3.Location = New-Object System.Drawing.Point(100,117)

$form.Controls.Add($textBox3)







#################################################

#Compilation du nom et prénom

#################################################



#La commande suivante affichera abcd

#$Toto = $textBox1.Text







#################################################

# ajout du label nom

#################################################



$label4 = New-Object System.Windows.Forms.Label

$label4.Size = New-Object System.Drawing.Size(100,30)

$label4.Location = New-Object System.Drawing.Point(10,260)

$label4.Text = $Nom_prenom

$form.Controls.Add($label4)






#################################################

# Gestion des actions

#################################################



#################################################

# Gestion event quand on clique sur le bouton Fermer

#################################################

$button_exit.Add_Click(



{



$form.Close();



})




#################################################

# Gestion event quand on clique sur le bouton OK

#################################################



$button_ok.Add_Click(



{

#################################################

# Gestion nom et prénom

#################################################



#Calcul du nombre de caractère du prénom

$nb_textbox1=$textBox1.Text.Length



#mise en variable de la premiere lettre du prenom

$prenom_light= $textBox1.Text.substring(0,$textBox1.Text.length -($nb_textbox1-1))



#Calcul du nombre de caractère du nom

$nb_textbox2=$textBox2.Text.Length

Write-host 'nb_textbox2' $nb_textbox2

if ($nb_textbox2-lt '6')

{$nb_maxi =0}

else{$nb_maxi = 6}



#mise en variable du nom avec 7 lettres aux maxi

$nom_light= $textBox2.Text.substring(0,$textBox2.Text.length -$nb_maxi )



#Nom_profil utiliser pour le compte AD et P:

$Nom_profil= $nom_light+$prenom_light









$PersonnelPathRoot = \&quot;C:\\&quot;









# Creation du dossier personnel

New-Item -ItemType Directory -Path \&quot;$PersonnelPathRoot\$Nom_profil\&quot;



# Modification du partage pour n'autoriser l'accès cas l'user

$bloquage = \&quot;$\&quot;

$destination = \&quot;$PersonnelPathRoot$Nom_profil\&quot;

Write-host $destination

#New-SmbShare –Name $Nom_profil$ -Path $destination

New-SmbShare –Name dudul$ –Path C:\dudul -FullAccess \&quot;dudul\&quot;



# Ajout des autorisations NTFS

Add-NTFSAccess –Path \&quot;$PersonnelPathRoot\$Nom_profil\&quot; –Account \&quot;$Nom_profil\&quot; –AccessRights Modify



# Modifier le proprietaire sur le dossier

Set-NTFSOwner -Path \&quot;$PersonnelPathRoot\$Nom_profil\&quot; -Account \&quot;$Nom_profil\&quot;



# Creation du dossier Personnel_privé

New-Item -ItemType Directory -Path \&quot;$PersonnelPathRoot\$Nom_profil\Personnel_prive\&quot;



# Ajout des autorisations NTFS

Add-NTFSAccess –Path \&quot;$PersonnelPathRoot\$Nom_profil\Personnel_prive\&quot; –Account \&quot;$Nom_profil\&quot; -AccessType Deny -AppliesTo ThisFolderOnly -AccessRights Delete



# Supprimer des autorisations NTFS

Remove-NTFSAccess –Path \&quot;$PersonnelPathRoot\$Nom_profil\&quot; –Account \&quot;Utilisateurs\&quot; -AccessRights FullControl






})





# Affichage de la Windows



$form.ShowDialog()



#################################################



# END OF PROGRAM



#################################################

[/code:1]

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

Plus d'informations
il y a 5 ans 1 jour #28577 par Arnaud Petitjean
Parfait !

Merci d'être venu poster ta solution :)

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

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