我通过Powershell Remoting连接到远程计算机,并尝试在特定日期时间之后检索事件日志条目。问题是我从不确定服务器所在的时区甚至是什么语言环境......我的“after”参数是UTC。找到并将正确的时间戳传递给Get-EventLog函数的最有效方法是什么,然后检索带有UTC时间戳的日志实体?
这是一个代码示例。 “after”参数具有基于UTC的日期。
using (var cmd = PowerShell.Create().AddCommand("get-eventlog"))
{
cmd.RunspacePool = pool;
cmd.AddParameter("-LogName", logName);
cmd.AddParameter("-After", after);
var result = cmd.Invoke();
foreach (var sample in result.Where(n => n.Properties != null && n.Properties.Any()))
{
var dentry = sample as dynamic;
var newEntry =
new PowershellEventLogEntry
{
Channel = logName,
Category = dentry.Category,
CategoryNumber = dentry.CategoryNumber,
Data = dentry.Data,
EntryType = dentry.EntryType,
EventId = dentry.EventId,
MachineName = dentry.MachineName,
Message = dentry.Message,
Source = dentry.Source,
Timestamp = dentry.TimeGenerated
};
答案 0 :(得分:1)
您可以使用DateTime对象上的ToUniversalTime和ToLocalTime方法在两者之间进行转换。