PowerShell/ファイル・ディレクトリのセキュリティ情報を取得する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* PowerShellでファイルのセキュリティ情報を取得する [#m182...
ファイルのプロパティ画面のセキュリティタブの情報をPowerSh...
#contents
#br
以下のキャプチャーは、ワードパットのセキュリティタブにな...
#ref(01.png)
#htmlinsertpcsp(win-top.html,win-sp.html)
* 関連記事 [#u3fd19d4]
-[[PowerShellでファイル一覧を取得し各ファイルの情報をCSV...
* 動作確認環境 [#va352292]
PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption
Microsoft Windows 10 Pro
PS C:\> ($PSVersionTable).PSVersion.toString()
5.1.17134.228
* セキュリティタブ情報を取得する(その1) [#w55b6d38]
セキュリティタブ情報を取得する場合、以下のような手順にな...
CSV化などをしたい場合は、「[[セキュリティタブ情報を取得す...
** ファイルのアクセス情報を取得する [#d2efef85]
+ Get-Itemコマンドレットを使用し、対象ファイルを指定しま...
PS C:\> $f = Get-Item C:\windows\write.exe
+ GetAccessControlメソッドを呼び出します。
PS C:\> $a = $f.GetAccessControl()
+ AccessToStringスクリプトプロパティを指定すると以下のよ...
PS C:\> $a.AccessToString
上記コマンドを実行したときの出力です。
NT AUTHORITY\SYSTEM Allow ReadAndExecute, Synchronize
BUILTIN\Administrators Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow ReadAndExecute, Synchronize
NT SERVICE\TrustedInstaller Allow FullControl
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES A...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
上記の出力を確認してみます。~
- NT SERVICE\TrustedInstaller
-- PowerShellの出力
BUILTIN\Users Allow ReadAndExecute, Synchronize
-- キャプチャー
PowerShellの出力と比較すると ''ReadAndExecute'' は「読み...
#ref(02.png)
** ディレクトリのアクセス情報を取得する [#decb639e]
ディレクトリも上記同様の操作で情報を取得することができま...
PS C:\> (Get-Item C:\Windows).GetAccessControl().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 A...
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES A...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
#ref(03.png)
** AccessToStringのスクリプトを調べてみる [#z5a01f5a]
AccessToStringには、実際にどのようなスクリプトが仕込まれ...
今回、以下のように ''AccessToString'' を使用しました。
PS C:\> $d = Get-Item C:\Windows\
PS C:\> $d.GetAccessControl() | Get-Member
TypeName: System.Security.AccessControl.DirectorySecu...
Name MemberType Definition
---- ---------- ----------
Access CodeProperty System.Se...
Group CodeProperty System.St...
Owner CodeProperty System.St...
Path CodeProperty System.St...
Sddl CodeProperty System.St...
<省略>
AccessToString ScriptProperty System.Ob...
<省略>
''AccessToString''の''Definition''を見ると、スクリプトが...
このスクリプトは何が書かれているか確認してみます。~
Get-Itemで指定したファイルはなんでもいいです。オブジェク...
PS C:\> ((Get-Item C:\Windows\).GetAccessControl() | Get...
System.Object AccessToString {get=$toString = "";
$first = $true;
if ( ! $this.Access ) { return "" }
foreach($ace in $this.Access)
{
if($first)
{
$first = $false;
}
else
{
$tostring += "`n";
}
$toString += $ace.IdentityReference.ToString();
$toString += " ";
$toString += $ace.AccessControlType.ToString();
$toString += " ";
if($ace -is [System.Security.AccessControl.Fil...
{
$toString += $ace.FileSystemRights.ToString();
}
elseif($ace -is [System.Security.AccessContro...
{
$toString += $ace.RegistryRights.ToString();
}
}
return $toString;;}
上記の通り、スクリプトにより、アクセス情報を取得し表示し...
* セキュリティタブ情報を取得する(その2) [#tb09b093]
GetAccessControl().Accessで取得する例を以下に記します。~
CSV化など簡単にできます。
以下の構文のスクリプトを実行すると、指定したファイル・デ...
PS C:\> (Get-Item "C:\Windows\write.exe").GetAccessContr...
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : NT AUTHORITY\SYSTEM
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
<省略>
実際に必要そうな項目をSelect-Objectで指定した場合の出力で...
PS C:\> (Get-Item "C:\Windows\write.exe").GetAccessContr...
IdentityReference ...
----------------- ...
NT AUTHORITY\SYSTEM ...
BUILTIN\Administrators ...
BUILTIN\Users ...
NT SERVICE\TrustedInstaller ...
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES ...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
ここまで出力されれば、あとは以下のような感じでCSV出力が可...
PS C:\> (Get-Item "C:\Windows\write.exe").GetAccessContr...
#ref(04.png)
以上、PowerShellでファイルやディレクトリのアクセス情報を...
#htmlinsertpcsp(win-btm.html,win-sp.html)
終了行:
#navi(../)
* PowerShellでファイルのセキュリティ情報を取得する [#m182...
ファイルのプロパティ画面のセキュリティタブの情報をPowerSh...
#contents
#br
以下のキャプチャーは、ワードパットのセキュリティタブにな...
#ref(01.png)
#htmlinsertpcsp(win-top.html,win-sp.html)
* 関連記事 [#u3fd19d4]
-[[PowerShellでファイル一覧を取得し各ファイルの情報をCSV...
* 動作確認環境 [#va352292]
PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption
Microsoft Windows 10 Pro
PS C:\> ($PSVersionTable).PSVersion.toString()
5.1.17134.228
* セキュリティタブ情報を取得する(その1) [#w55b6d38]
セキュリティタブ情報を取得する場合、以下のような手順にな...
CSV化などをしたい場合は、「[[セキュリティタブ情報を取得す...
** ファイルのアクセス情報を取得する [#d2efef85]
+ Get-Itemコマンドレットを使用し、対象ファイルを指定しま...
PS C:\> $f = Get-Item C:\windows\write.exe
+ GetAccessControlメソッドを呼び出します。
PS C:\> $a = $f.GetAccessControl()
+ AccessToStringスクリプトプロパティを指定すると以下のよ...
PS C:\> $a.AccessToString
上記コマンドを実行したときの出力です。
NT AUTHORITY\SYSTEM Allow ReadAndExecute, Synchronize
BUILTIN\Administrators Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow ReadAndExecute, Synchronize
NT SERVICE\TrustedInstaller Allow FullControl
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES A...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
上記の出力を確認してみます。~
- NT SERVICE\TrustedInstaller
-- PowerShellの出力
BUILTIN\Users Allow ReadAndExecute, Synchronize
-- キャプチャー
PowerShellの出力と比較すると ''ReadAndExecute'' は「読み...
#ref(02.png)
** ディレクトリのアクセス情報を取得する [#decb639e]
ディレクトリも上記同様の操作で情報を取得することができま...
PS C:\> (Get-Item C:\Windows).GetAccessControl().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 A...
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES A...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
#ref(03.png)
** AccessToStringのスクリプトを調べてみる [#z5a01f5a]
AccessToStringには、実際にどのようなスクリプトが仕込まれ...
今回、以下のように ''AccessToString'' を使用しました。
PS C:\> $d = Get-Item C:\Windows\
PS C:\> $d.GetAccessControl() | Get-Member
TypeName: System.Security.AccessControl.DirectorySecu...
Name MemberType Definition
---- ---------- ----------
Access CodeProperty System.Se...
Group CodeProperty System.St...
Owner CodeProperty System.St...
Path CodeProperty System.St...
Sddl CodeProperty System.St...
<省略>
AccessToString ScriptProperty System.Ob...
<省略>
''AccessToString''の''Definition''を見ると、スクリプトが...
このスクリプトは何が書かれているか確認してみます。~
Get-Itemで指定したファイルはなんでもいいです。オブジェク...
PS C:\> ((Get-Item C:\Windows\).GetAccessControl() | Get...
System.Object AccessToString {get=$toString = "";
$first = $true;
if ( ! $this.Access ) { return "" }
foreach($ace in $this.Access)
{
if($first)
{
$first = $false;
}
else
{
$tostring += "`n";
}
$toString += $ace.IdentityReference.ToString();
$toString += " ";
$toString += $ace.AccessControlType.ToString();
$toString += " ";
if($ace -is [System.Security.AccessControl.Fil...
{
$toString += $ace.FileSystemRights.ToString();
}
elseif($ace -is [System.Security.AccessContro...
{
$toString += $ace.RegistryRights.ToString();
}
}
return $toString;;}
上記の通り、スクリプトにより、アクセス情報を取得し表示し...
* セキュリティタブ情報を取得する(その2) [#tb09b093]
GetAccessControl().Accessで取得する例を以下に記します。~
CSV化など簡単にできます。
以下の構文のスクリプトを実行すると、指定したファイル・デ...
PS C:\> (Get-Item "C:\Windows\write.exe").GetAccessContr...
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : NT AUTHORITY\SYSTEM
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
FileSystemRights : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
<省略>
実際に必要そうな項目をSelect-Objectで指定した場合の出力で...
PS C:\> (Get-Item "C:\Windows\write.exe").GetAccessContr...
IdentityReference ...
----------------- ...
NT AUTHORITY\SYSTEM ...
BUILTIN\Administrators ...
BUILTIN\Users ...
NT SERVICE\TrustedInstaller ...
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES ...
APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケ...
ここまで出力されれば、あとは以下のような感じでCSV出力が可...
PS C:\> (Get-Item "C:\Windows\write.exe").GetAccessContr...
#ref(04.png)
以上、PowerShellでファイルやディレクトリのアクセス情報を...
#htmlinsertpcsp(win-btm.html,win-sp.html)
ページ名: