You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell无法获取系统上次启动时间问题求助

排查PowerShell获取系统上次启动时间无输出的问题

你的脚本中$LastBoot无输出,核心原因是用了-EA 0(即ErrorAction SilentlyContinue),直接抑制了所有错误提示,导致获取失败时无法定位问题。先从取消错误抑制入手,再逐一排查以下可能:

可能的原因及解决办法

  • 目标服务器无法连通
    网络不通、服务器离线,或防火墙阻挡了WinRM(CIM依赖WinRM服务)。先测试基础连通性:

    # 测试网络连通
    Test-Connection $Server -Count 1
    # 测试WinRM服务是否可访问
    Test-WSMan $Server
    

    若网络不通先排查网络;若WinRM无法访问,需在目标服务器开启WinRM,或调整防火墙规则允许WinRM端口(默认5985/5986)。

  • 权限不足
    当前运行脚本的账号没有访问目标服务器CIM的权限。可改用管理员账号运行脚本,或在命令中指定有权限的账号:

    Get-CimInstance Win32_OperatingSystem -ComputerName $Server -Credential (Get-Credential)
    
  • 服务器名称/IP输入错误
    输入的主机名或IP拼写错误、无法解析。用Resolve-DnsName $Server验证是否能正确解析到目标服务器。

  • 目标服务器WinRM服务未开启
    CIM依赖WinRM服务,目标服务器未开启则无法获取信息。在目标服务器上执行(需管理员权限):

    Enable-PSRemoting -Force
    

修改后的测试脚本(带错误提示)

将原脚本中的错误抑制去掉,加入异常捕获,方便定位问题:

$Servers = Get-Content "\\File Path\Server Restarts\Server List.txt"

Write-Host "---Servers Currently On List---"
$i = 1

ForEach ($Server in $Servers)
{
    Write-Host "$i) $Server"
    $i++
}

$Server = Read-Host -Prompt "HOST NAME OR IP"

try {
    $osInfo = Get-CimInstance Win32_OperatingSystem -ComputerName $Server -ErrorAction Stop
    $LastBoot = $osInfo.LastBootUpTime
    Write-Host "Last Bootup time of $Server is: $LastBoot"
} catch {
    Write-Host "Failed to get info from $Server : $_"
}

内容的提问来源于stack exchange,提问作者RustyAndroid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 14:47:09