web-dev-qa-db-ja.com

Windows 2003;継承されていない/変更されたアクセス許可を持つフォルダーを検索する

質問:ディレクトリ構造(Windows 2003)を監査/検索し、親からアクセス許可を継承していないフォルダーを見つけるための良い方法を探しています-または-追加のユーザー/グループが追加されました。

裏話

古いWindows 2003ファイルサーバーを2008 R2ボックスに移行しています。この古いサーバーはNT4から移行されました。現在のフォルダーのほとんどは、古い(非推奨?)Domain\AdministratorsおよびDomain\Usersグループを使用しています。これらは、ADにいる間は2008 R2のアクセス許可のアクセス許可に使用できないグループです。

したがって、古いサーバーから新しいサーバーにすべての共有データをロボコピーする前に、最初に古い共有のアクセス許可を「近代化」する必要があります。ただし、過去数十年にわたって、[ドキュメント化されていない]フォルダーの一部は、親から継承しないように、またはユーザーを追加するために権限が変更されていることを知っています。したがって、それらを見つける方法の私の探求!

8
Chris_K

Powershell(Win2003の場合: http://support.Microsoft.com/kb/968929/en-us )と追加のアドオンモジュールを使用することをお勧めします( http://gallery.technet.Microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85 )。

これは、最初に(開始フォルダーから実行する場合など)を使用してフォルダー構造の継承を取得するのに役立ちます。

get-childitem -Recurse | get-inheritance | export-CSV C:\Inheritance.csv -NoTypeInformation

すべてのファイルとフォルダーをcsvで取得し、必要に応じてExcelまたは他のDBでフィルターできます。

NTFSSecurity Modulの追加の利点は、同様のPowershellスクリプトを使用して、移行中にも継承またはACLを変更できることです。

例えば次のようにして、フォルダー(開始フォルダー)の継承を完全に削除できます。

get-childitem | Disable-Inheritance

または、すべてのサブフォルダ/ファイルに対して再度-recurseスイッチを追加します。

これが乾杯に役立つことを願っています

8
Mr.T

これは SetACL でかなり簡単です。次のように実行します。

SetACL -on "some path" -ot file -actn list -lst f:csv -rec cont

このコマンドは、SetACLに、明示的なアクセス許可を持つこれらのオブジェクトのみからアクセス許可を出力するように指示します。これは、継承が有効なディレクトリにACEが追加されたか、継承が無効になったためです。そして、新しいACEが設定されました。

SetACLは、260文字を超えるパスを処理し、現在のアクセス許可に関係なく、任意のディレクトリからのACEを一覧表示します。つまり、読み取りアクセス権を持っていない場合でも、SetACLはそこに何があるかを表示し、アクセス許可を表示します(管理者権限が必要です)。

1
Helge Klein