Синхронизирующее системное время к контроллеру домена с помощью кода.NET

Какой режим передачи FTP Вы используете (двоичный файл или ASCII?)? Я не на 100% уверен, но я думаю, вызываете ли Вы режим двоичного счета, у Вас не должно быть этой проблемы.

6
задан Community 23 May 2017 в 12:07
поделиться

4 ответа

Простой способ - запустить процесс и выполнить команду NET TIME (скопировано с http://blogs.msdn.com/sanket/archive/2006/11/02 /synchronizing-machine-time-with-domain-controller.aspx)

using System;
using System.Diagnostics;
class Program
{
    static void Main(string[] args)
    {
        Process netTime = new Process();

        netTime.StartInfo.FileName   = "NET.exe";
        netTime.StartInfo.Arguments = "TIME /domain:mydomainname /SET /Y";
        netTime.Start();
    }
}
17
ответ дан 8 December 2019 в 12:21
поделиться

В дополнение к другим ответам:

Вам следует серьезно подумать о том, чтобы сделать понятие «текущее время» каким-либо образом внедренным в вашу систему. Непосредственное чтение системных часов очень проблематично (даже при запуске приложения) именно потому, что это глобальное состояние.

2
ответ дан 8 December 2019 в 12:21
поделиться

Самый простой способ - использовать System.Diagnostics.Process для запуска команды net time с соответствующими параметрами для синхронизации с вашим DC.

Запустите это из командной строки, чтобы узнать, о чем я говорю:

net time /?
0
ответ дан 8 December 2019 в 12:21
поделиться

Это можно сделать с помощью инструмента командной строки w32tm:

w32tm /resync 

Это не C # и не .NET, но, надеюсь, он соответствует вашим требованиям.

0
ответ дан 8 December 2019 в 12:21
поделиться