簡體   English   中英

繞過與不受限制的執行策略

[英]Bypass vs Unrestricted execution policies

有關該主題的文檔僅提供以下內容:

不受限制。 加載所有配置文件並運行所有腳本。 如果您運行從 Internet 下載的未簽名腳本,則會在運行前提示您獲得許可。

旁路。 沒有任何內容被阻止,也沒有警告或提示。

對我來說,似乎兩人會接受任何劇本,但令我驚訝的是事實並非如此。 在某些情況下,繞過似乎會阻止執行。

那么,兩者有什么區別呢?

根據評論,這些執行策略的行為方式應該沒有特別的區別。 但是,當您在單次運行Powershell.exe期間臨時更改執行策略時使用Bypass ,如果您希望永久更改系統范圍之一的執行策略設置,則使用Unrestricted (MachinePolicy、UserPolicy、Process、CurrentUser、LocalMachine)。

一些例子:

  1. 您在一個系統上,您希望將執行策略更改為永久不受限制,以便任何用戶都可以毫無問題地運行任何 PowerShell 腳本。 你會運行:

     Set-ExecutionPolicy Unrestricted
  2. 您在一個執行策略阻止您的腳本的系統上,但您想通過 PowerShell 運行它並在運行時忽略執行策略。 你會運行:

     powershell.exe .\\yourscript.ps1 -executionpolicy bypass
  3. 您在執行策略阻止腳本執行的系統上運行 Powershell.exe,但您只想在您所在的交互式 powershell.exe 會話的生命周期內更改此策略。您將運行:

     Set-ExecutionPolicy Bypass -Scope Process

不同之處在於您在問題中給出的描述。 Unrestricted 讓你沉迷於所有計算機都運行 Windows,只使用 NTFS,並且只使用保存 ADS 的瀏覽器下載東西的錯覺。 事實上,如果您將 Windows 中的文件保存到服務器上未使用 NTFS 的 FAT 文件系統或網絡共享,或者以其他方式下載它,例如使用 git,powershell 認為它是本地創建的,無論它來自哪里。 Bypass 不會檢查其中的任何一項,只會運行所有內容。 Unrestricted 應該警告您它認為可能危險但無法可靠檢查或確定的事情。 使用您喜歡的任何一種。

PS> rm -path file.ps1 -stream zone.identifier
討論...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM