2014-01-06 58 views
1

我通過Powershell Remoting連接到遠程計算機,並試圖在特定日期時間後檢索事件日誌條目。問題是,我永遠不能確定服務器居住在什麼時區,甚至是什麼區域......我的「之後」參數是UTC。找到並將正確的時間戳傳遞給Get-EventLog函數最有效的方法是什麼?之後,使用UTC時間戳檢索日誌實體?從C#處理Get-EventLog和時區

這是一個代碼示例。 「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 
            }; 

回答

1

您可以使用DateTime對象上的ToUniversalTime和ToLocalTime方法在兩者之間進行轉換。

+0

謝謝,由於某種原因,我認爲時間戳錯了,但它們是正確的,只需要重新轉換爲UTC – Igorek