Powershell 获取一个用户';基于创建的文件的OU组
我正在创建一个位置中所有文件的列表,其中显示所有者、文件路径、创建时间、上次写入时间和上次访问时间。我还想将用户的OU组从AD添加到列表中。我怎样才能把它结合起来?这是我的密码:Powershell 获取一个用户';基于创建的文件的OU组,powershell,Powershell,我正在创建一个位置中所有文件的列表,其中显示所有者、文件路径、创建时间、上次写入时间和上次访问时间。我还想将用户的OU组从AD添加到列表中。我怎样才能把它结合起来?这是我的密码: $Path = "C:\Users\Mark\Documents" $MyFile = "C:\Test.csv" Get-ChildItem $Path -Recurse | Select-Object @{N='Owner';E={$_.GetAccessControl().Owner}}, FullName, C
$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
更新
选择要包括的对象
@{N='OU';E={Get-ADUser -Identity ($_.GetAccessControl().Owner) -Properties Canonicalname | select -ExpandProperty Canonicalname}}
CanonicalName
属性提供用户的路径,例如:domain.com/Users/James
,另一种选择是使用discriminatedname
将返回CN=James,CN=Users,DC=domain,DC=com
我不知道您对OU组的意思,但如果您是指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 ";"
正是我所想的。之前,我的代码类似于下面SteloNLD的回答,但我意识到我把事情复杂化了。缩短为一行。这段代码在添加到我的代码时不会检索任何数据,但它确实让我走上了正确的轨道。谢谢你,先生!