巧用 PowerShell 脚本,精准记录 Windows Server 2022 24 小时资源使用!

以下是一个使用 PowerShell 脚本记录 Windows Server 2022 最近 24 小时资源使用情况的示例。这个脚本会每隔一段时间(例如 5 分钟)记录一次 CPU、内存、磁盘和网络的使用情况,并将数据保存到一个 CSV 文件中。

以下是一个使用 PowerShell 脚本记录 Windows Server 2022 最近 24 小时资源使用情况的示例。这个脚本会每隔一段时间(例如 5 分钟)记录一次 CPU、内存、磁盘和网络的使用情况,并将数据保存到一个 CSV 文件中。

# 定义日志文件路径
$logFilePath = "C:\ResourceUsageLogs\ResourceUsage_$(Get-Date -Format yyyyMMdd).csv"

# 检查日志文件夹是否存在,如果不存在则创建
$logFolder = Split-Path -Path $logFilePath -Parent
if (-not (Test-Path -Path $logFolder)) {
    New-Item -ItemType Directory -Path $logFolder | Out-Null
}

# 检查日志文件是否存在,如果不存在则创建并写入表头
if (-not (Test-Path -Path $logFilePath)) {
    "Timestamp,CPU Usage (%),Available Memory (MB),Disk Read Rate (KB/s),Disk Write Rate (KB/s),Network Total Bytes Rate (KB/s)" | Out-File -FilePath $logFilePath -Encoding UTF8
}

# 定义循环次数,假设每 5 分钟记录一次,24 小时共记录 288 次
$loopCount = 288
$intervalInMinutes = 5

for ($i = 0; $i -lt $loopCount; $i++) {
    # 获取当前时间戳
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"

    # 获取 CPU 使用率
    $cpuUsage = (Get-Counter -Counter "\Processor(_Total)\% Processor Time").CounterSamples.CookedValue

    # 获取可用内存(MB)
    $availableMemory = (Get-Counter -Counter "\Memory\Available MBytes").CounterSamples.CookedValue

    # 获取磁盘读写速率(KB/s)
    $diskReadRate = (Get-Counter -Counter "\PhysicalDisk(_Total)\Disk Read Bytes/sec").CounterSamples.CookedValue / 1024
    $diskWriteRate = (Get-Counter -Counter "\PhysicalDisk(_Total)\Disk Write Bytes/sec").CounterSamples.CookedValue / 1024

    # 获取网络总字节速率(KB/s)
    $networkTotalBytesRate = (Get-Counter -Counter "\Network Interface(*)\Bytes Total/sec").CounterSamples.CookedValue / 1024

    # 将数据格式化并追加到日志文件
    "$timestamp,$cpuUsage,$availableMemory,$diskReadRate,$diskWriteRate,$networkTotalBytesRate" | Out-File -FilePath $logFilePath -Encoding UTF8 -Append

    # 等待指定的时间间隔
    Start-Sleep -Seconds ($intervalInMinutes * 60)
}

脚本说明:

  1. 日志文件路径:脚本会将资源使用数据保存到指定的 CSV 文件中,文件路径可以根据需要进行修改。
  2. 日志文件夹检查:如果指定的日志文件夹不存在,脚本会自动创建该文件夹。
  3. 表头写入:如果日志文件不存在,脚本会先写入表头信息。
  4. 资源数据收集:通过 Get-Counter 命令获取 CPU 使用率、可用内存、磁盘读写速率和网络总字节速率。
  5. 数据记录:将获取到的数据格式化并追加到日志文件中。
  6. 时间间隔:脚本会每隔 5 分钟记录一次数据,共记录 24 小时(288 次)。

使用方法:

  1. 打开 PowerShell 控制台,以管理员身份运行。
  2. 将上述脚本复制到 PowerShell 控制台中,然后按回车键执行。
  3. 脚本会开始记录资源使用情况,24 小时后会自动停止。
  4. 可以使用 Excel 等工具打开生成的 CSV 文件,查看和分析资源使用数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值