PowerShell提示此係統中禁止執行指令碼的解決方法
阿新 • • 發佈:2018-12-13
【問題】
在win7下執行powershell指令碼提示系統禁止執行指令碼,估計是系統預設禁止執行powershell指令碼。
具體提示如下:
PS C:\Users\momocha\Desktop> .\Invoke-ReflectivePEInjection.ps1
無法載入檔案 C:\Users\momocha\Desktop\Invoke-ReflectivePEInjection.ps1,因為在
此係統中禁止執行指令碼。有關詳細資訊,請參閱 "get-help about_signing"。
所在位置 行:1 字元: 35
+ .\Invoke-ReflectivePEInjection. ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
截圖如下:
【解決方案】
用 管理員身份 開啟powershell,並執行下面命令開啟信任指令碼執行策略
set-ExecutionPolicy RemoteSigned
執行結果如下,沒有報錯。
指令碼也可以正常執行了
【衍生問題】
1. 如何檢視powershell的命令幫助
LZ試了各種姿勢:
set-ExecutionPolicy ?
set-ExecutionPolicy -h
set-ExecutionPolicy \h
set-ExecutionPolicy --help
結果各種報錯,這不科學。官網上找了下傳送門。
但肯定不方便,於是發現真正的help命令是這樣的:
help set-ExecutionPolicy
2. 命令set-ExecutionPolicy是什麼意思
看下help提示,說這個powershell的安全策略,需要用管理員身份執行。
說明 Set-ExecutionPolicy 可更改 Windows PowerShell 執行策略的使用者首選項。 要在 Windows Vista、Windows Server 2008 和 Windows 的更高版本上執行此命令,必須使用“以管理員身份執行”選項啟動 Wind ows PowerShell,即使您是計算機上 Administr ators 組的成員。 執行策略是 Windows PowerShell 安全策略的一部分。它確定是否可以載入配置檔案(包括 Windows PowerShell 配置檔案)和執行 指令碼,並且確定哪些指令碼(如果有)在執行之前必須進行數字簽名。 有關詳細資訊,請參閱 about_Execution_Policies。
3. 如何禁止powershell指令碼執行
使用時需要執行許可權,為了安全,可以再關閉允許執行。
set-ExecutionPolicy Restricted
4. 如何檢視執行策略的狀態
Get-ExecutionPolicy
參考文獻
https://www.jb51.net/article/95022.htm
https://docs.microsoft.com/zh-CN/previous-versions//dd347628(v=technet.10)
https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-5.1
一些題外話
最近思路有點發散,工作很煩躁,自己研究的方向也是東搞搞,西搞搞,機器學習,爬蟲,web挖洞,算是溫習下以前的東西吧,二進位制分析的事就放下了,等忙完了這段工作,在撿起來。