簡體   English   中英

Powershell-在Active Directory中查找文件所有者

[英]Powershell - Looking Up File Owner in Active Directory

如何在Active Directory中查找有關文件所有者的信息? 以下內容不起作用,因為它會將Domain \\ User解析為Get-ADUser命令

$owner = Get-Acl file.txt | Select-Object Owner | Out-String
Get-ADUser -Identity $owner

我還希望能夠查詢其他域中的用戶,因為默認情況下,Get-ADUser會查詢您的本地域。

Get-ADUser的問題在於它正在尋找您

通過用戶的專有名稱(DN),GUID,安全標識符(SID),安全帳戶管理器(SAM)帳戶名或名稱來識別用戶。

字符串“ domain \\ username”不符合預期之一。 而是這樣的事情:

$domains = @{
    DOMAIN = "dc.domain.local"
}
$file = "F:\temp\Re__.msg"
$fileOwner = Get-Acl $file | Select-Object -ExpandProperty Owner
$account = New-Object -TypeName PSObject -Property @{
    domain = $fileOwner.Split("\")[0]
    username = $fileOwner.Split("\")[1]
}

If($domains.ContainsKey($user.domain)){
    $server = $domains[$user.domain]
    Get-ADUser -Server $server -Identity $user.username
} Else {
    Write-Warning "No matching server for the domain: $($user.domain)"
}

創建域的哈希表,並從這些域創建DC。 然后從$file查詢所有者。 將該所有者分為其域和用戶名。 然后使用$user.domain查找匹配的域控制器以搜索用戶。

您還可以使用.Net Framework來獲取SID並將其傳遞給Get-ADUser:

$user = New-Object System.Security.Principal.NTAccount (get-acl 'file.txt').owner
$sid = $user.Translate([System.Security.Principal.SecurityIdentifier]).Value
Get-ADUser $sid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM