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

简介:

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

我们的服务器和用户的计算机经常会不准确,其中的原因是时间偏移,有人告诉我,一些工作站的时钟慢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,如需转载请自行联系原作者



相关文章
|
SQL 机器学习/深度学习 关系型数据库
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
198 0
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
|
Web App开发 前端开发 JavaScript
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
|
Java Shell 程序员
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
450 0
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
|
关系型数据库 MySQL Shell
使用 Shell 脚本对 MySQL 数据库进行远程备份
使用 Shell 脚本对 MySQL 数据库进行远程备份
462 0
使用 Shell 脚本对 MySQL 数据库进行远程备份
|
Shell Linux 网络安全
linux centos 远程无法登录自动检测shell脚本
远程无法登录,自动化检测脚本
347 0
|
Shell 数据安全/隐私保护