在新行上写每个唯一的文件系统|电源外壳

时间:2019-01-31 16:23:54

标签: powershell

我正在创建一个PowerShell脚本,该脚本将目录中所有文件夹上启用的权限写到CSV文件中,以进行报告。此报告的要求是文件系统权限必须每个都在单独的行上,而不是全部都在一行上(我的代码当前这样做)。例如,当前这些权限如下所示:

C:/temp-folder_123 (column) ReadData- ExecuteFile- Synchronize

但是我希望它的格式如下:

C:/temp-folder_123 (column) ReadData
C:/temp-folder_123 (column) ExecuteFile
C:/temp-folder_123 (column) Synchronize

这是我的代码:

foreach ($access_right in $acl.Access) 
{
if ( ($access_right.FileSystemRights -notmatch $exclude_filesystem_rightss_regex) ) 
{
$file_stream_output.WriteLine(('{0}, {1}, {2}' -f $directory.FullName, $access_right.IdentityReference, ($access_right.FileSystemRights -replace ",","-" )))
}

1 个答案:

答案 0 :(得分:0)

要拆分.FileSystemRights,您必须使用另一个ForEach在它们上进行迭代

foreach ($access_right in $acl.Access) {
    if (($access_right.FileSystemRights -notmatch $exclude_filesystem_rightss_regex) ){
        foreach($fsr in $access_right.FileSystemRights){
            $file_stream_output.WriteLine(('{0}, {1}, {2}' -f `
                $directory.FullName, 
                $access_right.IdentityReference, 
                $fsr)
        }
    )
}