0
我正在尋找一種簡單的方法來獲取esx服務器在c#中的日期和時間。 這必須是硬件時間,所以我認爲這是BIOS時間。當虛擬機重新啓動時,它通常會獲得BIOS時間。那是我想作爲日期時間對象的時間。在C#中獲取ESX服務器的日期時間#
我想我應該用這樣的:
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。
請詳細說明。您是否將網絡擴展到ESX服務器?還是你想要在虛擬機中運行代碼的主機操作系統的硬件時間?或者是其他東西?如果你只是想要運行代碼的機器時間,那麼ESX與它無關。還請提供任何代碼示例,說明您嘗試過的方法無效,或者您可能期望的工作 - 即使它不在SDK中。這將有助於澄清你的問題。 –
這個想法是監視和記錄網絡中所有關鍵設備的時間戳,例如工作站,ntp服務器,esx等。我很清楚這樣一個事實,即我可以分別訪問每個虛擬機以獲取時間戳。但我想要esx硬件機器本身的時間戳。到目前爲止,我只有基本的方法: –
使用VMware.Vim; 私人的DateTime getTimeESX(串IP,用戶的字符串,字符串通) { 的DateTime時間=新的DateTime(); VimClient c = new VimClient(); ServiceContent sc = c.Connect(ip); UserSession us = c.Login(user,pass); 返回時間; } 有了這個代碼,我應該能夠連接到ESX,但我不知道用接收時間戳什麼命令.. THX, 肯尼 –