2016-12-10 7 views
0

アクティブディレクトリに接続されていないUnixサーバー上に多数のユーザーディレクトリがありますが、ほぼすべてのディレクトリの名前はADのユーザー名と同じです。私はファイルサーバーをADにバインドされているWindowsに移行していますが、権限は移動していません。ユーザーディレクトリの所有権を修正するWindows 2012 R2

私がする必要があるのは何とかそのユーザーのADユーザーにそのユーザーのフォルダ内のすべてのディレクトリchowntakeown)です。 * nixのでは、私はこのような何かしたい:

cd /home 
find * --max-depth 0 -exec chown -R {} {} \; 

をしかし、私はそれを行いますPowerShellを使用し何かを見つけるように見えることはできません。私はそこに道の90%を得るが、それは所有権を割り当てることができないというエラーで終わる。これはSeRestorePrivilegeなどのためかもしれないが、それらを設定することはどちらかと思われない。

誰にでも提案や解決策などはありますか? WindowsのACLがはるかに多彩な伝統的なUnixの権限よりもあるので、それは、LINUX/UNIXの場合と同様

答えて

1

ファイルの所有権は、Windowsで同じくらい重要ではありません。所有権をAdministratorsグループに渡し、SYSTEM、Administratorsグループ、およびディレクトリが存在するユーザーに対して、既存のアクセス許可を置き換えて完全なアクセス許可を付与するだけです。これを行うには、takeownicaclsを使用してください。

Get-ChildItem 'D:\home' -Directory | ForEach-Object { 
    $path = $_.FullName 
    $user = $_.Name 

    & takeown /f "$path" /r /a 
    & icacls "$path" '/grant:r' 'SYSTEM:(OI)(CI)F' 'Administrators:(OI)(CI)F' "DOMAIN\${user}:(OI)(CI)F" 
} 

他のユーザー/グループの読み取り/実行権限を適切に追加します。

+0

ありがとうございます! "takeown"はエラーを投げているようです: 'takeown.exe:ERROR:無効な引数/オプション - 'J:\ Users \ username'です。 \ PS用の\ fix_user_permissions2.ps1:5文字:Cで +&takeown "$パス"/R/ + ~~~~~~~~~~~~~~~~~~~~~ ~~ + CategoryInfo:NotSpecified:(ERROR:無効な... J:\ Users \ユーザー名」:。文字列)[ ]、RemoteExceptionを + FullyQualifiedErrorId: "?TAKEOWN /" NativeCommandError タイプ「使用のために。 それは、icaclsが働いたと言いました。だから私は気にしない。 =) – staze

+1

@staze申し訳ありませんが、それは 'takeown/F "$パス"/ R/A'、ない' takeown "$パス"/R/A'してきたはずです。一定。 –

関連する問題