windows:powershell:commands:get-acl

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
windows:powershell:commands:get-acl [2020/06/13 07:42] – 作成 ともやんwindows:powershell:commands:get-acl [2020/09/11 17:26] (現在) ともやん
行 1: 行 1:
-<html> 
-  <style> 
-    #result pre, #mincode pre { 
-      overflow: hidden; 
-      font-size: 10px; 
-    } 
-    #result_long pre { 
-      height: 250px; 
-      overflow: scroll; 
-      overflow-x: hidden; 
-      font-size: 10px; 
-    } 
-    #mintbl table { 
-      font-size: 12px; 
-    } 
-    #mintbl td pre { 
-      margin: 0; 
-    } 
-    #img_long { 
-      height: 400px; 
-      overflow: scroll; 
-      overflow-x: hidden; 
-    } 
-    .dokuwiki .plugin_wrap table { 
-      width: auto; 
-    } 
-    #logo { 
-      background-color: white; 
-      padding: 10px; 
-      width: fit-content; 
-    } 
-    #logo p { 
-      margin: 0; 
-    } 
-  </style> 
-</html> 
 ====== Get-Acl ====== ====== Get-Acl ======
 ファイルやレジストリキーなどのリソースのセキュリティ記述子を取得する。\\ ファイルやレジストリキーなどのリソースのセキュリティ記述子を取得する。\\
  
-**ディレクトリのセキュリティ記述子を取得する。**\\+===== ディレクトリのセキュリティ記述子を取得する =====
 <WRAP prewrap 100%> <WRAP prewrap 100%>
 <code powershell> <code powershell>
行 55: 行 19:
 </WRAP> </WRAP>
  
-**ディレクトリの PowerShell パスと SDDL を取得する。**\\+===== ディレクトリの PowerShell パスと SDDL を取得する =====
 <WRAP prewrap 100%> <WRAP prewrap 100%>
 <code powershell> <code powershell>
行 75: 行 39:
 </WRAP> </WRAP>
  
-**SDDL の内容は GetSecurityDescriptorSddlForm('All') と同様である。\\+===== SDDL の内容は GetSecurityDescriptorSddlForm('All') と同様である =====
 <WRAP prewrap 100%> <WRAP prewrap 100%>
 <code powershell> <code powershell>
行 87: 行 51:
 </WRAP> </WRAP>
  
-**Get-Acl でディレクトリから取得できる情報は Format-List で確認できる。**\\+===== Get-Acl でディレクトリから取得できる情報は Format-List で確認できる =====
 <WRAP prewrap 100%> <WRAP prewrap 100%>
 <code powershell> <code powershell>
