<Power Shell>12 解决本地工作站或者远程计算机时间和时区的问题

本文介绍了一种使用PowerShell脚本来检查工作站时间同步的方法,并详细解释了如何通过Win32_OperatingSystem和Win32_LocalTime类来获取并转换远程机器上的日期和时间。

今天我们继续讲如何检查本地的工作站上日期和时间和时区问题及解决方法。

我们的服务器和用户的计算机经常会不准确,其中的原因是时间偏移,有人告诉我,一些工作站的时钟慢1小时。

大多数运维人员利用PowerShell脚本写了一个快速获取原始的WMI本地日期和时间值在远程机器上的列表,将其转换为可读的DateTime对象这样就可以解决

1
2
3
4
5
6
7
$computers 'pc1','pc2','pc3'
$computers ForEach-Object{
   $os Get-WmiObject -Class Win32_OperatingSystem -ComputerName $_
   $cdt = @{Name='ConvertedDateTime';Expression={$_.ConvertToDateTime($os.LocalDateTime)}}
   $os Select-Object -Property Name,LocalDateTime,$cdt
}
 

这样你会得到

1
2
3
4
5
Name  LocalDateTime              ConvertedDateTime
----  -------------              ----
pc1   20130627093710.927000+120  6/27/2013 9:37:10 PM
pc2   20130627103722.322000+120  6/27/2013 9:37:22 PM
pc3   20130627103703.530000+120  6/27/2013 9:37:03 PM

让我们看看最后一列,现在我们能够确定有问题的机器上的时间是正确的,是吗?

错了!请在仔细看看结果输出的list。

你发现什么异常吗?大家可能会注意到,在PC1和PC2中间有一个小时的时差,是在LocalDateTime得到的和9VS10。

我我印象中这样应该反生在远程计算机 DMTF转换,但显然这是不对的。

通过ETS(扩展类型系统)来用于计算属性的方法参数:ConvertToDateTime,

我们脚本中应该具有:[System.Management.ManagementDateTimeconverter] :: ToDateTime。

MSDN中的方法描述:将一个给定的的DMTF日期和时间为DateTime。返回的DateTime将是该系统在目前的时区。 

这就提出了一个问题:这个方法用之后得到的是当前时区的远程计算机或者执行脚本的机器的时区吗?

不支持远程连接ToDateTime方法转换,所以只能在本地完成。没有人真正检查LocalDateTime的价值,我一直以来计算用的是的ConvertToDateTime方法。

现在,我们知道使用LocalDateTime价值,来写出脚本,进行计算机上面的时间转换(Win32_LocalTime类支持XP / Windows Server 2003和以上):

1
2
3
4
5
6
7
PS> $lt Get-WmiObject -Class Win32_LocalTime -ComputerName pc1
PS> Get-Date -Year $lt.Year -Month $lt.Month -Day $lt.Day -Hour $lt.Hour -Minute `
              $lt.Minute -Second $lt.Second
Thursday, June 27, 2013 21:37:10 AM
or
PS> [datetime]::ParseExact($lt.split('.')[0],'yyyyMMddHHmmss',$null)
Thursday, June 27, 2011 21:37:10 AM



谢谢大家,今天事情有点忙,更新慢一点。




     本文转自cantgis 51CTO博客,原文链接:http://blog.51cto.com/cantgis/1231246,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值