[PowerShell 入门教程]第2天课后作业答案

第2天课后作业答案

作业1:列出所有状态为 “Stopped” 的服务,并显示 Name 和 DisplayName

Get-Service |
Where-Object { $_.Status -eq 'Stopped' } |
Select-Object Name, DisplayName

💡 说明:

  • Get-Service 获取所有服务对象
  • Where-Object 过滤状态为 'Stopped' 的服务(注意:字符串比较区分大小写?在 Windows 上默认不区分)
  • Select-Object 选择要显示的两个属性

作业2:获取当前目录下所有 .txt 文件,输出名称和大小(KB)

$files = Get-ChildItem -Path . -Filter *.txt -File
$files | ForEach-Object {
    [PSCustomObject]@{
        FileName = $_.Name
        SizeKB   = [math]::Round($_.Length / 1KB, 2)
    }
}

🔍 说明:

  • -File 确保只返回文件(排除目录)
  • 1KB 是 PowerShell 内置常量(等于 1024)
  • 使用 [PSCustomObject] 创建结构化输出,便于后续处理或导出

作业3:运行 .ps1 脚本并解决执行策略问题

步骤1:创建脚本文件

在任意目录新建 hello.ps1,内容为:

Write-Host "Hello from PowerShell!"
步骤2:直接运行(会报错)
.\hello.ps1

错误示例

无法加载文件 hello.ps1,因为在此系统上禁止运行脚本。
步骤3:正确方式运行(任选其一)

方法A:临时绕过策略(推荐测试用)

PowerShell -ExecutionPolicy Bypass -File ".\hello.ps1"

方法B:设置当前用户策略为 RemoteSigned(推荐开发用)

# 以普通用户身份运行(无需管理员)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
.\hello.ps1  # 现在可以正常运行

⚠️ 切勿在生产环境使用 Unrestricted

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值