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

提升 Windows 管理效率:掌握 PowerShell 脚本

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

提升 Windows 管理效率:掌握 PowerShell 脚本

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

PowerShell是Windows系统管理的利器,掌握其脚本编写和运行方法可以大幅提升工作效率。本文将从基础入门到实战应用,手把手教你掌握PowerShell脚本的运行方法、参数传递、注释技巧等核心技能,助你成为系统管理的高手。

如何运行 PowerShell 脚本

PowerShell 是一种强大的命令行工具,用于自动化 Windows 系统管理任务。要运行 PowerShell 脚本,您可以按照以下步骤进行:

方法一:直接在 PowerShell 控制台中运行

  1. 按下 Windows 键,搜索 "PowerShell",然后点击 "Windows PowerShell" 或 "PowerShell" 应用程序。
  2. 导航到脚本所在目录:
    使用 cd 命令切换到脚本所在的文件夹。例如,要进入 "C:\Scripts" 文件夹,输入:
    cd C:\Scripts
    
  3. 运行脚本:
    输入脚本文件名并按下 Enter 键。例如,要运行名为 "myscript.ps1" 的脚本,输入:
    .\myscript.ps1
    

方法二:使用 PowerShell ISE

  1. 打开 PowerShell ISE:按下 Windows 键,搜索 "PowerShell ISE",然后点击该应用程序。
  2. 打开脚本文件:
    在 PowerShell ISE 中,使用 "File" 菜单中的 "Open" 选项打开您的脚本文件。
  3. 运行脚本:
    点击 "Run Script" 按钮或按下 F5 键来运行脚本。

注意事项:

  • 参数传递:
    您可以通过在脚本文件名后添加参数来向脚本传递信息。例如:
    .\myscript.ps1 -Parameter1 value1 -Parameter2 value2
    
  • 脚本路径:
    如果脚本不在当前目录,请使用完整路径来指定脚本的位置。
  • 脚本文件扩展名:
    确保您的脚本文件使用 .ps1 扩展名。
  • 执行策略:
    默认情况下,PowerShell 限制脚本的执行。您需要调整执行策略以允许脚本运行。
    打开 PowerShell 控制台并输入以下命令:
    Set-ExecutionPolicy RemoteSigned
    
    输入 "A" 以确认更改。

示例代码:一个简单的 PowerShell 脚本

Write-Host "Hello, World!"
Write-Host "This is a simple PowerShell script."

解释

  • 双引号内的文本: 这是要输出的字符串。
  • Write-Host: 这个命令用于将文本输出到控制台。

运行方式

  1. 打开 PowerShell 控制台。
  2. 将上述代码复制并粘贴到控制台中。
  3. 按下 Enter 键执行。

创建并运行脚本文件

  1. 使用文本编辑器(如 Notepad)创建一个新的文本文件。
  2. 将代码复制并粘贴到该文件中。
  3. 保存文件,并将其命名为 hello.ps1
  4. 打开 PowerShell 控制台。
  5. 导航到脚本所在的目录。
  6. 输入以下命令运行脚本:
    .\hello.ps1
    

更复杂的示例:获取系统信息

# 获取系统信息
$os = Get-ComputerInfo | Select-Object OSVersion
$hostname = Get-ComputerName
$ipaddress = (ipconfig | Where-Object {$_.Status -eq "IPv4 Address"}).IPAddress
# 输出信息
Write-Host "操作系统版本: $($os.OSVersion)"
Write-Host "主机名: $hostname"
Write-Host "IP 地址: $ipaddress"

解释

  • $(): 用于在字符串中嵌入变量的值。
  • Where-Object: 筛选出 IPv4 地址。
  • ipconfig: 获取网络配置信息。
  • Get-ComputerName: 获取计算机的主机名。
  • Select-Object: 选择特定的属性,这里选择 OSVersion
  • Get-ComputerInfo: 获取计算机的基本信息。

