LoginSignup
7
8

More than 5 years have passed since last update.

powershellでwindowsのファイル監査設定を簡単にやる

Posted at

windows環境だとファイル監査設定をして、ファイルの変更履歴をとるケースって結構あると思う。
この設定を、複数台のサーバにGUIで行うのが辛すぎたので、何とかならないかと調べていたところpowershellでNTFSSecurityという拡張モジュールを使って簡単に出来たのでシェア。
GUIで数時間かかっていた作業が、powershell実行で投げて放置できて幸せ。

使い方

1.モジュール置き場を確認

下記コマンドを実行し、ディレクトリに表示されている場所(PSモジュールの置き場)に、NTFSSecurity(このリポジトリにある)をコピーする

PATHが通っているとこならどこでもOK

基本的には、C:\Windows\system32\WindowsPowerShell\v1.0\Modules

PS> Get-Module -ListAvailable

  ディレクトリ: .....

一応、もう一度同じコマンドを実行し、利用可能モジュールとして[NTFSSecurity]がロードされている事を確認

PS> Get-Module -ListAvailable

ModuleType Name                                ExportedCommands
..         ...                                ....
Script     NTFSSecurity                        {Add-NTFSAccess, Add-NTFSAudit, Copy-NTFSAccess, Disable-NTFSAccessIn...

2.モジュールのインポートを実施

PS> Import-Module NTFSSecurity

3.コマンド通ることを確認する。

とりあえず、[Add-Audit]と打ってエラー出なければOK

PS> Add-Audit

コマンド パイプライン位置 1 のコマンドレット Add-NTFSAudit

サンプルコード

上記行った後に、サンプルコードのパスとユーザを追加したら

AddACE.ps1
$TargetFolders = @("Path1",
                   "Path2")
$_host = hostname
$AuditUsers = @("User1",
                "User2")
#監査設定のどの項目を設定したいか
$AuditRules = "Delete,DeleteSubdirectoriesAndFiles,ChangePermissions,Takeownership,WriteData,CreateDirectories,CreateFiles"
$InheritType = "ContainerInherit,ObjectInherit"
$PropagationType = "InheritOnly"
$AuditType = "Success,Failure"

foreach ($AuditUser in $AuditUsers){
  foreach ($TargetFolder in $TargetFolders){
    Write-Host "TagetHost:",$TargetFolder,"TagetUser:",$AuditUser
    Add-Audit $AuditUser $TargetFolder -AccessRights $AuditRules -InheritanceFlags $InheritType -PropagationFlags $PropagationType -Type $AuditType
  }
}

Write-Host "ACE Add Complete"

参照

監査設定項目一覧(powershellは.netのライブラリをそのまま使えるので一緒)
https://msdn.microsoft.com/ja-jp/library/system.security.accesscontrol.filesystemrights%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8