【问题标题】:Getting back TIME information by Powershell通过 Powershell 取回 TIME 信息
【发布时间】:2012-11-22 00:33:48
【问题描述】:

我有以下代码查看操作系统系统并根据构建类型返回它们指向的 NTP 服务器。

但是,它在匹配 7601 (Windows Server 2008 R2) 上运行良好 - 但是,对于 Windows Server 2003 服务器,我总是会收到错误消息。对于 Windows Server 2003 服务器,您需要读取注册表项。

如果我在服务器上本地对注册表项执行相同的查询,它可以正常工作...尽管它会报告其他内容以及注册表项..

这是错误:

NTPSource                                                   Server
---------                                                   ------
The following error occurred: The procedure number is ou... SERV1

代码如下:

$servers = @('SERV1','SERV2')
$version = Get-WmiObject Win32_OperatingSystem -computer $servers | select buildnumber

foreach ($server in $servers){

    if ($version -match '7601')
    {
    $ntps = w32tm /query /computer:$server /source
    new-object psobject -property @{
    Server = $Server
    NTPSource = $ntps
    }
    }
elseif($version -match '3790')
{

    Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Parameters' -Name Type

}   
}

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

    我个人使用它来检索 NTP 服务器(Windows Server 2000/2003/2008/2008r2):

    $Servers = (gc Computers.txt) # list of servers name
    $pw = Get-Credential 
    $HKLM = 2147483650
    foreach( $Server in $Servers )
    {
    $reg = GWMI -list -namespace root\default -computername $server -Credential $pw | 
           where-object { $_.name -eq "StdRegProv" }
    $key = $reg.GetStringValue($HKLM,"SYSTEM\CurrentControlSet\Services\W32Time\Parameters","NtpServer")
    
    write-host "$server `t$($key.svalue)"
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2012-02-07
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多