Beta
Convert icacls.exe output to json string
11pgra
Description:
A colleague asked you for a function called ConvertTo-iCaclsOutPutObj
to convert the output from icacls.exe to an json string. The function should have the path of the file or folder (-Path
) and the output of the icacls.exe (-iCaclsOutPut
) as input parameters. The return value should be a compressed json string in the format {"Path":"PATH","ACL":["PERMISSION1","PERMISSION2"]}
.
Example of an icacls.exe output:
C:\Temp NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(AD)
BUILTIN\Users:(I)(CI)(WD)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
Successfully processed 1 files; Failed processing 0 files
Example of the expected json string:
{"Path":"C:\\Temp","ACL":["NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(F)","BUILTIN\\Administrators:(I)(OI)(CI)(F)","BUILTIN\\Users:(I)(OI)(CI)(RX)","BUILTIN\\Users:(I)(CI)(AD)","BUILTIN\\Users:(I)(CI)(WD)","CREATOR OWNER:(I)(OI)(CI)(IO)(F)"]}
Full example:
[System.String]$Path = 'C:\Temp'
[System.String]$iCaclsOutPut = icacls.exe $Path | Out-String
<#
$iCaclsOutPut = @'
C:\Temp NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(AD)
BUILTIN\Users:(I)(CI)(WD)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
Successfully processed 1 files; Failed processing 0 files
'@
#>
ConvertTo-iCaclsOutPutObj -Path $Path -iCaclsOutPut $iCaclsOutPut
<#
{"Path":"C:\\Temp","ACL":["NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(F)","BUILTIN\\Administrators:(I)(OI)(CI)(F)","BUILTIN\\Users:(I)(OI)(CI)(RX)","BUILTIN\\Users:(I)(CI)(AD)","BUILTIN\\Users:(I)(CI)(WD)","CREATOR OWNER:(I)(OI)(CI)(IO)(F)"]}
#>
JSON
Fundamentals
Similar Kata:
Stats:
Created | Mar 30, 2020 |
Published | Mar 30, 2020 |
Warriors Trained | 70 |
Total Skips | 1 |
Total Code Submissions | 23 |
Total Times Completed | 11 |
PowerShell Completions | 11 |
Total Stars | 0 |
% of votes with a positive feedback rating | 60% of 5 |
Total "Very Satisfied" Votes | 2 |
Total "Somewhat Satisfied" Votes | 2 |
Total "Not Satisfied" Votes | 1 |
Total Rank Assessments | 5 |
Average Assessed Rank | 6 kyu |
Highest Assessed Rank | 5 kyu |
Lowest Assessed Rank | 7 kyu |