Question icacls allow deny directory
- PILLIAT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 11 mois #21633
par PILLIAT
icacls allow deny directory a été créé par PILLIAT
Bonjour,
J'ai un dossier qualite contenant des dossiers communication, test, direction, informatique ...
Je souhaiterais avec des règles acl qu'un utilisateur user_communication voit le dossier communication mais pas les autres, et ainsi de suite pour tous les services, mais je n'y arrive pas, l'utilisateur voit les dossiers d'à côté.
Le programme powershell lit le fichier csv suivant :
test.info test RX 31/03/2016
test.info communication D 31/03/2016
test.info informatique D 31/03/2016
test.info RH D 31/03/2016
(RX pour lecture, D pour deny)
Je suis dessus depuis un moment et ne suis pas spécialiste de powershell.
Si vous aviez une réponse, je vous remercie d'avance.
[code:1]clear
Import-Module ActiveDirectory
$rep=\"E:\partages\Qualite\\"
$rep_gestion=\"gestion-dossiers\\"
$file2=\"gestion-dossiers.csv\"
$path=$rep+$rep_gestion+$file2
$log = $rep+$rep_gestion+\"gestion_log.txt\"
$date = Get-Date -format 'dd/MM/yyyy HH:mm'
$date2 = Get-Date -format 'dd-MM-yyyy'
$members=Import-CSV $path -Delimiter ';' -header 'user','dossier','droits'
$i=0
foreach ($memb in $members) {
if ($i -gt 0) {
$m_user=$memb.user
$m_dossier=$memb.dossier
$m_droits=$memb.droits
$folder = $rep+$m_dossier
$m_affiche=$m_user+\" : \"+$m_dossier+\" : \"+$m_droits+\" folder: \"+$folder
#echo $m_affiche
if ($m_droits -eq \"D\"«») {
cmd /c icacls $folder /remove:g $m_user /T /C
cmd /c icacls $folder /deny $m_user /T /C
\"`n================================================\" | Out-File $log -append
$date + \" : \"+$m_affiche+\" : droit UTILISATEUR supprimé \" | Out-File $log -append
\"`n================================================\" | Out-File $log -append
}
If (-not (Test-Path $folder)) {
\"`n================================================\" | Out-File $log -append
$new_folder=New-Item -ItemType Directory -path $folder
$date + \" : \"+$m_affiche+\" : dossier créé :\" + $folder | Out-File $log -append
$date + \" : \"+$new_folder | Out-File $log -append
\"`n================================================\" | Out-File $log -append
}
$ad_user=Get-AdUser -Identity $m_user
if (-Not $ad_user)
{
$date + \" : \"+$m_user+\" : PROBLEME DE NOM utilisateur \" | Out-File $log -append
}
$rule ='(OI)(CI)(IO)('+$m_droits+')'
$params=$m_user+\":\"+$rule
cmd /c icacls $folder /grant $params /T /C
$log2=$log+\"-acl\"+$date2
cmd /c icacls $folder /save $log2 /T /C
$date + \" : \"+$i+\" : \"+$m_affiche+\" : GRANT \" | Out-File $log -append
}
$i++
}[/code:1]
J'ai un dossier qualite contenant des dossiers communication, test, direction, informatique ...
Je souhaiterais avec des règles acl qu'un utilisateur user_communication voit le dossier communication mais pas les autres, et ainsi de suite pour tous les services, mais je n'y arrive pas, l'utilisateur voit les dossiers d'à côté.
Le programme powershell lit le fichier csv suivant :
test.info test RX 31/03/2016
test.info communication D 31/03/2016
test.info informatique D 31/03/2016
test.info RH D 31/03/2016
(RX pour lecture, D pour deny)
Je suis dessus depuis un moment et ne suis pas spécialiste de powershell.
Si vous aviez une réponse, je vous remercie d'avance.
[code:1]clear
Import-Module ActiveDirectory
$rep=\"E:\partages\Qualite\\"
$rep_gestion=\"gestion-dossiers\\"
$file2=\"gestion-dossiers.csv\"
$path=$rep+$rep_gestion+$file2
$log = $rep+$rep_gestion+\"gestion_log.txt\"
$date = Get-Date -format 'dd/MM/yyyy HH:mm'
$date2 = Get-Date -format 'dd-MM-yyyy'
$members=Import-CSV $path -Delimiter ';' -header 'user','dossier','droits'
$i=0
foreach ($memb in $members) {
if ($i -gt 0) {
$m_user=$memb.user
$m_dossier=$memb.dossier
$m_droits=$memb.droits
$folder = $rep+$m_dossier
$m_affiche=$m_user+\" : \"+$m_dossier+\" : \"+$m_droits+\" folder: \"+$folder
#echo $m_affiche
if ($m_droits -eq \"D\"«») {
cmd /c icacls $folder /remove:g $m_user /T /C
cmd /c icacls $folder /deny $m_user /T /C
\"`n================================================\" | Out-File $log -append
$date + \" : \"+$m_affiche+\" : droit UTILISATEUR supprimé \" | Out-File $log -append
\"`n================================================\" | Out-File $log -append
}
If (-not (Test-Path $folder)) {
\"`n================================================\" | Out-File $log -append
$new_folder=New-Item -ItemType Directory -path $folder
$date + \" : \"+$m_affiche+\" : dossier créé :\" + $folder | Out-File $log -append
$date + \" : \"+$new_folder | Out-File $log -append
\"`n================================================\" | Out-File $log -append
}
$ad_user=Get-AdUser -Identity $m_user
if (-Not $ad_user)
{
$date + \" : \"+$m_user+\" : PROBLEME DE NOM utilisateur \" | Out-File $log -append
}
$rule ='(OI)(CI)(IO)('+$m_droits+')'
$params=$m_user+\":\"+$rule
cmd /c icacls $folder /grant $params /T /C
$log2=$log+\"-acl\"+$date2
cmd /c icacls $folder /save $log2 /T /C
$date + \" : \"+$i+\" : \"+$m_affiche+\" : GRANT \" | Out-File $log -append
}
$i++
}[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.036 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- icacls allow deny directory