PowerShell脚本parsingCSV来获取文件的所有权

我需要获得文件的所有者,我有.CSV文件中的列表作为绝对文件夹path,以便将结果添加到列出文件所有者的辅助列中。

提前致谢。

CSV的第一列:

G:\Directory1\file1.zip H:\Directory3\file4.docx . . . F:\Directory99\file234324.bat 

第二列没有,但我希望是:

 Username1 Username2 . . . Username99 

如果你只是有一个以行分隔的文件列表,它不是一个csv文件 – 它只是一个文本文件。

您可以检查每个文件是否存在,并使用Get-Acl提供所有权信息:

 $files = Get-Content C:\path\to\list.csv $fileowners = @() foreach ($file in $files) { if(Test-Path $file -pathType leaf) { $owner = (Get-Acl $file).Owner } else { $owner = "!File not found" } $fileowner = @{"File"=$file;"Owner"=$owner} $fileowners += $fileowner } $fileowners | Export-Csv -NoTypeInformation -Path C:\path\to\final.csv 

您可以使用Select-Object和一个计算属性来生成CSV。

请注意,您的问题表示源CSV文件中没有标题。 我将“文件”和“所有者”的标题添加到输出中。

 Import-Csv input.csv -Header "File" | Select-Object File, @{ Name = "Owner"; Expression = { ( Get-Acl( Get-Item $_.File ) ).Owner } } | Export-Csv -Path output.csv