我需要获取文件的所有者,我将 .CSV 文件中的列表作为绝对文件夹路径,以便将结果添加到列出文件所有者的辅助列中。
提前致谢。
CSV 的第一列:
G:\Directory1\file1.zip
H:\Directory3\file4.docx
.
.
.
F:\Directory99\file234324.bat
第二列没有,但我希望它是:
Username1
Username2
.
.
.
Username99
答案1
如果您只有一个以行分隔的文件列表,那么它就不是 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
答案2
您可以使用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