none
移动硬盘里文件权限设置问题 RRS feed

  • 问题

  • 不知怎么搞的,我的移动硬盘里的文件没有权限不能打开,于是我使用takeown命令,这样虽然能打开里面的文件了,但每打开一个文件或文件夹都会提示:“单击获得永久权限”而且每个文件和文件夹上面都有把小锁。我想通过安全选项卡设置权限,但使用“使用可从此对象继承的权限替换所有子对象权限”时,系统又提示下面的子文件拒绝访问。本人彻底崩溃了,1T的文件如果打开每个都要单击获得永久权限,那要弄到什么时候啊。求各位大神拯救我!
    2011年6月7日 8:07

答案

  • 請執行如下步驟:
      
     1.  以管理員身份運行命令提示符并執行命令
      
     psexec -s -i -d -u 管理員賬戶 cmd
      
     2. 在提權到 SYSTEM 權限的命令提示符執行如下命令
      
     @echo reset
     cacls 移動硬盤盤符:\ /s:"D:AI(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;AU)(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)"
      
     比如:
      
     @echo reset
     cacls H:\ /s:"D:AI(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;AU)(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)"
      
     注:
     @echo reset 命令可以防止下面那條未經交互式確認 
     此命令較長, 你可以先復制修改為實際盤符後的該命令, 然後在提權到 SYSTEM 賬戶的命令提示符窗體按 Alt+Space, 按 E 鍵, 再按 P 鍵, 如果該命令在沒有 Y/N 確認後執行完成, 則按一下  Up 方向鍵, 重新調出該命令然後執行. 執行完該命令後, 應該能夠完全重置該移動硬盤的文件(夾). 需要再次強調的是該命令僅是能夠讓用戶可以訪問裏面存儲的文件, 至于權限設置是否滿足關聯程序的需求, 不在考慮之列. 比如下面要提到的回收站文件夾.
      
     關于修復移動硬盤的回收站文件夾權限, 這個比較麻煩. 如果之前文件夾沒有暫存比較重要的文件, 建議不進行修復.
      
     如果要修復可以嘗試如下方法:
      
     REM 因為 cacls 不支持安靜模式, 所以需要人工進行交互式確認.
      REM 為了防止可能的在沒有確認的情況下跳過 cacls 命令, 故加入 pause 命令
     
      @echo start
      cacls 移動硬盤盤符:\$recycle.bin /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;NP;0x1201ad;;;BU)"  
      pause
      for /f "usebackq delims==" %d in (`dir 移動硬盤盤符:\$recycle.bin /ad/b`) do echo execute && pause && cacls 移動硬盤盤符:\$recycle.bin\%d /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;%d)" && icacls 移動硬盤盤符:\$recycle.bin\%d /t /grant *%d:(oi)(ci)(f) && icacls 移動硬盤盤符:\$recycle.bin\%d /t /setowner *%d &&  attrib +s +h 移動硬盤盤符:\$recycle.bin\%d\desktop.ini && icacls 移動硬盤盤符:\$recycle.bin\%d /t /setintegritylevel Low
       attrib +s +h 移動硬盤盤符:\$recycle.bin
      icacls 移動硬盤盤符:\$recycle.bin /setowner administrators
      
     比如:
      REM 因為 cacls 不支持安靜模式, 所以需要人工進行交互式確認.
      REM 為了防止可能的在沒有確認的情況下跳過 cacls 命令, 故加入 pause 命令

      @echo start
      cacls H:\$recycle.bin /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;NP;0x1201ad;;;BU)"  
      pause
      for /f "usebackq delims==" %d in (`dir H:\$recycle.bin /ad/b`) do echo execute && pause && cacls H:\$recycle.bin\%d /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;%d)" && icacls H:\$recycle.bin\%d /t /grant *%d:(oi)(ci)(f) && icacls H:\$recycle.bin\%d /t /setowner *%d &&  attrib +s +h H:\$recycle.bin\%d\desktop.ini && icacls H:\$recycle.bin\%d /t /setintegritylevel Low
       attrib +s +h H:\$recycle.bin
      icacls H:\$recycle.bin /setowner administrators
     
    REM 經過在虛擬硬盤的測試, 此方法可以修復因權限被錯誤設置而導致的回收站損壞問題.

    為了便于執行, 我將代碼略為改寫, 請將下面代碼保存為批處理文件(擴展名 .bat), 然後在經過 psexec 提權到 SYSTEM 賬戶後執行該批處理文件, 已進行恢復.

    @echo off
    REM 在執行之前, 請用實際驅動器盤符, 替換 H:\
    REM 第一條命令用于重置整個驅動器的文件(夾)的權限, 如果是只重置該驅動器回收站文件夾的權限請不要執行此命令
    cacls H:\ /s:"D:AI(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;AU)(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)"
    REM 下面為重置回收站文件夾的權限, 執行過程中需要若干次交互式確認(按 Y 鍵), 具體次數視回收站中用戶子文件夾數目而定.
    cacls H:\$recycle.bin /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;NP;0x1201ad;;;BU)"
    for /f "usebackq delims==" %%d in (`dir H:\$recycle.bin /ad/b`) do cacls H:\$recycle.bin\%%d /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;%%d)" && icacls H:\$recycle.bin\%%d /t /grant *%%d:(oi)(ci)(f) && icacls H:\$recycle.bin\%%d /t /setowner *%%d && attrib +s +h H:\$recycle.bin\%%d\desktop.ini && icacls H:\$recycle.bin\%%d /t /setintegritylevel Low
    attrib +s +h H:\$recycle.bin
    icacls H:\$recycle.bin /setowner administrators


     


    Folding@Home


    2011年6月11日 11:59

