2015-07-27 4 views
0

Я хочу просмотреть все пользовательские источники просмотра событий на сервере. Есть ли способ, которым я мог бы найти их, запустив скрипт вместо того, чтобы проходить через все журналы событий.Есть ли способ загрузить пользовательские источники просмотра событий на ПК/сервере?

Можно с уверенностью предположить, что все пользовательские источники будут находиться под Приложением.

В идеале сценарий может быть приглашением cmd или C#. Если этого не может быть, я рад принять решение на другом языке, если он не требует, чтобы я устанавливал что-либо новое для запуска его на сервере 2008 R2.

Благодаря

ответ

1

Это C# программа записывает на консоль все различные источники в журнале событий приложений:

using System; 
using System.Linq; 
using System.Diagnostics; 

public static class Program 
{ 
    static void Main(string[] args) 
    { 
     new EventLog("Application") 
      .Entries 
      .Cast<EventLogEntry>() 
      .Select(entry => entry.Source) 
      .Distinct() 
      .ToList() 
      .ForEach(source => Console.WriteLine(source)); 
    } 
} 

EDIT:

Вы можете найти все источники зарегистрированы в случае заявки войдите в реестр под ключ «HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ Application " (с использованием, например, смерзаться). Для того, чтобы отобразить их в консоли, используйте эту программу:

using System; 
using System.Linq; 
using Microsoft.Win32; 

public static class Program 
{ 
static void Main(string[] args) 
{ 
    Registry 
     .LocalMachine 
     .OpenSubKey(@"SYSTEM\CurrentControlSet\Services\EventLog\Application") 
     .GetSubKeyNames() 
     .ToList() 
     .ForEach(source => Console.WriteLine(source)); 
    } 
} 

К сожалению, я не знаю, как отличить предустановленные и пользовательские источники (эта информация не кажется, присутствуем в реестре, и я сомневаюсь, что такая информация доступен).


EDIT2: я взял свежую установку сервера Windows 2008 R2, из списка предустановленных источников и отредактированной программы не показывать источники, которые в этом списке. Таким образом, теперь отображаются только настраиваемые источники:

using System; 
using System.Linq; 
using Microsoft.Win32; 

