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

如何自动获取时区详情及夏令时信息?PowerShell脚本报错求助

PowerShell批量查询服务器时区脚本错误解决

错误原因

报错源于Write-Host "Time zone details for $server:"这行代码:PowerShell会将$server:识别为驱动器引用语法(如C:、HKCU:),而非变量$server后追加冒号,导致变量解析失败。

修复方案

方案1:用${}明确变量边界

通过${server}包裹变量名,让PowerShell准确识别变量范围:

$servers = "server1", "server2", "server3" # 替换为目标服务器名称

foreach ($server in $servers) {
    Write-Host "Time zone details for ${server}:"
    $timezone = Get-WmiObject -Class Win32_TimeZone -ComputerName $server
    $timezone | Select-Object Caption, StandardName, DaylightName, Bias
    Write-Host ""
}

方案2:使用格式化字符串

通过-f格式化运算符拼接字符串,避免变量与特殊字符冲突:

$servers = "server1", "server2", "server3" # 替换为目标服务器名称

foreach ($server in $servers) {
    Write-Host ("Time zone details for {0}:" -f $server)
    $timezone = Get-WmiObject -Class Win32_TimeZone -ComputerName $server
    $timezone | Select-Object Caption, StandardName, DaylightName, Bias
    Write-Host ""
}

推荐优化(可选)

在PowerShell 5.1及以上版本,推荐用Get-CimInstance替代已被弃用的Get-WmiObject,兼容性和性能更好:

$servers = "server1", "server2", "server3" # 替换为目标服务器名称

foreach ($server in $servers) {
    Write-Host "Time zone details for ${server}:"
    $timezone = Get-CimInstance -Class Win32_TimeZone -ComputerName $server
    $timezone | Select-Object Caption, StandardName, DaylightName, Bias
    Write-Host ""
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:42:46