行 124: 行 88:
          1-2271478464)(A;;0x1200a9;;;AC)(A;OICIIO;GXGR;;;AC)(A;;0x1200a9;;;          1-2271478464)(A;;0x1200a9;;;AC)(A;OICIIO;GXGR;;;AC)(A;;0x1200a9;;;
          S-1-15-2-2)(A;OICIIO;GXGR;;;S-1-15-2-2)          S-1-15-2-2)(A;OICIIO;GXGR;;;S-1-15-2-2)
 +</code>
 +</WRAP>
 +
 +===== SID のユーザー名を調べる =====
 +PowerShell (pwsh) をシステムアカウント (psexec -s) で実行する。\\
 +**psexec** は [[windows:scoop|Scoop]] で [[windows:sysinternals|Windows Sysinternals]] をインストールする。\\
 +<WRAP prewrap 100%>
 +<code powershell>
 +$ sudo psexec -s -i pwsh
 +</code>
 +</WRAP>
 +**-s** システムアカウントでリモートプロセスを実行します。\\
 +**-i** リモートシステム上の指定されたセッションのデスクトップと対話するようにプログラムを実行します。セッションが指定されていない場合、プロセスはコンソールセッションで実行されます。\\
 +<html><span style="color:red;">※システムアカウントでの操作は、システムに重大な影響を与える可能性があるので、十分に注意すること!!</span></html>
 +<WRAP prewrap 100% #result>
 +<code powershell>
 +PsExec v2.2 - Execute processes remotely
 +Copyright (C) 2001-2016 Mark Russinovich
 +Sysinternals - www.sysinternals.com
 +</code>
 +</WRAP>
 +
 +ここでは **C:\Program Files\WindowsApps** ディレクトリを **NT AUTHORITY\SYSTEM** アカウントで参照する。\\
 +<WRAP prewrap 100%>
 +<code powershell>
 +$ Get-Acl "C:\Program Files\WindowsApps" | Format-List
 +</code>
 +</WRAP>
 +<WRAP prewrap 100% #result>
 +<code powershell>
 +Path   : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\WindowsApps
 +Owner  : NT SERVICE\TrustedInstaller
 +Group  : NT SERVICE\TrustedInstaller
 +Access : NT AUTHORITY\RESTRICTED Allow  ReadAndExecute, Synchronize
 +         NT AUTHORITY\SYSTEM Allow  FullControl
 +         NT AUTHORITY\SYSTEM Allow  268435456
 +         NT AUTHORITY\LOCAL SERVICE Allow  ReadAndExecute, Synchronize
 +         NT AUTHORITY\NETWORK SERVICE Allow  ReadAndExecute, Synchronize
 +         BUILTIN\Administrators Allow  ReadAndExecute, Synchronize
 +         BUILTIN\Users Allow  ReadAndExecute, Synchronize
 +         NT SERVICE\TrustedInstaller Allow  268435456
 +         NT SERVICE\TrustedInstaller Allow  FullControl
 +         S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-33
 +         13616867-983405619-2501854204 Allow  -1610612736
 +         S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-33
 +         13616867-983405619-2501854204 Allow  ReadAndExecute, Synchronize
 +Audit  :
 +Sddl   : O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464G:S-1-
 +         5-80-956008885-3418522649-1831038044-1853292631-2271478464D:PAI(A;OICI
 +         ;0x1200a9;;;RC)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;OICI;0x1200a9;;;LS)(A;
 +         OICI;0x1200a9;;;NS)(A;CI;0x1200a9;;;BA)(XA;;0x1200a9;;;BU;(Exists WIN:
 +         //SYSAPPID))(A;OICIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-18
 +         53292631-2271478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-
 +         1853292631-2271478464)(A;OICIIO;GXGR;;;S-1-15-3-1024-3635283841-253018
 +         2609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)(
 +         A;;0x1200a9;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898
 +         -3848208603-3313616867-983405619-2501854204)
 +</code>
 +</WRAP>
 +<WRAP prewrap #mintbl>
 +**SDDL の表記**\\
 +^  表記  ^  用途  ^
 +| O:ユーザーSID  | オブジェクト所有者の SID の指定  |
 +| G:グループSID  | オブジェクトのプライマリグループの SID の指定  |
 +| D:DACLフラグ(ACE文字列1)(ACE文字列2)……(ACE文字列n)  | DACL の指定  |
 +| S:SACLフラグ(ACE文字列1)(ACE文字列2)……(ACE文字列n)  | SACL の指定  |
 +</WRAP>
 +**SDDL:**\\
 +<WRAP prewrap 100% #mincode>
 +<code powershell>
 +O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
 +G:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
 +D:PAI(A;OICI;0x1200a9;;;RC)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)
 +(A;OICI;0x1200a9;;;LS)(A;OICI;0x1200a9;;;NS)(A;CI;0x1200a9;;;BA)(XA;;0x1200a9;;;BU;(Exists WIN://SYSAPPID))(A;OICIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;OICIIO;GXGR;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)
 +(A;;0x1200a9;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)
 +</code>
 +</WRAP>
 +[[https://www.atmarkit.co.jp/ait/articles/0603/25/news016.html|Windowsのセキュリティ設定を記述するSDDL文字列とは?:Tech TIPS - @IT]] より\\
 +
 +**SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464** のユーザー名を取得する。\\
 +<WRAP prewrap 100%>
 +<code powershell>
 +$ (New-Object System.Security.Principal.SecurityIdentifier('S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464')).Translate([System.Security.Principal.NTAccount]).Value
 +</code>
 +</WRAP>
 +<WRAP prewrap 100% #result>
 +<code powershell>
 +NT SERVICE\TrustedInstaller
 </code> </code>
 </WRAP> </WRAP>
行 129: 行 181:
 ===== 参考文献 ===== ===== 参考文献 =====
 [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/get-acl|Get-Acl - Microsoft | Docs]]\\ [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/get-acl|Get-Acl - Microsoft | Docs]]\\
 +[[https://superuser.com/questions/1288014/reset-default-acls-for-c-program-files-windowsapps|windows - Reset default ACLs for C:\Program Files\WindowsApps - Super User]]\\
  
  • windows/powershell/commands/get-acl.1592001760.txt.gz
  • 最終更新: 2020/06/13 07:42
  • by ともやん