我继承了一个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。我不是程序员,所以当我试图正确地提出问题时,请耐心等待。
答案 0 :(得分:0)
假设您已正确设置所有身份验证(如果我正确理解您的计划,您将遇到双跳身份验证问题),将在运行脚本的系统上执行对Get-Acl
的调用。< / p>
答案 1 :(得分:0)
来自Get-ACL cmdlet上的technet article
Get-Acl cmdlet使您可以检索安全描述符 (访问控制列表)文件,文件夹甚至注册表项
它检索指定的任何文件夹的NTFS持久性,包括远程文件夹。
在您的情况下,它将从运行脚本的计算机运行,并使用提供的凭据对远程计算机进行身份验证以检索ACL