The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 Windows 8 時,如何進入沒有相同 SID 權限的目錄

前天第一手拿到 Windows 8 作業系統,便即刻將我的筆記型電腦重裝為 Windows 8 RTM 版本,在重裝之前照慣例會先將原本硬碟做一次完整影像備份 (你可以用 Disk2vhd 或其他影像備份軟體),當重裝完成正在復原資料與設定時卻發現缺漏了一些檔案,所以就把原先備份的檔案叫出來,並掛載為一顆磁碟機,想說直接複製檔案出來即可,但悲劇就這樣發生,欲知詳情請繼續看下去…

首先,我先把原先的硬碟備份掛載成為 Windows 8 下的其中一個磁碟機 ( T: ),並試圖進入特定目錄,想複製檔案出來,但卻完全無法進入目錄 (如下圖示)

一般來說,當我們按下【繼續】按鈕之後,Windows 8 會自動將目前的使用者執行權限提升為【系統管理員】(也就是以 BUILTIN\Administrators 的權限繼續操作),不過這次當我按下【繼續】按鈕後竟然被直接告知【您已被拒絕,無權存取這個資料夾】,真是晴天霹靂!

備註: 我認為應該是兩台電腦之間的 SID 不一致,外加磁碟機是唯讀的,所以才無法存取資料夾!

接著我試著想修改這個資料夾的安全性設定,先變更目錄與檔案的擁有者,再變更目錄與檔案的權限,基本上應該是可以存取的,可惜我掛載的這個磁碟卻是【唯讀】的,因此完全無法修正權限,也代表著我無緣取得我的備份檔案的嗎?!當然不是,我其實可以多找一顆硬碟,將目前的備份檔還原回去,用那顆硬碟開機,然後把檔案複製出來,再複製到這台新的 Windows 8 裡。不過光想到這些麻煩的步驟就覺得做完後心情不會太好,因此勢必要找出更偷懶的作法!

 

還好我前陣子有花點時間研究過 Windows 8 的使用者帳戶控制(UAC),知道他跟 Windows 7 有很大的不同,所以後來我用該文章裡的變身技巧,先將自己變身為【系統管理員權限】使用檔案總管,方法如下:

  1. 透過【以系統管理員身分執行】開啟 命令提示字元 視窗
    按下快速鍵 Win + X 再按下 A 即可開啟
  2. 執行以下指令,將現有檔案總管程序全部強迫關閉
    taskkill /IM explorer.exe /F
  3. 再執行以下指令,將檔案總管重新啟動(此時會以以系統管理員身分啟動)
    start explorer.exe

 

如此一來就能在各目錄間遊走無誤了!

最後補上我後來調整過的批次檔,這樣就不會在沒有【以系統管理員身分執行】的情況下執行程式!

@ECHO OFF

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

IF %ERRORLEVEL% EQU 0 (
  TASKKILL /IM explorer.exe /F
  START explorer
  EXIT
) ELSE (
   echo.
   echo 請使用【以系統管理員身分執行】啟動此批次檔
   echo.
   PAUSE
   EXIT /B 1
)

 

相關連結