2013-05-21 4 views
0

Я ищу простой способ получить дату и время сервера esx в C#. Это должно быть время аппаратного обеспечения, поэтому я думаю, что это время BIOS. Когда VM перезагружается, он обычно получает время BIOS. Это то время, которое я хочу как объект datetime.Получить Datetime сервера ESX в C#

Я думаю, что я должен использовать что-то вроде этого:

private DateTime getTimeESX(Machine machine) 
{ 
    DateTime time = new DateTime(); 

    Runspace runSpace = RunspaceFactory.CreateRunspace(); 
    runSpace.Open(); 
    Pipeline pipeline = runSpace.CreatePipeline(); 

    Command getEsxCli = new Command("Get-EsxCli"); 
    getEsxCli.Parameters.Add("Server", machine.IP); 
    Command getSysTime = new Command("system time get"); 
    pipeline.Commands.Add(getEsxCli); 
    pipeline.Commands.Add(getSysTime); 

    Collection<PSObject> output = pipeline.Invoke(); 
    foreach (PSObject psObject in output) 
    { 
     time = (DateTime)psObject.BaseObject; 
    } 
    return time; 
} 

ли кто-то идея, как я мог бы легко проверить это? У меня нет ESX, работающего в моей сети.

+0

Просьба уточнить. Вы обращаетесь через сеть к серверу ESX? Или вы хотите аппаратное время ОС хоста от кода, запущенного на виртуальной машине? Или что-то другое? Если вам просто нужно машинное время кода, в котором вы работаете, ESX не имеет к этому никакого отношения. Просьба также предоставить любые образцы кода, которые вы пытались не работать, или что вы можете ожидать от работы, даже если он не существует в SDK. Это поможет прояснить ваш вопрос. –

+0

Идея состоит в том, чтобы отслеживать и регистрировать временные метки всех важнейших устройств в сети, таких как рабочие станции, сервер ntp, esx и другие. Я хорошо осведомлен о том, что я могу обойти каждую виртуальную машину отдельно, чтобы получить метку времени. Но мне нужна метка времени аппаратной машины esx. До сих пор у меня есть только базовый метод: –

+0

с использованием VMware.Vim; private DateTime getTimeESX (строка ip, строка пользователя, строка pass) { DateTime time = new DateTime(); VimClient c = новый VimClient(); ServiceContent sc = c.Connect (ip); UserSession us = c.Login (пользователь, пароль); время возврата; } С помощью этого кода я должен иметь возможность подключения к ESX, но я не знаю, какие команды использовать для получения метки времени .. ТНХ, Kenny –

ответ

1

Поскольку документы показывают все как командлеты Powershell, вам придется перевести это на C# самостоятельно. Но вы можете сделать следующее:

  • Получить EsxCli аксессор, используя Get-EsxCli
  • Используйте команду system time get.
+0

Thx много для вашей помощи! См. Править выше. Надеюсь, вы также сможете помочь с этим. –

 Смежные вопросы

  • Нет связанных вопросов^_^