1

このコードで監査ルールを適用しようとしています

function add-acl($Right,$Access)
{
$audit = "mydomain\myaccount","$Right","containerinherit","none","$Access"
$r = new-object system.security.accesscontrol.registryauditrule $audit
$acl.addauditrule($r)
}

$acl = get-acl hklm:\software\_test
add-acl "CreateSubKey" "Success"
add-acl "Delete" "Success"  
add-acl "Delete" "Failure"  
$acl | set-acl

しかし、このコードは以前のルールを考慮せずに監査ルールを記述します。そのため、コードを適用する前に監査ルールを取得したいと考えました。そのために、メソッド getauditrules() を使用しました。

$acl.getauditrules($true,$true,??)

の ??位置、NTaccount オブジェクトと windowsSecurity を試しました。エラーは返されず、実際には何も返されません。Windows インターフェイスを使用しているときに、監査ルールが適用されていることがわかるので、これは本当に残念です。getauditrules() メソッドを期待しているオブジェクトのタイプがわかりません。誰かが私を助けることができますか?

4

1 に答える 1

6

-auditパラメータをコマンドレットに追加してみてくださいget-acl(この取得 SACLSystem Access Control List)。

$acl = get-acl hklm:\software\_test -audit

あなたが使用することができます:

$acl.getauditrules($true,$true, [System.Security.Principal.NTAccount] )

また

$acl.getauditrules($true,$true, [System.Security.Principal.SecurityIdentifier] )

あなたの目標に基づいています。

于 2012-11-22T10:06:07.790 に答える