Skip to content

Windows 10 硬碟或分隔磁區存取被拒

Windows 10 硬碟或分隔磁區存取被拒

系統從新安裝 windows 10 後,D 槽的圖樣看起來不正常,只顯示 NTFS,點選後出現位置無法使用,無法存取 D:\,存取被拒的訊息。

解決方法1:添加目前使用者的權限

1. 開啟內容 – 安全性,顯示要有讀取權限,才能檢視物件的內容,所以按〘進階〙繼續。

2. 顯示無法顯示目前的擁有者,點選〘變更〙,進入進階安全性設定


3. 在輸入物件名稱裡輸入當前使用著名稱,然後按檢查名稱。或輸入Administrators 讓管理者群組成為擁有者。

4. 系統會自動完整使用者名稱,按〘確定〙繼續


5. 在這個視窗,先將擁有者下面的〘取代子容器與物件的擁有者〙選項打勾,最後下面〘以可從此物件繼承的權限項目取代所有字物件的權限項目〙打勾,然後點擊〘新增〙來添加本身使用著權限。

6. 點擊〘選擇一個主體〙,跟之前一樣將當前使用者加進來。套用到這個資料夾,子資料夾及檔案,基本權限〘完全控制〙打勾,〘僅套用這些權限到此容器中的物件及(或)容器〙不要打勾,這之後在解釋,然後〘確定〙。

7. 接著點選〘套用〙,可能會出現 Windows安全性訊息,是否取代權限,點〘是〙,接著讓系統跑完流程。

8. 之後會在跑出個Windows安全性訊息的確定視窗,一樣選是就行。

9. 當系統將擁有權與權限都設定完畢後,會在跳出個 Windows 安全性視窗,告知要從開硬碟才能存取。點選確定後,關閉其他視窗,這時去查看D槽應該就可以正常讀取了。

其他注意

  • 若只有修改擁有者,而沒有在步驟 5加入自己的使用者權限,就算當前的使用帳號本身是系統管理員,還是會很神奇的無法存取硬碟,所以給予權限相對來說是比較重要的。

開啟內容 – 安全性,會顯示當前的使用者或群組

這時還是要按〘進階〙,然後為當前使用者添加權限,從步驟 5 做一次。

  • 若步驟 6裡,〘僅套用這些權限到此容器中的物件及(或)容器〙有打勾,點選每個檔案都要確認一次永久存取的權限

解決方法2:使用 takwown 與 icacls 指令

使用takeown 指令更改擁有權

終端內輸入 takeown /? 會顯示範例

takeown 實際應用

takeown /f D: /R /A /D Y

如果要把擁有者給當前的使用者,就把/A拿掉。

takeown 語法

takeown [/s <computer> [/u [<domain>\]<username> [/p [<password>]]]] /f <filename> [/a] [/r [/d {Y|N}]]

takeown 參數

