#Export NTFS rapide dans un fichier des droits NTFS d'un répertoire #Version du 19/01/2018 Clear-Host $MyLine = [string] $NomFichierACreer = [string] $MonResultat = [string] $NomObjet = [string] function Get-ScriptDirectory { $Invocation = (Get-Variable MyInvocation -Scope 1).Value $ScriptFolderPath = Split-Path $Invocation.MyCommand.Path return $ScriptFolderPath } function ListACL(){ param([string]$ObjectToProcess) #On recupere les droits de l objet a traiter $objACL = Get-ACL $ObjectToProcess foreach ($MySubACL in $objACL.Access) { $MyLine = "" + $MySubACL.IdentityReference + "`t" + $MySubACL.AccessControlType + "`t" + $MySubACL.FileSystemRights + "`t" + $MySubACL.IsInherited + "`t" + $MySubACL.PropagationFlags add-content $MonFichier $MyLine } } $DefaultValue = Get-ScriptDirectory $ObjectToProcess = Read-Host "Chemin du répertoire à traiter (par défaut : $DefaultValue)" if($ObjectToProcess -eq $null){$ObjectToProcess = $DefaultValue} if($ObjectToProcess -eq ""){$ObjectToProcess = $DefaultValue} if ($ObjectToProcess.Length -igt 0){ $NomFichierACreer = $ObjectToProcess -replace '\\','_' ##Remplace les \ par _ $NomFichierACreer = $NomFichierACreer -replace '[^a-zA-Z 0-9_]+','' #Remplace tous les caractères spéciaux saut les espaces et les _ $SubFolderModified = $NomFichierACreer -replace '[ ]+',' ' ##Histoire de retirer les espaces consécutifs $NomFichierACreer = "Groupes en acces sur $SubFolderModified.txt" } else{break} $EmplacementFichier = Get-ScriptDirectory $EmplacementFichier = "$EmplacementFichier\$NomFichierACreer" #Création du fichier avec les résultats $MonFichier = New-Item -type file $EmplacementFichier -Force add-content $MonFichier "Accès en place sur $ObjectToProcess :" add-content $MonFichier "" ListACL -ObjectToProcess $ObjectToProcess Write-Host "C'est terminé."