1. 程式人生 > >PowerShell提示此係統中禁止執行指令碼的解決方法

PowerShell提示此係統中禁止執行指令碼的解決方法

【問題】

在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挖洞,算是溫習下以前的東西吧,二進位制分析的事就放下了,等忙完了這段工作,在撿起來。