http://blogs.technet.com/b/zarkatech/archive/2012/01/14/audit-file-server-permissions-using-powershell.aspx
$ErrorActionPreference = "Continue"
$strComputer = $env:ComputerName
$colDrives = Get-PSDrive -PSProvider Filesystem
$StartPath = "\\myserver\share"
Get-ChildItem -LiteralPath $StartPath -Recurse |
ForEach {
$FullPath = Get-Item -LiteralPath (Get-Item -LiteralPath $_.PSPath)
(Get-Item -LiteralPath $FullPath).GetAccessControl() |
Select * -Expand Access |
Select @{N='Server Name';E={$strComputer}},
@{N='Full Path';E={$FullPath}},
@{N='Type';E={If($FullPath.PSIsContainer -eq $True) {'D'} Else {'F'}}},
@{N='Owner';E={$_.Owner}},
@{N='Trustee';E={$_.IdentityReference}} } |
#@{N='Inherited';E={$_.IsInherited}},
#@{N='Inheritance Flags';E={$_.InheritanceFlags}},
#@{N='Ace Flags';E={$_.PropagationFlags}},
#@{N='Ace Type';E={$_.AccessControlType}},
#@{N='Access Masks';E={$_.FileSystemRights}} } |
Export-CSV -NoTypeInformation -Delimiter "," –Path "$strComputer`_myserver-share.csv"
$ErrorActionPreference = "Continue"
$strComputer = $env:ComputerName
$colDrives = Get-PSDrive -PSProvider Filesystem
$StartPath = "\\myserver\share"
Get-ChildItem -LiteralPath $StartPath -Recurse |
ForEach {
$FullPath = Get-Item -LiteralPath (Get-Item -LiteralPath $_.PSPath)
(Get-Item -LiteralPath $FullPath).GetAccessControl() |
Select * -Expand Access |
Select @{N='Server Name';E={$strComputer}},
@{N='Full Path';E={$FullPath}},
@{N='Type';E={If($FullPath.PSIsContainer -eq $True) {'D'} Else {'F'}}},
@{N='Owner';E={$_.Owner}},
@{N='Trustee';E={$_.IdentityReference}} } |
#@{N='Inherited';E={$_.IsInherited}},
#@{N='Inheritance Flags';E={$_.InheritanceFlags}},
#@{N='Ace Flags';E={$_.PropagationFlags}},
#@{N='Ace Type';E={$_.AccessControlType}},
#@{N='Access Masks';E={$_.FileSystemRights}} } |
Export-CSV -NoTypeInformation -Delimiter "," –Path "$strComputer`_myserver-share.csv"