刚开始使用Powershell时,在导入管理模块或者其他操作的时候会出现因为在此系统中禁止执行脚本的报错,报错内容如下:
PS C:\Users\hero> c:\t.ps1无法加载文件 C:\t.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。所在位置 行:1 字符: 9+ c:\t.ps1 <<<<     + CategoryInfo          : NotSpecified: (:) [], PSSecurityException    + FullyQualifiedErrorId : RuntimeException

接下来,按照提示输入:PS C:\Users\hero> get-help about_signing主题    about_signing
简短说明    说明如何对脚本进行签名以使其符合 Windows PowerShell 执行策略。
详细说明    Restricted 执行策略不允许任何脚本运行。    AllSigned 和 RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本。
    本主题说明如何运行所选未签名脚本(即使在执行策略为 RemoteSigned 的情况下),还说明如何对    脚本进行签名以便您自己使用。

    有关 Windows PowerShell 执行策略的详细信息,请参阅 about_Execution_Policy。
 允许运行签名脚本 -------------------------------    首次在计算机上启动 Windows PowerShell 时,现用执行策略很可能是 Restricted(默认设置)。
    Restricted 策略不允许任何脚本运行。
    若要了解计算机上的现用执行策略,请键入:
        get-executionpolicy
    若要在本地计算机上运行您编写的未签名脚本和来自其他用户的签名脚本,请使用以下命令将计算机上的    执行策略更改为 RemoteSigned:
 set-executionpolicy remotesigned
    有关详细信息,请参阅 Set-ExecutionPolicy。
 运行未签名脚本(REMOTESIGNED 执行策略)如果 Windows PowerShell 执行策略是  RemoteSigned,Windows PowerShell 不会运行从 Internet 下载的未签名脚本,包括您通过电子邮 件和即时消息传递程序接收到的未签名脚本。
    如果您试图运行下载的脚本,则 Windows PowerShell 将显示以下错误消息:
        无法加载文件 <file-name>。文件         <file-name> 未经数字签名。系统将        不执行该脚本。有关详细信息,请参阅"Get-Help about_signing"。
    在运行该脚本前,请检查其代码以确保该脚本可信。    脚本与任何可执行程序具有同样的效用。
    若要运行未签名脚本,请执行以下操作:
        1. 将脚本文件保存在计算机中。 2. 依次单击"开始"和"我的电脑",然后找到保存的脚本文件。 3. 右键单击该脚本文件,然后单击"属性"。 4. 单击"取消阻止"。
    如果从 Internet 下载的脚本具有数字签名,而您尚未选择信任其发布者,则 Windows PowerShell     将显示以下消息:
        是否要运行来自此不可信发布者的软件?文件 <file-name> 由 CN=<publisher-name> 发布。        此发布者在您的系统上不受信任。请只运行来自可信发布者的脚本。
        [V] 从不运行 [D] 不运行 [R] 运行一次 [A] 始终运行 [?] 帮助(默认值为"D"):

        如果您信任发布者,请选择"运行一次"或"始终运行"。如果您不信任发布者,        则请选择"从不运行"或"不运行"。如果选择"从不运行"或"始终运行",Windows PowerShell         不会再次提示您对来自此发布者的脚本作出选择。    
 对脚本进行签名的方法 --------------------------    可以对您编写的脚本以及从其他来源获得的脚本进行签名。在对任何脚本进行签名前,    请检查每条命令以验证运行此脚本是否安全。
    有关对代码进行签名的最佳做法,请参阅 http://go.microsoft.com/fwlink/?LinkId=119096     上的"代码签名最佳做法"。
    有关如何对脚本文件进行签名的详细信息,请参阅 Set-AuthenticodeSignature。
    若要为脚本添加数字签名,则必须使用代码签名证书对其进行签名。可使用以下两种类型的证书对脚本文件进行签名:
        -- -- 由证书颁发机构创建的证书:
           公共证书颁发机构可验证您的身份并向您颁发代码签名证书,但要收取费用。在从可信的证书颁           发机构购买证书之后,您就可以与运行 Windows 的其他计算机上的用户共享脚本,这是因为这些           计算机信任该证书颁发机构。
        -- -- 您创建的证书:
           您可以创建自签名证书,而您的计算机就是创建该证书的颁发机构。           此证书是免费的,有了此证书,您便可在自己的计算机上编写脚本、对脚本进行签名以及运行脚本。           但是,自签名证书所签名的脚本在其他计算机上不会运行。
    通常,您只使用自签名证书对以下两类脚本进行签名:一种是您自编自用的脚本,另一种是您    从其他来源获取的已确认安全的脚本。自签名证书不适用于将与他人共享的脚本,甚至在企业范围    内共享的脚本。
    如果您创建了自签名证书,请确保为您的证书启用强私钥保护。这样可防止恶意程序以您的名义对脚本进行签名。    本主题的最后提供了相关说明。
 创建自签名证书 --------------------------------    若要创建自签名证书,请使用证书创建工具 (MakeCert.exe)。在 Microsoft .NET Framework SDK    (版本 1.1 和更高版本)以及 Microsoft Windows SDK 中包含了此工具。
    有关 MakeCert.exe 工具语法的详细信息及其参数说明,请参阅 MSDN(Microsoft Developer Network)    Library 中的"证书创建工具 (MakeCert.exe)",网址为     http://go.microsoft.com/fwlink/?LinkId=119097。
    若要使用 MakeCert.exe 工具创建证书,请在 SDK 命令提示符窗口中运行以下命令。

    注意:第一条命令将为计算机创建本地证书颁发机构。第二条命令从该证书颁发机构生成个人证书。
    注意:您可以按原样复制或键入显示的命令。          不必进行任何替换,不过可更改证书名称。
            makecert -n "CN=PowerShell Local Certificate Root" -a sha1 `                -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer `                -ss Root -sr localMachine
            makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 `                -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer
    MakeCert.exe 工具将提示您输入私钥密码。该密码可确保无人能够不经您的同意就使用或访问该证    书。应创建并输入您可以记住的密码。您将在以后使用此密码检索该证书。
    要验证是否正确生成了证书,请使用以下命令从计算机上的证书存储区中获取该证书。    (在文件系统目录中找不到证书文件。)
    在 Windows Powershell 提示符下,键入:
            get-childitem cert:\CurrentUser\my -codesigning
    此命令使用 Windows PowerShell 证书提供程序来查看该证书的相关信息。
    如果该证书已创建完成,则输出将显示标识该证书的指纹,如下所示:
        Directory: Microsoft.PowerShell.Security\Certificate::CurrentUser\My
        Thumbprint                                Subject        ----------                                -------        4D4917CB140714BA5B81B96E0B18AAF2C4564FDF  CN=PowerShell User ]
 对脚本进行签名 -------------
    如果创建了自签名证书,则可对脚本进行签名。如果使用 AllSigned 执行策略,则对脚本进行签名后,    您就可在计算机上运行该脚本。
    以下示例脚本 Add-Signature.ps1 对一个脚本进行签名。但如果使用的是 AllSigned 执行策略,则    必须先对 Add-Signature.ps1 脚本进行签名,然后才能运行该脚本。
    若要使用此脚本,请将以下文本复制到一个文本文件中并将该文件命名为 Add-Signature.ps1。
    注意:请确保该脚本文件没有 .txt 文件扩展名。如果文本编辑器向文件名追加".txt",则请将文件名    括在引号中:"add-signature.ps1"。
            ## add-signature.ps1            ## Signs a file            param([string] $file=$(throw "Please specify a             filename.")) $cert = @(Get-ChildItem cert:\CurrentUser\My -            codesigning)[0] Set-AuthenticodeSignature $file $cert
    若要对 Add-Signature.ps1 脚本文件进行签名,请在 Windows PowerShell 命令提示符下键入以    下命令:
        $cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
        Set-AuthenticodeSignature add-signature.ps1 $cert
    在对脚本进行签名之后,即可在本地计算机上运行该脚本。    但是,如果计算机上的 Windows PowerShell 执行策略要求来自可信证书颁发机构的数字签名,则此脚    本将无法在该计算机上运行。如果试图运行此脚本,Windows PowerShell 将显示以下错误消息:
        无法加载文件 C:\remote_file.ps1。无法验证该证书的签名。        所在行:1 字符:15        + .\ remote_file.ps1 <<<<
    如果在运行非自编脚本时 Windows PowerShell 显示此消息,请按照处理任何未签名脚本的方式来处理    该文件。请检查脚本代码以确定该脚本是否可信。
 为证书启用强私钥保护---------------------------------------------------------
    如果您的计算机上具有私有证书,则恶意程序可能会以您的名义对脚本进行签名,从而授权 Windows     PowerShell 运行这些脚本。
    若要防止以您的名义进行的自动签名,请使用证书管理器 (Certmgr.exe) 将您的签名证书导出到一    个 .pfx 文件中。证书管理器包含在 Microsoft .NET Framework SDK、Microsoft Windows SDK,以及     Internet Explorer 5.0 及更高版本中。
    若要导出证书,请执行以下操作:
        1. 启动证书管理器。

        2. 选择由"PowerShell Local Certificate Root"颁发的证书。
        3. 单击"导出"以启动证书导出向导。
        4. 选中"是,导出私钥",然后单击"下一步"。

        5. 选中"启用加强保护"。
        6. 键入密码,然后再次键入密码进行确认。
        7. 键入文件扩展名为 .pfx 的文件名。
        8. 单击"完成"。
    若要重新导入证书,请执行以下操作:
        1. 启动证书管理器。
        2. 单击"导入"以启动证书导入向导。
        3. 转到您在导出过程中创建的 .pfx 文件所在的位置。
        4. 在"密码"页上选中"启用强私钥保护",然后输入在导出过程中所指定的密码。
        5. 选择"个人"证书存储区。
        6. 单击"完成"。
 
 防止签名过期 -----------------------------------     脚本中的数字签名在签名证书过期前一直有效;或者,只要时间戳服务器可验证该脚本是     在签名证书有效时进行签名的,则该数字签名就有效。
     因为大多数签名证书的有效期只有一年,所以使用时间戳服务器可确保用户在未来许多年内都可使用您的脚本。
另请参阅    about_Execution_Policies    about_Profiles    Get-ExecutionPolicy    Set-ExecutionPolicy    Set-AuthenticodeSignature    "代码签名简介"(http://go.microsoft.com/fwlink/?LinkId=106296)
很明显,有一些权限没打开,所以在PowerShell执行以下输入: PS
C:\Windows\system32> set-ExecutionPolicy RemoteSigned
提示
执行策略更改 执行策略可以防止您执行不信任的脚本。更改执行策略可能会使您面临 about_Execution_Policies
帮助主题中所述的安全风险。是否要更改执行策略? [Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”):
y

转载于:https://www.cnblogs.com/Hero-Qiang/archive/2011/09/09/2172005.html

Powershell中禁止执行脚本解决办法相关推荐

  1. powershell禁用计算机,PowerShell 因为在此系统中禁止执行脚本 解决方法

    在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing". ...

  2. PowerShell因为在此系统中禁止执行脚本解决方法

    在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing".  ...

  3. 在Powershell中禁止执行脚本

    在Powershell中执行脚本时,有如下报错: 无法加载文件 F:\script\1.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signin ...

  4. 因为在此系统中禁止执行脚本解决

    以管理员身份运行powershell 执行 set-executionpolicy remotesigned 输入y即可 [Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值 ...

  5. PowerShell因为在此系统中禁止执行脚本

    PowerShell因为在此系统中禁止执行脚本 解决方法: 在powershell中执行 set-ExecutionPolicy RemoteSigned

  6. Powershell知识点1:开启脚本限制 报错:无法加载文件,因为在此系统中禁止执行脚本

    写了一个powershell脚本测试脚本,结果执行的时候报错 PS D:\> .\pshell.ps1 无法加载文件 D:\pshell.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 ...

  7. vmware vsphere powercli 因为在此系统中禁止执行脚本

    vmware vsphere powercli 因为在此系统中禁止执行脚本 打开 VMware vSphere PowerCLI 出现 无法加载文件 C:\Program Files (x86)\VM ...

  8. vue无法加载文件C:\Users\Administrator\AppData\Roaming\npm\vue.ps1因为在此系统上禁止运行脚本……解决办法

    vue : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本-------- 解决方法: 1.管理员身份运 ...

  9. 运行Powershell脚本提示“因为在此系统上禁止运行脚本”解决办法

    PS C:\Users\HP> cd .\Desktop\ PS C:\Users\HP\Desktop> '"Hello,Powershell Script"' &g ...

  10. npm 运行时报错“因为在此系统上禁止运行脚本”解决办法

    在控制台运行npm指令时遇到如下报错信息:"因为在此系统上禁止运行脚本" npm : 无法加载文件 C:\Users\Pathliu\software\nodejs\npm.ps1 ...

最新文章

  1. 柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)...
  2. 一台服务器上起2个mysql服务
  3. 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )
  4. 第三方应用如何在SAP Kyma上进行服务注册
  5. 使用Popup窗口创建无限级Web页菜单(5)
  6. Go语言的三元表达式
  7. 云原生时代的 YAML 教程
  8. ConcurrentHashMap 和 Collections.synchronizedMap(map) 比较
  9. java判断jd安装,java - 安装和使用 java 反编译应用: jd-compiler ,以及命令行的使用...
  10. UNIX环境高级编程之第7章:进程环境
  11. 如何在windows上安装和配置php-7.3.5-Win32-VC15-x64
  12. 英特尔hd630驱动_Ubuntu 16.04安装Intel显卡驱动(解决Intel HD Graphics 630显卡驱动问题)...
  13. 448. Find All Numbers Disappeared in an Array
  14. ACCV 2020 开幕,最佳论文出炉!附所有论文下载
  15. 鸿蒙适配机型小米,科技晚报|华为鸿蒙适配机型公布 P50首发/小米10S才是真正至尊版...
  16. 深圳第一职业技术学校计算机分数线,2018年深圳第一职业技术学校第一批中招录取分数线:382分...
  17. SAP S4HANA1610/Fiori安装过程全记录
  18. Android Studio 3.5 怎样获取MD5签名
  19. JavaScript空判断
  20. 计算机在线应用不能安装,电脑如何禁止安装软件,教你win10电脑禁止安装软件的设置教程...

热门文章

  1. [asp.net]优化ViewState
  2. 2018JavaScript状态调查:5个重要的思考( import takeaways) (摘译)
  3. python学习之路第四周汇总
  4. WPF: WrapPanel 容器的数据绑定(动态生成控件、遍历)
  5. 2.1 LibCurl编程流程(转)
  6. 纯CSS3技术 加载中
  7. C语言控制台窗口图形界面编程(六):光标操作
  8. 【语言处理与Python】9.2处理特征结构\9.3扩展基于特征的文法
  9. R语言 | 构建信用评分卡模型
  10. 时间序列分析工具箱——sweep