無法載入檔案*.ps1,因為在此係統上禁止執行指令碼。有關詳細資訊,請參閱
官網解釋
長說明
PowerShell 執行策略是一項安全功能,用於控制 PowerShell 載入配置檔案和執行指令碼的條件。 此功能有助於防止惡意指令碼的執行。
在Windows計算機上,你可以為本地計算機、當前使用者或特定會話設定執行策略。 還可使用組策略設定為計算機和使用者設定執行策略。
本地計算機和當前使用者的執行策略儲存在登錄檔中。 無需在 PowerShell 配置檔案中設定執行策略。 特定會話的執行策略僅儲存在記憶體中,在關閉會話時將丟失。
執行策略不是限制使用者操作的安全系統。 例如,當用戶無法執行指令碼時,可以通過在命令列中鍵入指令碼內容來輕鬆繞過策略。 相反,執行策略可幫助使用者設定基本規則,並防止使用者無意中違反這些規則。
在非Windows計算機上,預設執行策略為 Unrestricted 且無法更改。 cmdlet Set-ExecutionPolicy
可用,但 PowerShell 顯示一條控制檯訊息,指出它不受支援。 雖然 Get-ExecutionPolicy
在 Unrestricted 非 Windows Bypass 平臺上返回 ,但行為確實匹配,因為這些平臺不實現Windows 安全中心區域。
PowerShell 執行策略
這些策略僅在其他平臺上Windows實施。 PowerShell 執行策略如下所示:
AllSigned
- 指令碼可以執行。
- 要求所有指令碼和配置檔案都由受信任的釋出者簽名,包括在本地計算機上編寫的指令碼。
- 在從尚未分類為受信任或不受信任的釋出者執行指令碼之前,提示你。
- 執行已簽名但惡意的指令碼的風險。
Bypass
- 不阻止任何操作,並且沒有任何警告或提示。
- 此執行策略適用於將 PowerShell 指令碼內建到較大應用程式中的配置,或用於 PowerShell 是具有其自己的安全模型的程式基礎的配置。
Default
- 設定預設執行策略。
- Restricted 對於 Windows 客戶端。
- RemoteSigned Windows伺服器。
RemoteSigned
- 伺服器計算機的預設Windows策略。
- 指令碼可以執行。
- 需要受信任的釋出者對從 Internet 下載的指令碼和配置檔案(包括電子郵件和即時訊息程式)進行數字簽名。
- 對於在本地計算機上編寫且未從 Internet 下載的指令碼,不需要數字簽名。
- 如果指令碼未受阻止(例如使用 cmdlet),則執行從 Internet
Unblock-File
下載且未簽名的指令碼。 - 從 Internet 來源(而不是 Internet)執行未簽名指令碼的風險,以及可能是惡意的已簽名指令碼的風險。
Restricted
- 客戶端計算機的預設Windows策略。
- 允許單個命令,但不允許指令碼。
- 阻止執行
.ps1xml
.psm1
所有指令碼檔案,包括格式化和配置檔案 () 、模組指令碼檔案 () 和 PowerShell 配置檔案 ().ps1
。
Undefined
- 當前作用域中未設定執行策略。
- 如果所有作用域中的執行策略 Undefined 都是 ,Restricted 則有效執行策略適用於 Windows 客戶端,RemoteSigned 適用於 Windows 伺服器。
Unrestricted
- 非計算機的預設執行Windows無法更改。
- 未簽名的指令碼可以執行。 存在執行惡意指令碼的風險。
- 在執行不是來自本地 Intranet 區域中的指令碼和配置檔案之前,警告使用者。
備註
在未區分通用命名約定 (UNC) 路徑與 Internet 路徑的系統上,可能不允許 UNC 路徑標識的指令碼使用 RemoteSigned 執行策略執行。
執行策略範圍
可以設定僅在特定範圍內有效的執行策略。
的有效值為 Scope 、MachinePolicy****UserPolicy、Process****CurrentUser 和 LocalMachine。 LocalMachine 是設定執行策略時的預設選項。
這些值 Scope 按優先順序列出。 優先的策略在當前會話中有效,即使設定了限制性更強、優先順序較低的策略。
有關詳細資訊,請參閱 Set-ExecutionPolicy。
MachinePolicy
由 組策略計算機的所有使用者設定。
UserPolicy
由 組策略當前使用者的設定。
Process
範圍 Process 僅影響當前 PowerShell 會話。 執行策略儲存在環境變數 中 $env:PSExecutionPolicyPreference
,而不是登錄檔中。 關閉 PowerShell 會話後,將刪除變數和值。
CurrentUser
執行策略僅影響當前使用者。 它儲存在登錄檔 HKEY_CURRENT_USER項中 。
LocalMachine
執行策略會影響當前計算機上所有使用者。 它儲存在登錄檔 HKEY_LOCAL_MACHINE項中 。
使用 PowerShell 管理執行策略
若要獲取當前 PowerShell 會話的有效執行策略,請使用 Get-ExecutionPolicy
cmdlet。
以下命令獲取有效執行策略:
Get-ExecutionPolicy
更改執行策略
若要更改計算機上 PowerShell 執行Windows,請使用 Set-ExecutionPolicy
cmdlet。 更改會立即生效。 無需重啟 PowerShell。
如果為 範圍 LocalMachine 或 CurrentUser 設定執行策略,則更改將儲存在登錄檔中,並一直有效,直到再次更改它。
如果為範圍設定執行策略 Process ,該策略不會儲存在登錄檔中。 將保留執行策略,直到當前程序和任何子程序關閉。
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
解決方案
1.管理員開啟PowerShell
2. 執行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser