Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 获取Acl在UNC路径上似乎不起作用?_Windows_Powershell_Permissions_Acl - Fatal编程技术网

Windows 获取Acl在UNC路径上似乎不起作用?

Windows 获取Acl在UNC路径上似乎不起作用?,windows,powershell,permissions,acl,Windows,Powershell,Permissions,Acl,我很难让Get Acl在UNC路径上工作,以获得目录以及所有底层文件和目录的共享权限 我使用的代码如下所示: $OutFile = "C:\Users\xxxx\Desktop\Permissions.csv" $Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags,FileSystemRights" del $OutFile Add-Cont

我很难让
Get Acl
在UNC路径上工作,以获得目录以及所有底层文件和目录的共享权限

我使用的代码如下所示:

$OutFile = "C:\Users\xxxx\Desktop\Permissions.csv"
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags,FileSystemRights"
del $OutFile
Add-Content -Value $Header -Path $OutFile 

$RootPath = "\\intranet\sites\folder1\folder2\target-folder-as-root"

$Folders = dir $RootPath -Recurse 
#| where {$_.psiscontainer -eq $true}-recurse

foreach ($Folder in $Folders) {
    $ACLs = Get-Acl $Folder.Fullname | ForEach-Object { $_.Access }
    foreach ($ACL in $ACLs) {
        $OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference  + "," +
                   $ACL.AccessControlType + "," + $ACL.IsInherited + "," +
                   $ACL.InheritanceFlags + "," + $ACL.PropagationFlags + "," +
                   $ACL.FileSystemRights
        Add-Content -Value $OutInfo -Path $OutFile
    }
}
没有考虑到这可能导致的文件名大小限制问题,我得到以下错误:

Get-Acl : Method failed with unexpected error code 1. At C:\Users\xxxx\Documents\ntfs_permissions.ps1:12 char:10 + $ACLs = Get-Acl $Folder.Fullname | ForEach-Object { $_.Access } + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Get-Acl], InvalidOperationException + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetAclCommand 获取Acl:方法失败,错误代码为1。 位于C:\Users\xxxx\Documents\ntfs\u权限。ps1:12字符:10 +$ACLs=Get-Acl$Folder.Fullname | ForEach对象{$\.Access} + ~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified:(:)[Get Acl],InvalidOperationException +FullyQualifiedErrorId:System.InvalidOperationException,Microsoft.PowerShell.Commands.GetAclCommand 我发现有关使用UNC路径列出共享驱动器上的共享权限的文档(我不想列出从根目录开始的权限,但只从子文件夹开始的权限)非常有限。

尝试使用:
$ACLs=(Get Acl$Folder.fullname)。Access

不要使用:
$ACLs=获取Acl$Folder.Fullname | ForEach对象{$.Access}

尝试使用:
$ACLs=(获取Acl$Folder.Fullname)。Access


取而代之的是:
$ACLs=Get Acl$Folder.Fullname | ForEach Object{$\u.Access}

Get Acl将显示标准SMB共享路径的文件系统权限,但是我在尝试对SharePoint站点使用Get Acl时遇到的错误与您尝试执行的错误相同。我相信这可能是因为它实际上使用的是WebDav而不是SMB。您能否进一步指导我如何获得共享文件的共享权限?我恐怕没有太多SharePoint管理经验。我建议您对可用的SharePoint PowerShell管理单元或模块进行一些研究,以查看它们是否具有允许您获取文档库权限的cmdlet。这里的任何想法都是,将UNC路径映射到网络驱动器不起作用。get-ACL将显示标准SMB共享路径的文件系统权限,但是,我在尝试对SharePoint网站使用get ACL时遇到了与您尝试执行的相同的错误。我相信这可能是因为它实际上使用的是WebDav而不是SMB。您能否进一步指导我如何获得共享文件的共享权限?我恐怕没有太多SharePoint管理经验。我建议您对可用的SharePoint PowerShell管理单元或模块进行一些研究,以查看它们是否具有允许您获取文档库权限的cmdlet。这里的任何想法都是,将UNC路径映射到网络驱动器是行不通的。