參數
參數 描述
/s <computer> 指定遠端電腦的名稱或 IP 位址 (不要使用反斜線) 。 預設值為本機電腦。 此參數會套用至命令中指定的所有檔案和資料夾。
u [<domain>\]<username> 使用指定之使用者帳戶的許可權來執行腳本。 預設值為 [系統許可權]。
/p [<[password>] 指定 /u 參數中指定之使用者帳戶的密碼。
/f <filename> 指定檔案名或目錄名稱模式。 指定模式時,您可以使用萬用字元 * 。 您也可以使用語法 <sharename>\<filename>
/a 提供系統管理員群組的擁有權,而不是目前的使用者。 如果您未指定此選項,則會將檔案擁有權提供給目前登入電腦的使用者。
/r 在指定目錄和子目錄中的所有檔案上執行遞迴作業。
/d {Y | N} 抑制當目前的使用者沒有指定目錄的 [ 列出資料夾 ] 許可權,而改為使用指定的預設值時,所顯示的確認提示。 適用于 /d 選項的有效值為:

  • Y -取得目錄的擁有權。
  • N -略過目錄。注意
    您必須搭配使用此選項與 /r 選項。
/? 在命令提示字元顯示說明。

takeown 備註

  •  takeown 命令不支援使用(*)混合模式 。
  • 使用 takeown 刪除鎖定之後,您可能必須使用 Windows 檔案總管為自己授與您自己檔案和目錄的完整許可權,才能加以刪除。

takeown 指令資料來源:微軟網頁對 takeown 指令的解說

使用 icacls指令更改或添加權限

icacls 實際應用

終端內輸入 icacls 會顯示範例

使用 icacls 更改擁有者(此選項不會強制更改,需要強制更改請使用takeown)

icacls D: /setowner “Administrators” /T /C

使用 icacls 指令添加權限 (運行速度很慢,不建議批量運行)

icacls D: /grant Administrators:F /T

icacls 語法

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

icacls 參數

DACL:判別存取控制清單

參數 描述
<filename> 指定要顯示 Dacl 的檔案。
<directory> 指定要顯示 Dacl 的目錄。
/t 在目前目錄及其子目錄中的所有指定檔案上執行作業。
/c 即使有任何檔案錯誤,仍繼續操作。 仍會顯示錯誤訊息。
/l 在符號連結(而不是其目的地)上執行運算。
/q 抑制成功訊息。
[/save <ACLfile> 一起/c/l[/q]] 將所有相符檔案的 Dacl 儲存到 ACLfile 中,以供稍後搭配 /restore 使用。
[/setowner <username> 一起/c/l[/q]] 將所有相符檔案的擁有者變更為指定的使用者。
[/findsid <sid> 一起/c/l[/q]] 尋找包含 DACL 的所有相符檔案,這些檔案會明確提及指定的安全識別碼 (SID) 。
[/verify [/t] [/c] [/l] [/q]] 尋找具有不標準 Acl 的所有檔案,或長度不一致的檔案 (存取控制專案) 計數。
[/reset [/t] [/c] [/l] [/q]] 以預設繼承的 Acl 取代所有相符檔案的 Acl。
[/grant [: r] <sid> : […]] 授與指定的使用者存取權限。 許可權會取代先前授與的明確許可權。若未新增 : r,表示會將許可權新增至任何先前授與的明確許可權。
[/deny <sid> : […]] 明確拒絕指定的使用者存取權限。 系統會為指定的許可權新增明確的 deny ACE,並移除任何明確授與中的相同許可權。
[/remove [:g | :d]] <sid>[…]一起/c/l一起 從 DACL 中移除所有出現的指定 SID。 此命令也可以使用:

  • : g -移除指定之 SID 的所有已授與許可權。
  • :d -移除指定之 SID 的所有已拒絕許可權。
[/setintegritylevel [ (CI) (OI) ] <Level>:<Policy>[…]] 明確地將完整性 ACE 新增至所有相符的檔案。 層級可以指定為:

  • l -低
  • m-中型
  • h -高

完整性 ACE 的繼承選項可以在層級之前,而且只會套用至目錄。

[/substitute <sidold> <sidnew> […]] 以新的 SID 取代現有的 SID (sidold) (sidnew) 。 需要搭配參數使用 <directory>
/restore <ACLfile> [/c] [/l] [/q] 將預存的 Dacl 套用 <ACLfile> 至指定目錄中的檔案。 需要搭配參數使用 <directory>
/inheritancelevel:[e | d | r] 設定繼承層級,它可以是:

  • e -啟用繼承
  • d -停用繼承並複製 ace
  • r -移除所有繼承的 ace

icacls 備註

  • Sid 可以是數位或易記名稱格式。 如果您使用數值格式,請將萬用字元 * 貼到 SID 的開頭。
  • 此命令會保留 ACE 專案的標準順序,如下所示:
    • 明確拒絕
    • 明確授與
    • 繼承拒絕
    • 繼承的授與
  • <perm> 選項是一種許可權遮罩,可使用下列其中一種形式來指定:
    • 一系列的簡單許可權:
      • F -完整存取
      • M-修改存取權
      • RX -讀取和執行存取
      • R -唯讀存取
      • W -僅限寫入存取
    • 以括弧括住的特定許可權清單(以逗號分隔):
      • D -刪除
      • RC -讀取控制
      • WDAC -寫入 DAC
      • WO -寫入擁有者
      • S -同步處理
      • 作為 存取系統安全性
      • MA -允許的最大值
      • GR -泛型讀取
      • GW -一般寫入
      • GE -泛型執行
      • GA -一般全部
      • RD -讀取資料/清單目錄
      • WD -Write data/add file
      • AD -附加資料/新增子目錄
      • 反應 -讀取擴充屬性
      • WEA -寫入擴充屬性
      • X -執行/遍歷
      • DC -刪除子系
      • RA -讀取屬性
      • WA -寫入屬性
    • 繼承許可權可以在其中一個 <perm> 表單上,而且只會套用至目錄:
      • (OI) -物件繼承
      • (CI) -容器繼承
      • (IO) -僅限繼承
      • (NP) -不要傳播繼承

icacls 指令資料來源:微軟網頁對 icacls 指令的解說

icacls查看權限拒絕存取

用icacls查看權限會發生拒絕存取的情況,這時要去微軟官網下載 Pstools,解壓縮。

用系統管理員執行終端 cmd,移至 Pstools 的資料夾後,執行

psexec -i -s cmd.exe

或64位元的

psexec64 -i -s cmd.exe

這時會另外出現一個終端視窗,在這個視窗下可以查看剛剛沒有存取權限的檔案。

資料來源:How to reset Icacls access denied permissions back to Admin.

個人經驗

方法1行得通就不需要用方法2,當時用方法1一直沒成功,才用指令玩了一段時間。方法2適合拿來修改個別檔案,用在資料夾上比較沒問題,但很多資料夾裡個別檔案在執行命令時都會存取被拒。後來發現在方法1只改擁有者沒有用,還要添加權限,硬碟就能讀取了。

windows 裡沒有權限能刪除的檔案,用 Linux Live USB 就能刪除了。

其他參考資料,這網頁有其他小技巧,只是沒用上問題就解決了,留作紀錄:Access is denied Windows 10 error [FIX]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料