根据创建的文件获取用户的OU组

时间:2017-10-19 22:52:06

标签: powershell

我正在创建显示所有者,文件路径,创建时间,上次写入时间和上次访问时间的位置中的所有文件的列表。我还想将用户的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

2 个答案:

答案 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 ";"