在哪个系统上解析 get-acl 问题



我继承了一个Powershell脚本,远程客户使用该脚本递归搜索目录并导出(到csv)多个ACL值,包括Path,Owner,FileSystemRights,IdentifyReference和AccessControlType。 脚本效果很好,但我很好奇流程实际上是如何发生的。 下面是部分脚本,用于显示与我在下面的问题相关的代码。

部分脚本开始:

get-childitem $rootdir -recurse | where-object {$_.psIscontainer -eq $true} | foreach-object {
  $a = ($_.Fullname)
  $b = (get-acl $_.Fullname).Owner
  $c = (get-acl $_.Fullname).Access
  foreach ($c1 in $c) {
    $d = $c1.FileSystemRights
    $e = $c1.AccessControlType

部分脚本结束。

对于我的问题:如果在远程系统上运行此脚本,使用管理员权限和变量 $rootdir = \\someshare,则在哪个系统上解析 get-acl ...在托管文件夹结构的系统上,还是在运行 PS 脚本并映射到共享文件夹的远程系统上?

谢谢。

我最初的问题可能有点模糊,所以希望我能澄清一下。 通过在远程系统上使用 get-acl 并映射到服务器共享文件夹,调用 get-acl 会导致在 ACL 解析过程中服务器上的任何资源命中...磁盘 I/O、内存、CPU。 我不是程序员,所以请耐心等待我尝试正确表述我的问题。

假设您正确设置了所有身份验证(如果我正确理解您的计划,您会遇到双跃点身份验证问题),对Get-Acl的调用将在运行脚本的系统上执行。

摘自 Get-ACL cmdlet 上的技术网文章

使用 Get-Acl cmdlet可以检索安全描述符 (访问控制列表)的文件、文件夹甚至注册表项

它检索指定的任何文件夹(包括远程文件夹)的 NTFS 权限。

在您的情况下,它将从运行脚本的计算机运行,并使用为检索 ACL 而提供的凭据向远程计算机进行身份验证

最新更新