我正在寻找一种简单的方法来获取c#中esx服务器的日期和时间。 这必须是硬件时间,所以我认为这是BIOS时间。当VM重新启动时,它通常会获得BIOS时间。这是我想要作为日期时间对象的时间。
我想我应该使用这样的东西:
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 :(得分:1)
由于文档将所有内容显示为Powershell cmdlet,因此您必须自己将其转换为C#。但是你可以做到以下几点:
Get-EsxCli
EsxCli
访问者
system time get
命令。