私はOSシステムを見て、ビルドタイプに基づいてそれらが指す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
}
}