Powershell Get-Acl 所有者参考

Powershell Get-Acl Owner Reference

有没有办法使用 PowerShell 而不是解析的字符串版本来获取目录所有者的实际 IdentityReference?

问题是我想 运行 一个脚本从域 A 到 check/fix 域 B 中文件服务器的所有权问题。我们正在进行迁移,所以 sids 来自B 已添加到 A 的 sidhistory 中。所以我的代码包括如下内容:

$acl = Get-Acl -Path $path
$owner = $acl.Owner

当我 运行 来自域 A 时,$owner = domain_a\user.
但是当我 运行 它来自域 B 时,$owner = domain_b\user.

似乎 Get-Acl 函数正在获取 IdentityReference,在客户端将其转换为字符串,然后丢弃原始数据,因此我无法知道实际所有者是谁。

可以 运行 在域 B 中的计算机上执行此操作并获得正确的结果,但这似乎没有必要。我错过了什么吗?

谢谢

可以从SDDL字符串中解析出来:

$acl = Get-Acl -Path $path
$owner = $acl.sddl -replace 'o:(.+?):.+',''
$owner

必须稍作修改,因为来自主要组的 'G',它在 sddl 字符串中跟随所有者,正被正则表达式组捕获

$owner = $acl.sddl -replace 'o:(.+?)G:.+',''