如何使用 PowerShell 解鎖文件

如果我們使用基於 Windows 的操作系統,您可能會遇到以下消息:
This file came from another computer and might be blocked to help protect this computer.
例如,當您嘗試打開從互聯網下載的文件時,可能會彈出警告。本文將討論如何使用 PowerShell 解鎖和允許從互聯網下載的文件。
使用 PowerShell 解鎖文件
在本文中,我們將使用 PowerShell 原生 cmdlet Unblock-File
,該命令在 PowerShell 3.0 中引入。
Unblock-File
cmdlet 讓我們打開從互聯網下載的文件。此外,它還解鎖從互聯網下載的 Windows PowerShell 腳本文件,以便我們可以運行它們,即使 Windows PowerShell 執行策略設置為 RemoteSigned
。
這些文件默認被阻止,以保護計算機不受不信任文件的影響。
基本語法:
Unblock-File [-Path*] <String[]> [-Confirm] [-WhatIf] [<CommonParameters>]
內部來說,Unblock-File
cmdlet 刪除 Zone.Identifier
替代數據流,其值為 3
,表示我們是從互聯網下載的。有關 Windows PowerShell 執行策略的更多信息,請參閱 about_Execution_Policies。
參數
以下是我們可以與 Unblock-File
cmdlet 一起使用的一些參數:
-
-Confirm
:此參數提示您在運行 cmdlet 之前進行確認。 -
-LiteralPath
:指定要解鎖的文件。與Path
不同,LiteralPath
參數的值使用原始輸入;沒有字符被解釋為通配符。如果路徑包含轉義字符,請將其用單引號括起來。單引號告訴 Windows PowerShell 不要將字符解釋為轉義序列。
-
-Path
:指定要解鎖的文件。支持通配符。 -
-WhatIf
:這會顯示如果運行 cmdlet 會發生什麼情況。該 cmdlet 不會被運行。
範例
我們可以通過指定被阻止文件的路徑來使用 Unblock-File
cmdlet:
Unblock-File -Path C:\Downloads\SampleFile.exe
主要是因為我們需要自動化流程或批量處理,所以我們使用 PowerShell。由於我們可以在管道中使用 Unblock-File
命令,因此在查詢文件夾中的所有內容後,我們可以在管道中使用該命令。
一旦查詢,我們將在 Unblock-File
命令中處理所有文件。
dir -Path "C:\Downloads" -Recurse | Unblock-File
此外,Unblock-File
cmdlet 僅在文件系統驅動器中工作。Unblock-File
cmdlet 執行與文件資源管理器中的屬性對話框中的“解鎖”按鈕相同的操作。
因此,如果您在未被阻止的文件上使用 Unblock-File
cmdlet,該命令不會影響未被阻止的文件,且該 cmdlet 不會生成錯誤。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn