【问题标题】:Powershell Get-Acl Owner ReferencePowershell Get-Acl 所有者参考
【发布时间】:2021-07-09 17:11:05
【问题描述】:

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

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

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

当我从域 A 运行此程序时,$owner = domain_a\user。
但是当我从域 B 运行它时,$owner = domain_b\user.

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

可以在域 B 中的机器上运行它并获得正确的结果,但这似乎不是必需的。我错过了什么吗?

谢谢

【问题讨论】:

    标签: powershell acl


    【解决方案1】:

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

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

    【讨论】:

    • 完美!谢谢
    【解决方案2】:

    必须对主组中的“G”进行轻微修改,该组在 sddl 字符串中跟随所有者,正被正则表达式组捕获

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      相关资源
      最近更新 更多