退職した人がオーナーとなった状態のフォルダやファイルのフルアクセス権限を取り戻す。


Administrator権限でもアクセス権限を修正できないフォルダやファイルがある。

これ。
ファイルのプロパティで、こんな画面になる。

ファイルサーバーでたまに起こるのですが、オーナーがコピペした人になってしまうことがあります。
そうなると、Administrator権限でもアクセス権限を修正できなくなります。

今回は、オーナーとなった人は既に退職済で、修正依頼を出すこともできない。

↑画像の、詳細設定ボタンからオーナーを強制的に設定することはできるんですが、配下のフォルダやファイルに反映されない。今回200ファイル以上あるので却下。

困った点は以下

  • オーナー権限を持っているアカウントは削除済。

  • Administrator権限でも、削除できない、実行できない。

  • icaclsコマンドでアクセス権限を付与しようとしても、変更権限がないのでエラーが発生する。

  • ファイルサーバーにAdministratror権限で直そうとすれば直せるが、1ファイル1フォルダごとに直さなければならない

対応策

  • コマンド takeown.exe を利用すると、オーナー権限を強制的に奪う事ができる。
  • takeown.exeでオーナー権限を奪った後ならば、icaclsで権限の付与ができる。

$targetFolder = "対象のフォルダパス";

# Get-ChildItem コマンドで、配下のフォルダを取得できる。-Recurseプロパティーで配下も取得
$itemList =  Get-ChildItem $targetFolder -Recurse

foreach($item in $itemList)
{
    takeown.exe /F $item.Fullname 
    icacls $item.Fullname /grant:r administrators:F
} 

注意点

Get-ChildItemコマンドを実行した時点で、全ての配下のフォルダを確認しようとする。
アクセス権限がないフォルダに対しては、フォルダ名称だけ取得できる。
foreach以降でアクセス権限を設定するので、さらに配下のフォルダのアクセス権限を設定するには、このコマンドを何度も実行する必要がある

時間があったら直す予定。
今回は業務が回ったのでここでクローズ。