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
相关产品推荐
相关产品推荐

