2016-12-17 50 views
0
for /D /r "C:\Users" %%A in (*Folder*) do icacls "%%~fA" /T /C /grant(:r) "Everyone":(OI)(CI)(F) /inheritance:e >> %log% 2>&1 

使用批處理在機器上物理運行此代碼完美工作。找到正確的文件夾並應用權限,日誌文件顯示所有內容。它會爲每個用戶應用程序數據文件夾中的特定文件夾: -使用psexec循環訪問錯誤文件夾的權限

processed file: C:\Users\Administrator\AppData\Local\Folder 

但是,如果我使用PSEXEC申請的權限遠程那麼它會精神,並通過一個應用程序數據文件夾試圖循環爲每個用戶數百萬次沒有任何機構可以訪問。如前所述,它甚至不嘗試並最終失敗。

processed file: C:\Users\Administrator\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\ 

怎麼了,謝謝。

PSEXEC代碼: -

@echo off 

for /f "usebackq tokens=*" %%i in ("%~dp0pxhosts.txt") do (
xcopy /y %~dp0permsnet.bat "\\%%i\C$\Temp" 
"%~dp0psexec.exe" \\%%i -accepteula -d "\\%%i\C$\Temp\permsnet.bat" 
) 
pause 
+0

應用數據是不是真正的文件夾,但硬鏈接到應用程序數據。 AppData中有一個到應用程序數據的鏈接。通常,應用程序數據通常具有拒絕讀取數據的權限,因此程序不會在此循環中被捕獲。舊程序可以讀取/寫入應用程序數據文件,但無法讀取它。 –

+0

謝謝。那麼可以試着用psexec去做。在機器上看起來很奇怪,但沒有使用psexec。如果icacls直接通過網絡運行到主機名,我應該能夠湊齊一些東西。 – Tika9o9

+0

我懷疑這是您的命令是刪除應用程序數據的拒絕權限。您的'icacls'命令和'For' cmd都會通過樹進行遞歸,因此較低級別的文件夾具有多次設置的權限。您的命令刪除大多數安全性 –

回答

0

編輯回答通過將-s發現切換過程表現爲正常。 @Noodles 用正確的信息回答爲別人這個問題

@echo off 

for /f "usebackq tokens=*" %%i in ("%~dp0pxhosts.txt") do (
xcopy /y %~dp0permsnet.bat "\\%%i\C$\Temp" 
"%~dp0psexec.exe" \\%%i -accepteula -d -s "\\%%i\C$\Temp\permsnet.bat" 
) 
pause