簡體   English   中英

解鎖文件-為什么我需要打開一個新會話?

[英]Unblock-File - Why do I need to open a new session?

我正在使用Carbon的Powershell模塊進行某些工作。 當我將文件夾移動到另一台計算機上時,其中的腳本會被標記並阻止執行,直到我取消阻止為止(這很好)。 當我執行以下命令時:

gci .\Carbon -Recurse | Unblock-File

在創建新的Powershell會話之前,我仍然無法導入模塊。 此時,文件肯定已被解除阻止,但是在創建新會話之前,我仍然會收到相同的錯誤。

我已經閱讀了一些Technet文章,它們指出您只需要關閉並打開Powershell即可解決該問題,但是沒有理由說明為什么需要這樣做。

這實際上可以回溯到PowerShell所基於的.Net框架。 您實際上是在將新程序集加載到流程中。 被阻止的文件被認為是“遠程”文件,默認情況下,.net未設置為加載它們。

運行時如何查找程序集

  1. 檢查程序集名稱之前是否已綁定 ,如果是,則使用先前加載的程序集。

事實是,這一步也緩存了“負”加載(至少以我的經驗,至少是嘗試加載其他程序集)。 .Net沒有一種方法可以在程序集加載后將其卸載,因此您除了重新啟動進程外別無選擇。

暫無
暫無

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

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