403Webshell
Server IP : 123.56.80.60  /  Your IP : 216.73.216.78
Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev
System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586
User : SYSTEM ( 0)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Windows/diagnostics/system/WindowsUpdate/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Windows/diagnostics/system/WindowsUpdate/RC_DateTime.ps1
# Copyright ©, Microsoft Corporation. All rights reserved.
trap {break}

# Check whether the system time is accurate
# Function to parse the strip data with time server
function Parse-OffsetData($offsetData = $(throw "No offset data is specified"))
{
    if($offsetData -eq $null)
    {
        return $null
    }

    $result = @()
    [string]$pattern = "\d{2,}:\d{2}:\d{2},\W([+-]\d{2,})\.\d{7}s"
    $offsetData.GetEnumerator() | ForEach-Object {
        if(($_ -match $pattern) -and ($matches[1] -ne $null))
        {
            $result += [long]$matches[1]
        }
    }

    return $result
}

# Function to check whether the system time is accurate
function Test-Offset([int]$offset = $(throw "No offset is specified"))
{
    [int]$maxOffset = (5 * 60)
    return ([Math]::Abs($offset) -lt $maxOffset)
}

# Function to get time service status
function Get-ServiceStatus([string]$serviceName=$(throw "No service name is specified")) {
   [bool]$startService = $true

   [WMI]$timeService = @(Get-WmiObject -Query "Select * From Win32_Service Where Name = `"$serviceName`"")[0]
   if($null -ne $timeService) {
      [ServiceProcess.ServiceControllerStatus]$timeServicesStatus = (Get-Service $serviceName).Status
      if(([ServiceProcess.ServiceControllerStatus]::Stopped -eq $timeServicesStatus) -or ([ServiceProcess.ServiceControllerStatus]::StopPending -eq $timeServicesStatus)) {
         $startService = $false
      }
   }

   return $startService
}



# Function to check whether the system time is accurate
Function Check-TimeAccurateness([string]$timeServer = $(throw "No time source is specified"))
{
    [bool]$checked = $false
	
    if(-not[String]::IsNullOrEmpty($timeServer))
    {
        (ping.exe $timeServer /n 2) | Out-Null
        if($LASTEXITCODE -eq 0)
        {
            [int]$sampleCount = 1
            [DateTime]$accurateion = [DateTime]::Now

            $offsetData = (w32tm.exe /stripchart /computer:$timeServer /dataonly /samples:$sampleCount)
            (Parse-OffsetData $offsetData) | Foreach-Object {
                if(-not(Test-Offset $_))
                {
                    $timeDifference = $_
                    $accurateion = [DateTime]::Now.Add([TimeSpan]::FromSeconds($_))
                    $checked = $true
                    Update-DiagRootCause -id "RC_DateTime" -Detected $true -parameter @{'AccurateTime'=$accurateion.ToString()}
                } else {
                    Update-DiagRootCause -id "RC_DateTime" -Detected $false -parameter @{'AccurateTime'=$accurateion.ToString()}
                    $checked = $true
                }
            }
        }
    }

    return $checked
}

# function to get the startup type of a serivce
function GetServiceStartupType([string]$serviceName) {
    [string]$state = "Disabled"

    [WMI]$service = @(Get-WmiObject -Query "Select * From Win32_Service Where Name = `"$serviceName`"")[0]
    if($null -ne $service) {
        $state = $service.StartMode
    }

    return $state
}


if("Disabled" -eq (GetServiceStartupType "W32time")) {
    return
}

[bool]$timeServiceStatus = Get-ServiceStatus "w32time"

try {
    if(-not($timeServiceStatus)) {
		
        Start-Service "w32time"
        WaitFor-ServiceStatus "w32time" ([ServiceProcess.ServiceControllerStatus]::Running)
    }
    [string]$timeServerInfo = (w32tm.exe /query /source)
    if($LASTEXITCODE -ne 0)
    {
        return
    }
    [string]$timeServer = $timeServerInfo.Split(',', [StringSplitOptions]::RemoveEmptyEntries)[0].Trim()
    if(-not(Check-TimeAccurateness $timeServer))
    {
        $timeServer = "time.windows.com"
        [bool]$checked = Check-TimeAccurateness $timeServer
        if(-not($checked)) {
            [DateTime]$accurateion = [DateTime]::Now
			Update-DiagRootCause -id "RC_DateTime" -Detected $false -parameter @{'AccurateTime'=$accurateion.ToString()} 
        }
    }
} finally {
    if(-not($timeServiceStatus)) {
        Stop-Service "w32time"
        WaitFor-ServiceStatus "w32time" ([ServiceProcess.ServiceControllerStatus]::Stopped)
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit