如何获取windows网域下的计算机时间

需求:本地时间为域时间。想要获取其他windows计算机的时间与网域时间相比较并存入数据库。


编辑文件C:\IPList.txt

172.22.22.21:CNServer01
172.22.22.22:CNServer02

PowerShell脚本

$IPList = Get-Content "C:\IPList.txt"

$sqlServer = "DBSERVER"
$database = "TEST"
$UserName= 'test'
$Password= 'test'

$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$cnnString = "Server=$sqlServer;Database=$database;User ID=$UserName;Password=$Password;Trusted_Connection=False"
$sqlConnection.ConnectionString = $cnnString
$sqlCmd =New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.Connection = $sqlConnection
$sqlCmd.Connection.Open()

foreach ($Server in $IPList)
{
try{
$IP=($Server -Split ":")[0]
$Name=($Server -Split ":")[1]
$info=GWmi win32_localtime -computername $IP
$DateTime=Get-Date
$dt= New-Object DateTime $info.year,$info.month,$info.day,$info.hour,$info.minute,$info.second 
$diff=(New-TimeSpan $DateTime -end $dt).TotalSeconds
$time1=$DateTime.ToString("yyyy-MM-dd HH:mm:ss")
$time2= $dt.ToString("yyyy-MM-dd HH:mm:ss")
$sqlCmd.CommandText = "INSERT INTO [dbo].[Time] (ServerName ,ServerTime ,DomainTime ,Diff) VALUES ('$Name','$time1','$time2','$diff')"
$sqlCmd.ExecuteNonQuery()
}
catch [exception]
{
$ErrMsg=$_.Exception.Message
print $ErrMsg
continue
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值