
No.6ベストアンサー
- 回答日時:
色々実験してみましたら,普通にCACLSで出来ました。
◎単にEveryoneを削除したい(チェックはついたまま)
→#5の方法もしくは,バッチの:MD_AND_CACLSを以下に変更。
---ここから---
:MD_AND_CACLS
For /F "usebackq eol=; tokens=1 delims=," %%i in (acl.txt) DO md %%i
For /F "usebackq eol=; tokens=1,2 delims=," %%i in (acl.txt) DO cacls %%i /e /g %%j
REM Everyoneのアクセス権を削除
For /F "usebackq eol=; tokens=1 delims=," %%i in (acl.txt) DO cacls %%i /e /r everyone
---ここまで---
◎Everyoneを削除して,チェックも外したい
→バッチの:MD_AND_CACLSを以下に変更。
---ここから---
:MD_AND_CACLS
For /F "usebackq eol=; tokens=1 delims=," %%i in (acl.txt) DO md %%i
REM Everyoneのアクセス権を削除
For /F "usebackq eol=; tokens=1 delims=," %%i in (acl.txt) DO cacls %%i /e /r everyone
For /F "usebackq eol=; tokens=1,2 delims=," %%i in (acl.txt) DO cacls %%i /e /g %%j
---ここまで---
上記は,
ディレクトリ作成→アクセス権設定→everyone削除
ディレクトリ作成→evryone削除→アクセス権設定
という違いでしかありません。
ただし後者においても,新たに設定したアクセス権が
一階層上のフォルダのアクセス権を完全に含む場合,
チェックがつきます。(多分そういう仕様)
例)
DIR_1…Use1:F,User2:C,Group1:F
|
|--DIR_2…Use1:F,User2:C,Group1:F,User3:F
| |
| |----DIR_2.1…Use1:F,User2:C,Group1:F
|
|--DIR_2…Use1:F,C,Group1:F,User3:F
この場合DIR_2にチェックがつく。
DIR2.1は一階層上のDIR_2のアクセス権を完全に含まない
(User3がない)のでチェックはつかない。
No.5
- 回答日時:
単にEveryoneフルコントロールを削除するだけであれば,
ルート(D:)上でEveryoneのアクセス権を消すと,
下位のフォルダから消えると思います。
(念のため,事前にD:にAdministratorをフルコントロールで
入れておいたほうがいいかもしれませんが)
ただ,
「継承可能なアクセス許可を親からこのオブジェクトに継承できるようにする。」
のチェックを外す方法となると……CACLSでは無理ですので
別の手を考えないといけませんね。
No.4
- 回答日時:
ああああ,acls.txtに余計な"が。
"c:\test_dir1_depth1",users:w guest:r administrator:f"
↓
"c:\test_dir1_depth1",users:w guest:r administrator:f
この回答への補足
こんにちは、
d:にフォルダを作ろうとしています。
d:everyone フルコントロール
フォルダのセキュリティで
「継承可能なアクセス許可を親からこのオブジェクトに継承できるようにする。」にチェックが入っているため、batを行うと、everyoneフルコントロールが残ってしまいます。
BATファイルにこれを削除するように書き換えたいのですが、どうすればいいのでしょうか?
よろしくお願いします。
No.3
- 回答日時:
む。
しまった。これではユーザ名/グループ名に空白があるとダメだ。
acls.txtとバッチファイルを以下に差し替えて下さい。
---acls.txtここから---
"c:\test_dir1_depth1",users:w guest:r administrator:f"
"c:\test_dir1_depth1\depth2",users:w administrator:f
"c:\test_dir2","creator owner:f"
---acls.txtここまで---
◎変更点
ユーザ名に空白があるばあいは""で括る。
めんどくさければ全て""で括ってもOK。
---バッチファイルここから---
@echo フォルダ作成とACLの設定を行います。
@echo よろしいですか?(y/n) ※yキー以外で実行を中止。
@echo off
Set /p ret=
If %ret%==y goto MD_AND_CACLS
goto END
:MD_AND_CACLS
For /F "usebackq eol=; tokens=1 delims=," %%i in (acl.txt) DO md %%i
For /F "usebackq eol=; tokens=1,2 delims=," %%i in (acl.txt) DO cacls %%i /e /g %%j
:END
---バッチファイルここまで--
◎変更点
For に usebackq を追加。
(""で括られた値を正しく処理するため)
No.2
- 回答日時:
#1です。
*******考慮しなければいけない点*********
その1
バッチファイルは下位のフォルダにACLを継承しないため,
馬鹿正直にacl.txtでアクセス権を列挙しなければいけません。
継承させたいときは cacls %%i /e /g %%j を cacls %%i /e /t /g %%j
としてやればいいのですが,その場合は acl.txtを
上位のフォルダ→下位のフォルダとなるように並べかえる
必要があるかもしれません。(未検証)
その2
アクセス権は追加される形になります。(置き換えではない)
このあたりはコマンドプロンプトから cacls /? で
/e についての記述を読んで下さい。
置き換えたい場合は /e を外せばよいのですが,その際は
全てのフォルダに Administrator:f を与えないと
ダメかもしれません。(未検証)
その3
caclsコマンドは,読みとり・書き込み・変更・フルコントロール
の4種類しか設定できません。
ファイルの作成・編集はOKだけどフォルダはNGなんていう
細かい制御をしたいときは
http://members.jcom.home.ne.jp/unimaru/software/ …
の UniCacls.exe を使うとよいかもしれません。
その場合は以下が必要となります。
・UniCacls.exeをバッチファイルと同じフォルダに保存
・acls.txt のアクセス権の記述をUniCacls用に変更
・バッチファイルの DO cacls を DO unicacls.exe に変更
なお UniCacls の書式はコマンドプロンプトから
UniCaclsのあるフォルダに移動して, unicacls と
入力すると参照できます。
バッチファイルで何をしているかは,
For /?
をデスクトップが透けて見えるまで読み倒して下さい。
参考URL
http://www.monyo.com/technical/windows/20.html
http://www.monyo.com/technical/windows/11.html
http://members.jcom.home.ne.jp/unimaru/software/ …
No.1
- 回答日時:
コマンドでcaclsってのがあります。
色々考慮しなければいけない点はさておき,とりあえず
一番簡単な例として。
1.フォルダのパスとユーザ名とアクセス権のリストを作り
acl.txt として保存する。
◎書式: フォルダのフルパス,ユーザ名:アクセス権
ユーザを複数指定する場合は,半角スペースを開けて列挙。
(グループ名とユーザ名は特に意識しなくもいいみたい)
アクセス権の書式は caclsコマンドを参照。
---サンプルここから---
"c:\test_dir1_depth1",users:w guest:r administrator:f
"c:\test_dir1_depth1\depth2",users:w administrator:f
"c:\test_dir2",y_noda:f
---サンプルここまで---
2.acl.txtと同じフォルダに以下のバッチファイルを作成。
---バッチファイルここから---
@echo フォルダ作成とACLの設定を行います。
@echo よろしいですか?(y/n) ※yキー以外で実行を中止。
@echo off
Set /p ret=
If %ret%==y goto MD_AND_CACLS
goto END
:MD_AND_CACLS
For /F "eol=; tokens=1 delims=," %%i in (acl.txt) DO md %%i
For /F "eol=; tokens=1,2 delims=," %%i in (acl.txt) DO cacls %%i /e /g %%j
:END
---バッチファイルここまで---
バッチを実行するとacl.txtで指定したフォルダを作成し
ACLを設定します。
その他の説明が長くなりそうなんで一旦ここで切ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー Windows Server 2019 CALについて 3 2022/04/02 16:40
- サーバー windowsサーバの権限設定、フォルダ削除できないアカウントを作りたい 1 2023/04/07 09:58
- その他(クラウドサービス・オンラインストレージ) このような条件でデータを置いておけるサービス 3 2022/07/25 08:31
- Google Drive GoogleWorkspaceについての質問 1 2022/12/16 17:57
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) excel 別のフォルダから列コピーする方法 8 2022/12/17 16:24
- バックアップ パソコンHDDごとの暗号化(見られたくないファイルやフォルダ) 1 2022/05/21 22:08
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グループポリシーのスクリプト...
-
サーバ管理 フォルダ作成とア...
-
TortoiseSVN でユーザー設定
-
フォルダ、ファイルのアクセス...
-
グループポリシー(壁紙の設定)...
-
やってはいけないアクセス制限
-
FTPサーバについて詳しい方(ア...
-
ActiveDirectoryポリシーの設定が
-
【 TeraStation 】アクセス制限...
-
sshd_configのAllowUsers
-
【NAS】ファイルサーバーのフォ...
-
nslookupでIPが見つからない
-
IPv6の自宅サーバーが外から繋...
-
FTPサーバーの構築について
-
avastを入れるとネットに繋がら...
-
ActiveDirectoryのドメインにク...
-
ipod nano シャッフルを解除したい
-
DHCPの適切なリース期間を教え...
-
PMail Serverをイントラで使用...
-
ウイルスバスタ、インターネッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グループポリシーのスクリプト...
-
やってはいけないアクセス制限
-
ActiveDirectoryポリシーの設定が
-
TortoiseSVN でユーザー設定
-
フォルダ、ファイルのアクセス...
-
FTPサーバについて詳しい方(ア...
-
PROPFIND 405 Method Not Allow...
-
ボリュームに対するEveryoneの...
-
【 TeraStation 】アクセス制限...
-
【NAS】ファイルサーバーのフォ...
-
vbsなどを利用して、Administra...
-
グループポリシー(壁紙の設定)...
-
共有フォルダへ特定のユーザの...
-
USBを認識させない方法
-
apacheで、ベーシック認証の設...
-
TeraStationを適切に社外公開し...
-
FTPアカウント ユーザーパスワ...
-
クライアントに、ショートカッ...
-
ファイルサーバのアクセス権に...
-
Win Server 2003でログインでき...
おすすめ情報