1
我想獲得像下面的CSV輸出,以便用戶可以在Excel中篩選。Powershell:獲取目錄權限遞歸
文件夾,組,權限 I:\ Folder1中,CORP \ 1組,READDATA,ExecuteFile,同步 I:\ Folder1中\文件夾2,CORP \第2組,READDATA,ExecuteFile,同步
下面是什麼啓動用。非常低效,並且不提供所需的CSV輸出。將感謝任何幫助。
$output_file = $(get-date -f MM-dd-yyyy_HH_mm_ss)+'.txt'
"{0},{1},{2}" -f "Folder","Groups","Permissions"| add-content -path $output_file
$file_content = ''
function GetFolders($path = $pwd)
{
if($path -ne $null) {
$new_row = Get-ACL $path | select -ExpandProperty Access | Where-Object IdentityReference -Like "CORP*" | SELECT $path, IdentityReference, FileSystemRights | Format-Table -HideTableHeaders | Out-String
$fileContent += $new_row
$fileContent | add-content -path $output_file
foreach ($item in Get-ChildItem $path)
{
if (Test-Path $item.FullName -PathType Container)
{
Write-Output $item.FullName
GetFolders $item.FullName
$new_row = Get-ACL $item.FullName | select -ExpandProperty Access | Where-Object IdentityReference -Like "CORP*" | SELECT $item.FullName, IdentityReference, FileSystemRights | Format-Table -HideTableHeaders | Out-String
$fileContent += $new_row
$fileContent | add-content -path $output_file
}
}
}
}
GetFolders "J:\"
爲什麼你使用'我不明白Add-Content'而不是'Export-Csv' – Clijsters
兩者都是有效的,但如果數據已經形成,那麼'Add-Content'的開銷就會小一些。 @Clijsters – TheIncorrigible1
當然,但它也比較慢,不是嗎?我認爲這取決於硬件,但是在每一次迭代中打開和關閉流聽起來很沉重。但是,是一個非常清晰和簡單的代碼示例中較少的開銷結果。 – Clijsters