# encoding: ascii # api: powershell # title: TimeSyn HyperV Settings # description: Check Hyper-V Settings for Time Synchronization Status from within a VM Hosted on a Hyper-V Host # version: 0.1 # type: class # author: Vinith Menon # license: CC0 # x-poshcode-id: 3708 # x-archived: 2012-10-26T14:50:57 # x-published: 2012-10-22T21:20:00 # # http://powershell-enthusiast.blogspot.in/2012/10/check-hyper-v-settings-for-time.html # <#Time Synchronization Status#> Write-Host "Time Synchronization Status" -ForegroundColor Yellow Write-Host "_______________________________" -ForegroundColor Yellow Write-Host $VMhost = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" | select -ExpandProperty physicalhostname $VirtualMachineName = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" | select -ExpandProperty VirtualMachineName $session = New-PSSession -ComputerName $vmhost Invoke-Command -Session $session { param($vmname) $MgmtSvc = gwmi -namespace root\virtualization MSVM_VirtualSystemManagementService $VM = gwmi -namespace root\virtualization MSVM_ComputerSystem |?{$_.elementname -match $vmname} $TimeSyncComponent = gwmi -query "associators of {$VM} where ResultClass = Msvm_TimeSyncComponent" -namespace root\virtualization $TimeSyncSetting = gwmi -query "associators of {$TimeSyncComponent} where ResultClass = Msvm_TimeSyncComponentSettingData" -namespace root\virtualization # Disable = 3; Enable = 2 if ($TimeSyncSetting.EnabledState -eq 3 ){ Write-Host "Time Synchronzation Disabled" -ForegroundColor Green } else{ Write-Host "Time Synchronzation Enabled" -ForegroundColor Red } } -Args $VirtualMachineName Get-PSSession | Remove-PSSession