运行方式
与简单示例相同,您可以直接在 PowerShell 控制台中运行代码,或将其保存为脚本文件并执行。

注意:

  • 您可以使用 PowerShell 的帮助系统来了解更多命令和语法。输入 Get-Help <command> 可以获取特定命令的帮助信息。
  • 如果您在脚本中使用变量或函数,请确保它们在脚本的开头定义。
  • 确保 PowerShell 执行策略允许脚本运行。您可以使用以下命令来设置执行策略:
    Set-ExecutionPolicy RemoteSigned
    

其他运行 PowerShell 脚本的方法

除了直接在 PowerShell 控制台或 PowerShell ISE 中运行脚本外,还有以下几种替代方法:

使用 Windows 任务计划程序

  • 运行任务:
    任务计划程序将在指定的时间自动运行脚本。
  • 打开任务计划程序。
  • 创建一个新任务。
  • 在“常规”选项卡中,设置任务名称和描述。
  • 在“触发器”选项卡中,设置触发条件,例如每天、每周或每月运行。
  • 在“操作”选项卡中,选择“启动程序”,在“程序/脚本”框中输入 PowerShell.exe,在“添加参数”框中输入脚本的完整路径。
  • 在“条件”和“设置”选项卡中,根据需要设置其他选项。

使用 PowerShell 作业

  • 创建作业:
    使用 Start-Job cmdlet 创建一个后台作业。
  • 指定脚本的路径和参数。
  • 等待作业完成或使用 Receive-Job cmdlet获取作业的输出。
    Start-Job -ScriptBlock {
        # 脚本代码
    }
    Receive-Job -JobId <JobId>
    

使用 PowerShell Remoting

  • 运行脚本:
    在远程会话中直接运行脚本,或者使用 Invoke-Command cmdlet 执行脚本。
    Enter-PSSession -ComputerName RemoteComputer
    Invoke-Command -ComputerName RemoteComputer -ScriptBlock {
        # 脚本代码
    }
    
  • 连接到远程计算机:
    使用 Enter-PSSession cmdlet 连接到远程计算机。
  • 配置远程计算机:
    在远程计算机上启用 PowerShell Remoting。
    配置防火墙,允许 PowerShell Remoting 的端口(默认是 5985)。

选择合适的方法

根据您的具体需求,选择最适合的方法:

  • 远程执行:使用 PowerShell Remoting。
  • 后台运行:使用 PowerShell 作业。
  • 定时任务:使用 Windows 任务计划程序。
  • 简单的一次性运行:直接在 PowerShell 控制台或 ISE 中运行。

PowerShell 参数传递简述

背景: PowerShell 是一种强大的自动化工具,可以用于执行各种任务。传递参数到脚本中,可以使脚本更加灵活和可重用。

方法: $args 数组自动包含所有传递给脚本的参数。 您可以通过索引访问这些参数。

示例脚本文件:script.ps1

Write-Host "第一个参数是:$($args[0])"
Write-Host "第二个参数是:$($args[1])"

调用脚本:

.\script.ps1 arg1 arg2

PowerShell 代码注释指南

注释 是在代码中添加的说明性文本,它不会被执行。在 PowerShell 中,有两种主要的方法来注释代码:

  • 任何在 # 符号后面的内容都会被忽略。使用 # 符号来注释单行代码。
  • 任何在 <##> 之间的内容都会被忽略。使用 <##> 符号来注释多行代码。

PowerShell 管理员权限命令

打开 PowerShell
您可以按下 Windows 键 + X 然后选择 "Windows PowerShell" 或 "Windows Terminal" 来打开 PowerShell。

右键单击 PowerShell 窗口
在 PowerShell 窗口上右键单击。

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 <PID>

如果需要强制终止,可以使用:

kill -9 <PID>

找到进程 ID (PID)

netstat -tulnp | grep <端口号>

例如,要查找使用 8080 端口的进程:

netstat -tulnp | grep 8080
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号