全部回复

  • 在使用 takeown 命令後, 請在通過 icacls 命令重新設置權限.

    試試直接以管理員身份運行命令提示符并執行命令

    takeown /f 要重新設置權限的目錄路徑 /a /r /d y
    icacls 要重新設置權限的目錄路徑 /t /reset
    icacls 要重新設,置權限的目錄路徑 /t /setowner 所有者帳戶名

    注: 此方法只適用於單純的數據文件, 如果數據文件屬於軟件的一部分, 則需要對特定文件(夾)重設權限.
    Folding@Home
    • 已建议为答案 zhen tan 2011年6月9日 2:34
    2011年6月7日 12:50
  • 这些带锁的数据目前显示的所有者是什么用户?如果不是位于根目录,有没有设置从父项继承权限?
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "天堂之吻"
     
    不知怎么搞的,我的移动硬盘里的文件没有权限不能打开,于是我使用takeown命令,这样虽然能打开里面的文件了,但每打开一个文件或文件夹都会提示:“单击获得永久权限”
     
     
    2011年6月7日 12:56
  • 如果還是遇到 "訪問被拒絕" 之類的錯誤, 那麼可以通過 psexec -s -i -d -u 管理員賬戶 cmd 以 SYSTEM 賬戶來重設權限, 另外對於上面的命令, 你也可以用 icacls /t /grant 制定用戶(組)來設置權限.

    PsExec 下載地址:

    http://technet.microsoft.com/en-us/sysinternals/bb897553


    Folding@Home
    • 已建议为答案 zhen tan 2011年6月9日 2:34
    2011年6月7日 12:59
  •  

    我执行第2步(icacls 要重新設置權限的目錄路徑 /t /reset)时出现错误,直接进行第3步,解决了部分问题:

    1.我点击移动硬盘盘符查看属性时出现“回收站损坏,是否删除”的提示,请问大神这怎么解决?
    2.移动硬盘一级文件夹权限设置成功,但2,3级目录下的文件夹则设置失败,请问该如何使用icacls命令设置2,3级文件夹的权限。

    谢谢帮忙解答!

    2011年6月11日 8:56
  • 請執行如下步驟:
      
     1.  以管理員身份運行命令提示符并執行命令
      
     psexec -s -i -d -u 管理員賬戶 cmd
      
     2. 在提權到 SYSTEM 權限的命令提示符執行如下命令
      
     @echo reset
     cacls 移動硬盤盤符:\ /s:"D:AI(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;AU)(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)"
      
     比如:
      
     @echo reset
     cacls H:\ /s:"D:AI(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;AU)(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)"
      
     注:
     @echo reset 命令可以防止下面那條未經交互式確認 
     此命令較長, 你可以先復制修改為實際盤符後的該命令, 然後在提權到 SYSTEM 賬戶的命令提示符窗體按 Alt+Space, 按 E 鍵, 再按 P 鍵, 如果該命令在沒有 Y/N 確認後執行完成, 則按一下  Up 方向鍵, 重新調出該命令然後執行. 執行完該命令後, 應該能夠完全重置該移動硬盤的文件(夾). 需要再次強調的是該命令僅是能夠讓用戶可以訪問裏面存儲的文件, 至于權限設置是否滿足關聯程序的需求, 不在考慮之列. 比如下面要提到的回收站文件夾.
      
     關于修復移動硬盤的回收站文件夾權限, 這個比較麻煩. 如果之前文件夾沒有暫存比較重要的文件, 建議不進行修復.
      
     如果要修復可以嘗試如下方法:
      
     REM 因為 cacls 不支持安靜模式, 所以需要人工進行交互式確認.
      REM 為了防止可能的在沒有確認的情況下跳過 cacls 命令, 故加入 pause 命令
     
      @echo start
      cacls 移動硬盤盤符:\$recycle.bin /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;NP;0x1201ad;;;BU)"  
      pause
      for /f "usebackq delims==" %d in (`dir 移動硬盤盤符:\$recycle.bin /ad/b`) do echo execute && pause && cacls 移動硬盤盤符:\$recycle.bin\%d /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;%d)" && icacls 移動硬盤盤符:\$recycle.bin\%d /t /grant *%d:(oi)(ci)(f) && icacls 移動硬盤盤符:\$recycle.bin\%d /t /setowner *%d &&  attrib +s +h 移動硬盤盤符:\$recycle.bin\%d\desktop.ini && icacls 移動硬盤盤符:\$recycle.bin\%d /t /setintegritylevel Low
       attrib +s +h 移動硬盤盤符:\$recycle.bin
      icacls 移動硬盤盤符:\$recycle.bin /setowner administrators
      
     比如:
      REM 因為 cacls 不支持安靜模式, 所以需要人工進行交互式確認.
      REM 為了防止可能的在沒有確認的情況下跳過 cacls 命令, 故加入 pause 命令

      @echo start
      cacls H:\$recycle.bin /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;NP;0x1201ad;;;BU)"  
      pause
      for /f "usebackq delims==" %d in (`dir H:\$recycle.bin /ad/b`) do echo execute && pause && cacls H:\$recycle.bin\%d /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;%d)" && icacls H:\$recycle.bin\%d /t /grant *%d:(oi)(ci)(f) && icacls H:\$recycle.bin\%d /t /setowner *%d &&  attrib +s +h H:\$recycle.bin\%d\desktop.ini && icacls H:\$recycle.bin\%d /t /setintegritylevel Low
       attrib +s +h H:\$recycle.bin
      icacls H:\$recycle.bin /setowner administrators
     
    REM 經過在虛擬硬盤的測試, 此方法可以修復因權限被錯誤設置而導致的回收站損壞問題.

    為了便于執行, 我將代碼略為改寫, 請將下面代碼保存為批處理文件(擴展名 .bat), 然後在經過 psexec 提權到 SYSTEM 賬戶後執行該批處理文件, 已進行恢復.

    @echo off
    REM 在執行之前, 請用實際驅動器盤符, 替換 H:\
    REM 第一條命令用于重置整個驅動器的文件(夾)的權限, 如果是只重置該驅動器回收站文件夾的權限請不要執行此命令
    cacls H:\ /s:"D:AI(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;AU)(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)"
    REM 下面為重置回收站文件夾的權限, 執行過程中需要若干次交互式確認(按 Y 鍵), 具體次數視回收站中用戶子文件夾數目而定.
    cacls H:\$recycle.bin /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;NP;0x1201ad;;;BU)"
    for /f "usebackq delims==" %%d in (`dir H:\$recycle.bin /ad/b`) do cacls H:\$recycle.bin\%%d /s:"D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;%%d)" && icacls H:\$recycle.bin\%%d /t /grant *%%d:(oi)(ci)(f) && icacls H:\$recycle.bin\%%d /t /setowner *%%d && attrib +s +h H:\$recycle.bin\%%d\desktop.ini && icacls H:\$recycle.bin\%%d /t /setintegritylevel Low
    attrib +s +h H:\$recycle.bin
    icacls H:\$recycle.bin /setowner administrators


     


    Folding@Home


    2011年6月11日 11:59
  • 如果对移动硬盘的目录安全没有特别要求,建议通过目录安全配置重设硬盘安全属性。虽然要耗费一些时间,但是一劳永逸!
    如果您的问题得到解答,请进行标注。http://goxia.maytide.net
    2011年6月11日 14:08
    版主
  • 關於 "REM 因為 cacls 不支持安靜模式, 所以需要人工進行交互式確認." 的更正說明:

    你可以在在一個指定目錄, 比如: C:\Windows 新建一個 yes 文件, 該文件第一行寫入 y 然後保存

    然後在想希望能夠自動確認的 cacls 命令末尾添加 < c:\windows\yes

    這樣就可以使 cacls 命令自動確認.

    關於該步驟的說明, 也可參見下面這個 Microsoft 支持

    How to Use CACLS.EXE in a Batch File
    http://support.microsoft.com/kb/135268


    Folding@Home
    2012年1月11日 3:18
  • 请问,我把u盘权限设成这样了 cacls h: /d everyone

    然后想恢复的时候拒绝访问,用takeown也拒绝访问了,怎么办?

    2013年9月24日 13:25
  • 按照原來我所做到回复:

     1.  以管理員身份運行命令提示符并執行命令
      
     psexec -s -i -d -u 管理員賬戶 cmd
      
     2. 在提權到 SYSTEM 權限的命令提示符執行如下命令
      
     @echo reset
     cacls 移動硬盤盤符:\ /s:"D:AI(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;AU)(A;OICIIO;SDGXGWGR;;;AU)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)"

    針對你這種情況, 是可以恢復的.


    Folding@Home

    2013年9月24日 14:57