我正在创建显示所有者,文件路径,创建时间,上次写入时间和上次访问时间的位置中的所有文件的列表。我还想将用户的OU组从AD添加到列表中。我怎样才能加入呢?这是我的代码:
$Path = "C:\Users\Mark\Documents"
$MyFile = "C:\Test.csv"
Get-ChildItem $Path -Recurse | Select-Object @{N='Owner';E={$_.GetAccessControl().Owner}}, FullName, CreationTime, LastWriteTime, LastAccessTime | Export-Csv $MyFile
答案 0 :(得分:1)
更新Select-Object
以包含
@{N='OU';E={Get-ADUser -Identity ($_.GetAccessControl().Owner) -Properties Canonicalname | select -ExpandProperty Canonicalname}}
CanonicalName
属性为您提供了用户的路径,例如:domain.com/Users/James
,另一种方法是使用DistinguishedName
将返回CN=James,CN=Users,DC=domain,DC=com
答案 1 :(得分:0)
我不知道您对OU Group的意思,但如果您的意思是OU然后尝试使用类似下面的代码,您可以添加其他内容。
#Settings
$Path = "$($env:USERPROFILE)\Documents"
$OutputFile = Join-Path $Path "test.csv"
#Vars
$Files = Get-ChildItem $Path -Recurse
$Export = @()
#Loop
Foreach ($File in $Files) {
$Owner = $File.GetAccessControl().Owner
$ADUser = Get-ADUser ($Owner -replace ".*\\", "") -Properties mail, department, Canonicalname
$Export += $File | Select-Object @{N='Owner';E={$_.GetAccessControl().Owner}}, `
@{N='Owner-FullName';E={$ADUser.Name}}, `
@{N='Owner-Department';E={$ADUser.Derparmtent}}, `
@{N='Owner-OU';E={($ADUser.Canonicalname -split '/')[((($ADUser.Canonicalname -split '/').count)-2)]}}, `
@{N='Owner-Mail';E={$ADUser.Mail}}, `
FullName, CreationTime, LastWriteTime, LastAccessTime
}
#Export
$Export | Export-Csv $OutputFile -NoTypeInformation -Delimiter ";"