问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PowerShell 脚本执行常见错误及解决

创作时间:
作者:
@小白创作中心

PowerShell 脚本执行常见错误及解决

引用
1
来源
1.
https://code-examples.net/cn/q/3d9d33

在使用PowerShell执行脚本时,经常会遇到"execution of scripts is disabled on this system."的错误提示。本文将详细介绍导致该错误的原因,并提供多种解决方案,包括更改执行策略、临时绕过执行策略限制、使用PowerShell ISE、将脚本转换为可执行文件、使用远程PowerShell以及修改组策略等。此外,文章还涉及了一些相关的PowerShell使用技巧,如字符串空值检查、字符串连接方法、创建目录指南等。

PowerShell 脚本执行策略限制

在 Windows Server 2008 R2 上使用 PowerShell 执行脚本时,可能会遇到以下错误:

"execution of scripts is disabled on this system."

原因:
这是由于 Windows PowerShell 的默认安全设置,称为“执行策略”(Execution Policy),旨在防止恶意脚本的运行。默认情况下,执行策略设置为“Restricted”,禁止任何脚本的执行。

解决方法:

  1. 右键单击 PowerShell 图标,选择“以管理员身份运行”。

  2. 更改执行策略:
    在管理员模式的 PowerShell 中,输入以下命令并按 Enter:

    Set-ExecutionPolicy RemoteSigned
    

    确认更改,输入“Y”并按 Enter。

执行策略选项:

  • Unrestricted:允许所有脚本的执行,但不建议使用,因为它存在安全风险。
  • AllSigned:允许本地和远程脚本的执行,但必须经过数字签名。
  • RemoteSigned:允许本地脚本的执行,以及来自可信任来源的远程脚本的执行。
  • Restricted:默认设置,禁止任何脚本的执行。

注意事项:

  • 对于特定的脚本,可以使用参数 -ExecutionPolicy Bypass 来临时绕过执行策略限制。
  • 在企业环境中,建议使用组策略来管理执行策略,以确保一致性和安全性。
  • 更改执行策略可能会降低系统安全性。

示例:

powershell -ExecutionPolicy Bypass -File myscript.ps1
# 临时绕过执行策略限制
powershell -ExecutionPolicy Bypass -File myscript.ps1
# 永久更改执行策略为 RemoteSigned
Set-ExecutionPolicy RemoteSigned

临时绕过执行策略限制:

  • powershell:启动一个新的 PowerShell 进程。
  • -ExecutionPolicy Bypass:临时设置执行策略为 Bypass,允许执行任何脚本。
  • -File myscript.ps1:指定要执行的脚本文件。

此命令仅在当前会话中有效,下次打开 PowerShell 时,执行策略会恢复到之前的设置。

永久更改执行策略为 RemoteSigned:

  • Set-ExecutionPolicy RemoteSigned:将执行策略设置为 RemoteSigned。这允许本地脚本的执行,以及来自可信任来源的远程脚本的执行。

请注意,更改执行策略可能会降低系统安全性。在企业环境中,建议使用组策略来管理执行策略,以确保一致性和安全性。

使用 PowerShell ISE

  • 在 PowerShell ISE 中,您可以直接运行脚本,而无需使用命令行。
  • PowerShell ISE(集成脚本环境)是一个图形化的 PowerShell 编辑器,可以绕过执行策略限制。

将脚本转换为可执行文件

  • 这样可以绕过执行策略限制,直接运行可执行文件。
  • 使用 PowerShell 的 ConvertTo-Executable cmdlet 可以将 PowerShell 脚本转换为可执行文件(.exe)。

使用远程 PowerShell

  • 使用 Invoke-Command cmdlet 可以远程执行 PowerShell 命令和脚本。
  • 通过远程 PowerShell,可以在远程计算机上执行脚本,绕过本地计算机的执行策略限制。

修改组策略

  • 通过修改组策略,可以为特定用户或计算机组设置不同的执行策略。
  • 在企业环境中,可以使用组策略来管理 PowerShell 执行策略。
  • 在使用远程 PowerShell 时,需要确保远程计算机的安全性和访问权限。
  • 对于企业环境,建议使用组策略来管理执行策略,以确保一致性和安全性。
  • 临时绕过执行策略和永久更改执行策略可能会带来安全风险。

powershellwindows-server-2008-r2

PowerShell字符串空值检查

方法2:使用-is $null运算符
方法3:使用$string. Length属性
方法4:使用Test-Path运算符
使用Test-Path运算符检查字符串是否为空且存在于文件系统中。
使用$string. Length属性仅检查字符串是否为空。

PowerShell字符串连接方法

使用字符串格式化:
使用连接运算符(-join):

PowerShell创建目录指南

使用 Test-Path 命令来检查目录是否存在,然后使用 New-Item 命令创建目录。
示例解释
$directoryPath 变量存储了要检查的目录路径。
Test-Path 命令检查 $directoryPath 是否存在,并使用 -PathType Container 参数指定检查的是目录而非文件。

Linux端口控制:防火墙和进程管理

在 Linux 系统中,有多种方法可以关闭特定端口。下面是几种常见的方法:
终止使用该端口的进程
终止进程 kill
如果需要强制终止,可以使用: kill -9
找到进程 ID (PID)
netstat -tulnp | grep <端口号>
例如,要查找使用 8080 端口的进程:
netstat -tulnp | grep 8080

PowerShell 脚本执行被禁

这个限制通常出于安全考虑。运行脚本可能会执行恶意代码,导致系统安全风险。因此,系统默认禁用了脚本执行功能。
解决方法
在 PowerShell 控制台中 输入以下命令:
Set-ExecutionPolicy RemoteSigned
这将允许运行来自网络的签名脚本。
在命令提示符中 输入以下命令:
powershell -ExecutionPolicy RemoteSigned
这将启动 PowerShell 控制台并临时启用脚本执行。

“ng”命令无法识别解决方法

在使用Node. js、Angular或PowerShell等编程环境时,如果遇到错误信息“the term 'ng' is not recognized as the name of a cmdlet”,这意味着系统无法识别您使用的命令“ng”。

PowerShell 脚本:查找并替换特定扩展名的所有文件

概述
PowerShell 是一种强大的命令行工具,可用于自动化各种任务,包括查找和替换文本文件中的内容。本脚本将演示如何使用 PowerShell 脚本查找特定扩展名的所有文件,并在其中执行查找和替换操作。
脚本示例
脚本解释
$targetDirectory: 设置要搜索文件的根目录。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号