前往
大廳
主題

分享~!Windows 7也可不須bat批次檔,用滑鼠右鍵選單快速解除封鎖!

Jack | 2021-08-28 00:17:31 | 巴幣 2 | 人氣 852

【目錄】

一、提要
二、困境
三、思索
四、結論與解法
五、後記



【一、提要】


我曾撰兩篇文說明,微軟Windows為安全性,經常加上「NTFS Data Streams(備用資料流)」至網路下載之檔案,以致每次開啟或執行該檔案,都顯示「確認是否執行」對話框,相當麻煩:Windows與NTFS檔案系統封鎖檔案,下載此bat檔即可批次解除封鎖!

但上述解法缺點為:每次解鎖皆須複製一份streams.exe和bat檔,若複製後欲保留下次使用,不刪除又造成電腦中一大堆streams.exe和bat檔!

若作業系統為Windows 10,則可利用「PowerShell」和滑鼠右鍵選單,以快速解鎖:

不須到處複製streams.exe和bat檔,簡單又迅捷!
於是我想,Windows 7辦不辦得到呢!?若Windows 7能以同樣方法解鎖,豈不善哉!!!!



【二、困境】


我曾引用「Windows 10 Forums的這篇文章」,該文作者以reg檔新增滑鼠右鍵選項,聯合PowerShell,讓使用者得以快速解鎖檔案與資料夾!

我節錄他撰寫的reg檔,解釋其作法:
[HKEY_CLASSES_ROOT\*\shell\unblock] → 新增右鍵選項
"MUIVerb"="Unblock" → 命名選項為「Unblock」
"Extended"=- → 右端「-」號為不須按「Shift」鍵即顯示此選項
若改為「"Extended"=""」則須按「Shift」鍵才顯示此選項

[HKEY_CLASSES_ROOT\*\shell\unblock\command]
@="powershell.exe Unblock-File -LiteralPath '%L'" → 此行為關鍵,即呼叫「powershell.exe」解鎖檔案
「Unblock-File」即解鎖檔案指令,後方「-LiteralPath '%L'」為檔案路徑

--------------------------------------------------

我嘗試在Windows 7新增他寫的reg檔,卻發現無法使用,按「Unblock」後毫無反應,檔案也沒解鎖。
我猜測由於Windows 7的PowerShell版本為3.0,而Windows 10的PowerShell為5.1版,於是更新Windows 7的PowerShell至5.1版,但仍無法順利解鎖。



【三、思索】


諸如小畫家(mspaint.exe)、記事本(notepad.exe)、小算盤(calc.exe)等,為何在命令提示字元cmd中,不須輸入完整路徑即可執行?

若搜尋之,可發現它們位於「C:\Windows\System32」和「C:\Windows\SysWOW64」兩處。



【四、結論與解法】


意即:複製「streams.exe」至「C:\Windows\System32」和「C:\Windows\SysWOW64」兩處,即可不須輸入完整路徑而執行之!

解法:
  1. 下載「Streams」並解壓縮。
    streams.exe:32位元版
    streams64.exe:64位元版
    streams64a.exe:應為AMD處理器版,Intel處理器無法執行
  2. 以Intel處理器Windows 7 64-bit為例,複製兩份streams64.exe,並置於以下二資料夾內:
    C:\Windows\System32
    C:\Windows\SysWOW64

  3. 複製完畢即可令命令提示字元cmd不須輸入完整路徑即可執行streams:

--------------------------------------------------

然後,以reg檔新增「解除封鎖」選項至滑鼠右鍵選單,即可令Windows 7也能快速解鎖!

以下是「不須按住Shift鍵」的版本:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\unblock]
"MUIVerb"="解除封鎖此檔案"
"Extended"=-

[HKEY_CLASSES_ROOT\*\shell\unblock\command]
@="streams64 -d \"%1\""



[HKEY_CLASSES_ROOT\Directory\shell\unblock]
"MUIVerb"="解除封鎖此資料夾與子資料夾之全部檔案"
"Extended"=-

[HKEY_CLASSES_ROOT\Directory\shell\unblock\command]
@="streams64 -d -s \"%1\""

--------------------------------------------------

以下是「須按住Shift鍵」的版本:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\unblock]
"MUIVerb"="解除封鎖此檔案"
"Extended"=""

[HKEY_CLASSES_ROOT\*\shell\unblock\command]
@="streams64 -d \"%1\""



[HKEY_CLASSES_ROOT\Directory\shell\unblock]
"MUIVerb"="解除封鎖此資料夾與子資料夾之全部檔案"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\shell\unblock\command]
@="streams64 -d -s \"%1\""

--------------------------------------------------

複製上述藍或紅字,貼上至txt文字檔,改副檔名為reg,執行並新增,即可令Windows 7也能快速解鎖!



【五、後記】


上述方法有兩缺點。
  1. 無法「僅解鎖單一資料夾內之檔案」,必包含指定資料夾與子資料夾內之全數檔案,因為streams只有「單一檔案」和「資料夾與子資料夾」兩選項。
    Windows 10聯合PowerShell則可「僅解鎖單一資料夾內之檔案」。
  2. 若解鎖reg檔,會跳出「確認是否執行」對話框,須按確定才可解鎖。
    若對「網際網路捷徑url檔」按滑鼠右鍵,則無「解鎖」選項,但這點連Windows 10聯合PowerShell也一樣。
    解法是:先放置url檔在某一資料夾內,再對該資料夾選解除封鎖。

我在Windows 7曾以各種方法修改此命令
@="powershell.exe Unblock-File -LiteralPath '%L'"
但仍無法順利解鎖。
若有高手知悉,望祈不吝賜教!

創作回應

追蹤 創作集

作者相關創作

更多創作