具有SamAccountName值的PowerShell Get-ACL

时间:2019-03-29 10:31:14

标签: powershell

我正在尝试使用Powershell收集对csv文件的文件夹权限。我的问题是我需要结果同时包含SamAccountName和FileSystemRights。

我尝试了两种不同的方法。我首先想到的是一种简单的方法,它为我提供了IdentityReference和FileSystemRights,但是我找不到任何可以从IdentityReference获取SamAccountName的工作方法。 我在互联网上发现的第二个要复杂得多。它会收集所有有权访问该文件夹的帐户,但不会显示FileSystemRights,而且我不知道该如何更改。

我自己的解决方案

(Get-Acl "FolderPath").Access | Select-Object IdentityReference, FileSystemRights

我找到的解决方案

Get-Acl $UncPath | Select-Object -ExpandProperty Access | Where-Object { (-not $_.IsInherited) -and ('NT AUTHORITY\SYSTEM','BUILTIN\Administrators','CREATOR OWNER' -notcontains $_.IdentityReference) } | Select-Object -ExpandProperty IdentityReference | ForEach-Object { $_.Translate('System.Security.Principal.SecurityIdentifier').Value } | Get-ADGroup -ErrorAction SilentlyContinue | get-adgroupmember | select-object SamAccountName | Format-Table | Out-String

有什么可行的方法可以使我看到SamAccountName和FileSystemRights的结果?

谢谢。

1 个答案:

答案 0 :(得分:0)

MyProject/
/target1
       /Some stuff
       /CMakeLists.txt // here add_executable(target1 main.c)
/target2
/target3
...
CMakeLists.txt // root CMakeLists.txt file
/build // folder for build files

检查$ everyone变量,它将包含3列:ACL中的身份,sAMAccountName和文件系统权限。