Próbuję uzyskać listę plików, ich właścicieli i uprawnienia
PS C:\> echo Windows | Get-Acl |Format-List
Path : Microsoft.PowerShell.Core\FileSystem::C:\Windows
Owner : NT SERVICE\TrustedInstaller
Group : NT SERVICE\TrustedInstaller
Access : CREATOR OWNER Allow 268435456
NT AUTHORITY\SYSTEM Allow 268435456
NT AUTHORITY\SYSTEM Allow Modify, Synchronize
BUILTIN\Administrators Allow 268435456
BUILTIN\Administrators Allow Modify, Synchronize
BUILTIN\Users Allow -1610612736
BUILTIN\Users Allow ReadAndExecute, Synchronize
NT SERVICE\TrustedInstaller Allow 268435456
NT SERVICE\TrustedInstaller Allow FullControl
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES Allow ReadAndExecute, Synchronize
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES Allow -1610612736
Audit :
Sddl : O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464G:S-1-5-80-956008885-3418522649-1831038044-185
3292631-2271478464D:PAI(A;OICIIO;GA;;;CO)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;SY)(A;OICIIO;GA;;;BA)(A;;0x1301bf;;;
BA)(A;OICIIO;GXGR;;;BU)(A;;0x1200a9;;;BU)(A;CIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271
478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;AC)(A;OICIIO;GXG
R;;;AC)
Pomyślałem, aby przefiltrować Audit
i Sddl
użyć -Property
argumentu, ale to nie pokazuje Access
poprawnie:
PS C:\> echo Windows | Get-Acl |Format-List -Expand Both -Property Path, Owner, Group, Access
Path : Microsoft.PowerShell.Core\FileSystem::C:\Windows
Owner : NT SERVICE\TrustedInstaller
Group : NT SERVICE\TrustedInstaller
Access : {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule,
System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule...}
Jak mogę uzyskać listę reguł dostępu?
powershell
Nędzna zmienna
źródło
źródło
Select -Expandproperty Access|
wcześniej,Format-List
ale Access nie jest listą ani jedną właściwością, więc możesz nie dostać tego, czego się spodziewasz ...echo $env:SystemRoot | Get-Acl | Select-Object -Property * -ExpandProperty Access
echo $env:SystemRoot | Get-Acl | Select-Object -Property * -ExpandProperty Access | findstr PSPath
drukujePSPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows
11 razy.dir $env:SystemRoot\*.log | foreach { $_ | Get-Acl | select -Property Owner, Path -ExpandProperty Access}
podaje listę plików (tylko.log
dla zwięzłości), ich właścicieli i rozszerzonychAccess
. Może utworzenie niestandardowego,psobject
takiego jak w superuser.com/questions/1173588, ułatwiłoby uzyskanie pożądanego rezultatu.