スケジュールされたタスクとしてicaclsを使用してバッチを実行する


2

私はdocomentumストレージのすべてのツリーのパーミッションを修正するバッチファイルです。UNC操作ディレクトリにあります。

goSetPriv.bat

@echo off   
set /a _cnt=0
set _docdir="UNC_DCTM_PATH_TO_SCAN\*"
if (%1) NEQ () set _docdir="%*"
set _start=%date:~4,10% %time%

pushd UNC_OF_OP_DIR
FOR /D %%I in (%_docdir%) DO (
    icacls %%I /grant:r ssis_admin:R /inheritance:e > nul
    call :counter
)
......

counter:
......

goSetPrivをスケジュールされたタスク(Higest特権、Windows 7 Server 2008R2)として実行すると、プログラム:\ O:\ goSetPriv.bat

サブディレクトリ内のサブディレクトリとファイルのアクセス許可を変更せずに、すべての親ディレクトリですばやく実行されます。cmdから直接実行せずにバッチを実行すると(つまり、O:> goSetPriv.bat)、すべての親ディレクトリ内のすべてのサブフォルダーとファイルがゆっくりと変更されます。

問題はどこだ ?

ありがとうございました


Roey-この問題を完全に解決するのに役立つヒントとリソースを提供したかった。プログラムにcmd.exeを配置する必要はありません。スクリプトの完全なパスを入力し、それらの引数フィールドを使用し、オプションである場合でもパスの開始を使用する必要があります。ここで私が話していることの例については、i.imgur.com / EU2nHe1.pngを参照してください。また、一般タブから最高の権限で実行するようにしてください。
ポン引きジュースIT

さらに、ここでの私の答えを参照してください:superuser.com/questions/1214736 / ...そして、セクション名がWinSCP Batch Script Examplesである一番下のセクションを無視してください。スケジューラ。解決策などを得るのに役立つものを見つけたら教えてください。@シンボルを使用してタグを付け、その後に私の名前を続けてください。コメントが返されます。
ポン引きジュースIT

回答:


0

解決済み

pushd UNC_OF_OP_DIR
FOR /D %%I in (%_docdir%) DO (
    icacls %%I /grant:r ssis_admin:R /inheritance:e /T
)

何らかの理由で、このバッチを手動で実行すると、すべてのファイルとサブフォルダーがトラバースされます(ファイルを要求しません)。スケジュールされたタスクとして実行する場合、トラバーススイッチを暗黙的に追加する必要があります(プロンプトファイルを実行します)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.