Meilleur auteur de réponses
Accès refusé au dossier

Question
-
Bonjour,
Actuellement j'utilise un script qui me permet d’accéder aux partages, malheureusement il m'indique qu'il n'a pas accès au dossier. Lorsque je l'exécute il m'indique " l'accès au chemin C:\ est refusé".
Install-Module NTFSSecurity Get-NTFSAccess -Path "C:\Windows\CSC" | Out-GridView $dossier = "C:\" $Niveau = 3 $resultat = @() $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName foreach ($subfolder in $SubFolders) { $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | select-object @{e={$_.systemname};n="Système"}, @{e={$_.name};n="Disque"}, @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}, @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"} $resultat += New-Object -TypeName PSObject -Property @{ Partage = $subfolder NbDeFichier = $FolderNumberOfFile VolumeMo = $foldersize.sum / 1mb FreeSpaceGO = $EspaceDisque.'Disponible (Go)' } } $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, VolumeMo, FreeSpaceGO | Export-Csv exemple.csv -Delimiter ";" -NoTypeInformation
Je vous remercie d'avance pour votre aide.
gabriel
- Modifié Gabriel_906 lundi 29 octobre 2018 14:26 confidentiel
Réponses
-
Avez-vous bien lancé le script en mode "runas administrator"?
Et avez-vous essayé d'ouvrir le CSV généré à l'aide de notepad et non excel?
- Marqué comme réponse Gabriel_906 lundi 29 octobre 2018 13:16
-
salut Gabriel_906
peut tu nous donner le message d'erreur en entier stp
si l'erreur ce trouve sur le get-ntfsaccess, tu te retrouve bloquer par les autorisations des dossiers systèmes de Windows
et tu le sera aussi sur les dossiers des autres comptes utilisateurs dans le reste du script !
comme dis Sébastien, il faut que tu fasse une élévation administrateur pour ne plus avoir ce problème
- Marqué comme réponse Gabriel_906 lundi 29 octobre 2018 13:16
-
En interface graphique vous pouvez double cliquer sur le répertoire et il vous affichera probablement un prompt avec UAC (présence d'un bouclier) qui vous demandera continuer ou annuler. Si vous cliquer sur continuer, une entrée sera créee.
Si vous n'avez pas l'accés en interface graphique, je ne sais pas comment faire en powershell.
Merci de marquer comme reponses les interventions qui vous ont ete utile.
- Marqué comme réponse Gabriel_906 lundi 29 octobre 2018 15:17
-
salut Gabriel_906
toutes les explications sont sur ce blog en particulier le paragraphe "Using enabled privilèges" en fin article.
voici un script qui reprend les explications sur l'Appropriation de dossier, en corrigent le nom des cmdlets qui ont évolué avec les version du module NTFSSecurity :
$user = "BUILTIN\Administrateurs" Get-ChildItem -path $dossier -Directory | Get-NTFSInheritance | Where-Object { -not $_.AccessInheritanceEnabled } | foreach { Write-Host "Appropriation du dossier $($_.FullName)" Set-NTFSOwner -path $_.FullName -Account $user Enable-NTFSAccessInheritance -Path $_.FullName }
et ci-dessous son intégrations à ton script :
import-Module NTFSSecurity $user = "BUILTIN\Administrateurs" $dossier = "C:\" $Niveau = 3 $resultat = @() $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName foreach ($subfolder in $SubFolders) { Write-Host "dossier : $subfolder" Get-ChildItem -path $subfolder -Recurse -Directory | Get-NTFSInheritance | Where-Object { -not $_.AccessInheritanceEnabled } | foreach { Write-Verbose "Appropriation du dossier $($_.FullName)" Set-NTFSOwner -path $_.FullName -Account $user Enable-NTFSAccessInheritance -Path $_.FullName } $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | select-object @{e={$_.systemname};n="Système"}, @{e={$_.name};n="Disque"}, @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}, @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"} $resultat += New-Object -TypeName PSObject -Property @{ Partage = $subfolder NbDeFichier = $FolderNumberOfFile VolumeMo = $foldersize.sum / 1mb FreeSpaceGO = $EspaceDisque.'Disponible (Go)' } } $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, VolumeMo, FreeSpaceGO | Export-Csv piservices.csv -Delimiter ";" -NoTypeInformation
évidemment à exécuter en élévation administrateur
- Proposé comme réponse 6ratgus lundi 29 octobre 2018 16:22
- Non proposé comme réponse 6ratgus lundi 29 octobre 2018 16:24
- Marqué comme réponse Gabriel_906 mardi 30 octobre 2018 09:31
- Modifié 6ratgus mardi 30 octobre 2018 14:18
-
Il vous faut exécuter le programme powershell avec clic droit exécuter en tant qu'administrateur.
Ensuite vous allez dans le répertoire où le script est présent et vous l'exécuter depuis la fenêtre powershell précédement ouverte.
On n'exécute pas un script powershell en faisant clic droit exécuter (tout comme un cmd en théorie...).
Merci de marquer comme reponses les interventions qui vous ont ete utile.
- Marqué comme réponse Gabriel_906 mercredi 31 octobre 2018 13:05
-
un petit tuto sur la méthode pour l'élévation administrateur
tu peut aussi lancer de la même façon le PowerShell ISE qui te facilitera le débogage de ton script
- Marqué comme réponse Gabriel_906 mercredi 31 octobre 2018 13:05
-
correctif du script :
$user = "BUILTIN\Administrateurs" $dossier = "C:\" $Niveau = 1 $resultat = @() $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName foreach ($subfolder in $SubFolders) { Write-Host "dossier : $subfolder" Get-ChildItem -path $subfolder -Recurse -Directory | Get-NTFSInheritance | Where-Object { -not $_.AccessInheritanceEnabled } | foreach { Write-Verbose "Appropriation du dossier $($_.FullName)" Set-NTFSOwner -path $_.FullName -Account $user Enable-NTFSAccessInheritance -Path $_.FullName } $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | select-object @{e={$_.systemname};n="Système"}, @{e={$_.name};n="Disque"}, @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}, @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"} $resultat += New-Object -TypeName PSObject -Property @{ Partage = $subfolder NbDeFichier = $FolderNumberOfFile VolumeMo = $foldersize.sum / 1mb FreeSpaceGO = $EspaceDisque.'Disponible (Go)' } } $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, VolumeMo, FreeSpaceGO | Export-Csv piservices.csv -Delimiter ";" -NoTypeInformation
- Marqué comme réponse Gabriel_906 mercredi 31 octobre 2018 13:20
Toutes les réponses
-
Bonjour
Je pense que c'est à cause du \ juste avant les " lors de la déclaration de la variable $dossier
Supprimez-le et cela devrait fonctionner
- Modifié Sébastien Cullerier mercredi 17 octobre 2018 09:35
- Marqué comme réponse Gabriel_906 mercredi 17 octobre 2018 10:00
- Non marqué comme réponse Gabriel_906 mercredi 17 octobre 2018 10:04
-
-
Avez-vous bien lancé le script en mode "runas administrator"?
Et avez-vous essayé d'ouvrir le CSV généré à l'aide de notepad et non excel?
- Marqué comme réponse Gabriel_906 lundi 29 octobre 2018 13:16
-
salut Gabriel_906
peut tu nous donner le message d'erreur en entier stp
si l'erreur ce trouve sur le get-ntfsaccess, tu te retrouve bloquer par les autorisations des dossiers systèmes de Windows
et tu le sera aussi sur les dossiers des autres comptes utilisateurs dans le reste du script !
comme dis Sébastien, il faut que tu fasse une élévation administrateur pour ne plus avoir ce problème
- Marqué comme réponse Gabriel_906 lundi 29 octobre 2018 13:16
-
-
-
Bonjour,
Comme je suis dans un compte local en tant qu'administrateur, lorsque j'exécute le script il m'indique une erreur suivant :
Get-ChildItem : l'accès au chemin d'accès 'C:\Windows\CSC' est refusé
PermissionDenied UnauthorizedAccessException
Merci
gabriel
-
Bonjour,
Comme je suis dans un compte local en tant qu'administrateur, lorsque j'exécute le script il m'indique une erreur suivant :
Get-ChildItem : l'accès au chemin d'accès 'C:\Windows\CSC' est refusé
PermissionDenied UnauthorizedAccessException
Merci
gabriel
-
-
-
En interface graphique vous pouvez double cliquer sur le répertoire et il vous affichera probablement un prompt avec UAC (présence d'un bouclier) qui vous demandera continuer ou annuler. Si vous cliquer sur continuer, une entrée sera créee.
Si vous n'avez pas l'accés en interface graphique, je ne sais pas comment faire en powershell.
Merci de marquer comme reponses les interventions qui vous ont ete utile.
- Marqué comme réponse Gabriel_906 lundi 29 octobre 2018 15:17
-
salut Gabriel_906
toutes les explications sont sur ce blog en particulier le paragraphe "Using enabled privilèges" en fin article.
voici un script qui reprend les explications sur l'Appropriation de dossier, en corrigent le nom des cmdlets qui ont évolué avec les version du module NTFSSecurity :
$user = "BUILTIN\Administrateurs" Get-ChildItem -path $dossier -Directory | Get-NTFSInheritance | Where-Object { -not $_.AccessInheritanceEnabled } | foreach { Write-Host "Appropriation du dossier $($_.FullName)" Set-NTFSOwner -path $_.FullName -Account $user Enable-NTFSAccessInheritance -Path $_.FullName }
et ci-dessous son intégrations à ton script :
import-Module NTFSSecurity $user = "BUILTIN\Administrateurs" $dossier = "C:\" $Niveau = 3 $resultat = @() $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName foreach ($subfolder in $SubFolders) { Write-Host "dossier : $subfolder" Get-ChildItem -path $subfolder -Recurse -Directory | Get-NTFSInheritance | Where-Object { -not $_.AccessInheritanceEnabled } | foreach { Write-Verbose "Appropriation du dossier $($_.FullName)" Set-NTFSOwner -path $_.FullName -Account $user Enable-NTFSAccessInheritance -Path $_.FullName } $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | select-object @{e={$_.systemname};n="Système"}, @{e={$_.name};n="Disque"}, @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}, @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"} $resultat += New-Object -TypeName PSObject -Property @{ Partage = $subfolder NbDeFichier = $FolderNumberOfFile VolumeMo = $foldersize.sum / 1mb FreeSpaceGO = $EspaceDisque.'Disponible (Go)' } } $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, VolumeMo, FreeSpaceGO | Export-Csv piservices.csv -Delimiter ";" -NoTypeInformation
évidemment à exécuter en élévation administrateur
- Proposé comme réponse 6ratgus lundi 29 octobre 2018 16:22
- Non proposé comme réponse 6ratgus lundi 29 octobre 2018 16:24
- Marqué comme réponse Gabriel_906 mardi 30 octobre 2018 09:31
- Modifié 6ratgus mardi 30 octobre 2018 14:18
-
-
Je suis sur windows 10 avec un compte local en tant qu'administrateur et je n'ai toujours pas accès.
quand tu administrateur a tu lancer PowerShell en faisant clique droit et "exécuter en tant qu'administrateur"
si c'est pas le cas tu aura toujours le problème !
-
-
Il vous faut exécuter le programme powershell avec clic droit exécuter en tant qu'administrateur.
Ensuite vous allez dans le répertoire où le script est présent et vous l'exécuter depuis la fenêtre powershell précédement ouverte.
On n'exécute pas un script powershell en faisant clic droit exécuter (tout comme un cmd en théorie...).
Merci de marquer comme reponses les interventions qui vous ont ete utile.
- Marqué comme réponse Gabriel_906 mercredi 31 octobre 2018 13:05
-
un petit tuto sur la méthode pour l'élévation administrateur
tu peut aussi lancer de la même façon le PowerShell ISE qui te facilitera le débogage de ton script
- Marqué comme réponse Gabriel_906 mercredi 31 octobre 2018 13:05
-
correctif du script :
$user = "BUILTIN\Administrateurs" $dossier = "C:\" $Niveau = 1 $resultat = @() $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName foreach ($subfolder in $SubFolders) { Write-Host "dossier : $subfolder" Get-ChildItem -path $subfolder -Recurse -Directory | Get-NTFSInheritance | Where-Object { -not $_.AccessInheritanceEnabled } | foreach { Write-Verbose "Appropriation du dossier $($_.FullName)" Set-NTFSOwner -path $_.FullName -Account $user Enable-NTFSAccessInheritance -Path $_.FullName } $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | select-object @{e={$_.systemname};n="Système"}, @{e={$_.name};n="Disque"}, @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}, @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"} $resultat += New-Object -TypeName PSObject -Property @{ Partage = $subfolder NbDeFichier = $FolderNumberOfFile VolumeMo = $foldersize.sum / 1mb FreeSpaceGO = $EspaceDisque.'Disponible (Go)' } } $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, VolumeMo, FreeSpaceGO | Export-Csv piservices.csv -Delimiter ";" -NoTypeInformation
- Marqué comme réponse Gabriel_906 mercredi 31 octobre 2018 13:20
-
-