public static class Program 
{ 
    static string[] PreinstalledSources = new[] { ".NET Runtime", ".NET Runtime Optimization Service", "Application", "Application Error", "Application Hang", "Application Management", "Application-Addon-Event-Provider", "ASP.NET 2.0.50727.0", "ASP.NET 4.0.30319.0", "AutoEnrollment", "CardSpace 3.0.0.0", "CardSpace 4.0.0.0", "CEPSvc", "CertCli", "CertEnroll", "CESSvc", "Chkdsk", "Citrix Xen Guest Agent", "COM", "COM+", "Customer Experience Improvement Program", "Desktop Window Manager", "DiskQuota", "Ec2Config", "ESENT", "EventSystem", "Folder Redirection", "Group Policy", "Group Policy Applications", "Group Policy Client", "Group Policy Data Sources", "Group Policy Device Settings", "Group Policy Drive Maps", "Group Policy Environment", "Group Policy Files", "Group Policy Folder Options", "Group Policy Folders", "Group Policy Ini Files", "Group Policy Internet Settings", "Group Policy Local Users and Groups", "Group Policy Mail Profiles", "Group Policy Network Options", "Group Policy Network Shares", "Group Policy Power Options", "Group Policy Printers", "Group Policy Regional Options", "Group Policy Registry", "Group Policy Scheduled Tasks", "Group Policy Services", "Group Policy Shortcuts", "Group Policy Standard Edition", "Group Policy Start Menu Settings", "Interactive Services detection", "ipmiprv", "LoadPerf", "Microsoft-Windows-Application-Experience", "Microsoft-Windows-ApplicationExperienceInfrastructure", "Microsoft-Windows-Audio", "Microsoft-Windows-CAPI2", "Microsoft-Windows-CertificateServicesClient", "Microsoft-Windows-CertificateServicesClient-AutoEnrollment", "Microsoft-Windows-CertificateServicesClient-CertEnroll", "Microsoft-Windows-CertificateServicesClient-CredentialRoaming", "Microsoft-Windows-CertificationAuthorityClient-CertCli", "Microsoft-Windows-Crypto-RNG", "Microsoft-Windows-Defrag", "Microsoft-Windows-DirectShow-Core", "Microsoft-Windows-DirectShow-KernelSupport", "Microsoft-Windows-EapHost", "Microsoft-Windows-EFS", "Microsoft-Windows-EventCollector", "Microsoft-Windows-Folder Redirection", "Microsoft-Windows-LoadPerf", "Microsoft-Windows-PerfCtrs", "Microsoft-Windows-PerfNet", "Microsoft-Windows-PerfOS", "Microsoft-Windows-PerfProc", "Microsoft-Windows-propsys", "Microsoft-Windows-RemoteApp and Desktop Connections", "Microsoft-Windows-RestartManager", "Microsoft-Windows-RPC-Events", "Microsoft-Windows-SoftwareRestrictionPolicies", "Microsoft-Windows-Spell-Checking", "Microsoft-Windows-SpellChecker", "Microsoft-Windows-TerminalServices-ClientActiveXCore", "Microsoft-Windows-User Profiles General", "Microsoft-Windows-User Profiles Service", "Microsoft-Windows-Video-For-Windows", "Microsoft-Windows-Winsrv", "Microsoft-Windows-WMI", "Microsoft-Windows-XWizards", "Microsoft.Transactions.Bridge 3.0.0.0", "Microsoft.Transactions.Bridge 4.0.0.0", "MSDTC", "MSDTC 2", "MSDTC Client", "MSDTC Client 2", "MsiInstaller", "PDH", "PerfCtrs", "PerfDisk", "Perflib", "PerfNet", "PerfOs", "PerfProc", "Process Exit Monitor", "Profsvc", "RasClient", "SceCli", "SceSrv", "SCW", "SCW Analysis", "ServiceModel Audit 3.0.0.0", "ServiceModel Audit 4.0.0.0", "SideBySide", "Software Installation", "Software Protection Platform Service", "Standard TCP/IP Port", "System.IdentityModel 3.0.0.0", "System.IdentityModel 4.0.0.0", "System.IO.Log 3.0.0.0", "System.IO.Log 4.0.0.0", "System.Runtime.Serialization 3.0.0.0", "System.Runtime.Serialization 4.0.0.0", "System.ServiceModel 3.0.0.0", "System.ServiceModel 4.0.0.0", "usbperf", "Userenv", "VBRuntime", "VSS", "VSSetup", "WerSvc", "Windows Error Reporting", "Wininit", "Winlogon", "WinMgmt", "Wlclntfy", "WMI.NET Provider Extension", "Wow64 Emulation Layer", "WSH", "xensvc" }; 

    static void Main(string[] args) 
    { 
     Registry 
      .LocalMachine 
      .OpenSubKey(@"SYSTEM\CurrentControlSet\Services\EventLog\Application") 
      .GetSubKeyNames() 
      .Except(PreinstalledSources, StringComparer.InvariantCulture) 
      .ToList() 
      .ForEach(source => Console.WriteLine(source)); 
    } 
} 
+0

Спасибо Nuf, но не будет ли это писать имя источника, если есть журнал под этим конкретным именем источника? иначе он проигнорировал бы это. Я хочу указать все пользовательские исходные имена, установленные на сервере (независимо от того, есть ли в нем запись журнала или нет). – Idothisallday

+0

@Idothisallday: Вам нужен список всех источников, зарегистрированных в журнале событий приложений, независимо от того, существует ли в настоящее время запись из этого источника? –

+0

Да и в идеале без предустановленных окон. Если я могу только перечислить пользовательские (установленные приложениями, отличными от окон o/s), это было бы здорово. – Idothisallday