草庐IT

c# - 高性能事件日志

所以我一直在尝试各种方法来批量获取事件日志数据(1000多条记录/秒)。我需要一些可以过滤掉旧日志的东西,现在我存储最后记录的事件记录ID并检索事件ID大于该记录的所有记录....我已经尝试过EventLogQuery/EventLogReader,这工作速度很快,除非我想提取消息数据,为了获得安全日志的格式化消息,我需要调用EventLogRecord.FormattedMessage(),这使我的日志速度大约为150/秒,易于格式化的日志,复杂的日志更糟。我试过System.Diagnoistics.EventLog,这不允许我构建过滤器,所以每次我运行它时它都必须加载所有事件日志

c# - 如何从 ServiceController 确定 Windows.Diagnostics.Process

这是我的第一篇文章,所以让我先打个招呼吧!我正在编写一个Windows服务来监视同一台服务器上许多其他Windows服务的运行状态。我想扩展应用程序以打印服务的一些内存统计信息,但我无法弄清楚如何从特定的ServiceController对象映射到其关联的Diagnostics.Process对象,我认为我需要确定内存状态。我发现了如何从ServiceController映射到原始图像名称,但我正在监视的许多服务都是从同一图像启动的,因此这不足以确定进程。有谁知道如何从给定的ServiceController获取Process对象?也许通过确定服务的PID?或者是否有人对此问题有其他解

c# - 在 C# 中确定操作系统和处理器类型

我想检查我使用的操作系统类型和处理器类型。这应该检查运行时。我尝试使用System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")和System.OperatingSystemosInfo2=System.Environment.OSVersion;Console.WriteLine(osInfo2.ToString());但这只是VS运行的环境。有人告诉我使用WMI来检查它,但我不知道如何做。有人可以帮我吗? 最佳答案 检索操作系统信息:varwmi=new

c# - 这个时间值是什么格式?

我有一个WMI查询,它以这种格式指定时间'20090219000000.000000+480'谁能告诉我这是什么格式,.NET是否有任何内置功能可以处理它?编辑此时间值来self发现的示例查询。我不知道使用什么时间值来生成它。我只需要能够将时间值转换为这种格式。编辑2我发现这次是在CIM_DATETIME格式。 最佳答案 正如其他人所建议的那样,该字符串是DATETIMEMOFdatatype的一个示例.它是一个固定长度的字符串,您可以找到有关其结构的详细信息here..Net使用System.Managementnamespace

c# - "The RPC server is unavailable"使用 WMI 查询

我有一个运行Server2008R2的网络服务器工作组,我试图在其中管理一个脚本来检查所有服务器的磁盘空间。我在几个月前设置服务器时设置了它,我相信它运行良好。现在我去检查,它给出了一个错误,说“RPC服务器不可用”。该脚本是一个C#ASP.NET页面,尽管我在PowerShell中尝试过类似的调用,但它给出了相同的错误。该脚本可以很好地访问本地计算机的信息,但无法访问远程服务器信息。在过去的几个小时里,我一直在挖掘我能找到的所有东西,但没有任何效果。我已经为WMI(远程和本地)、DCOM(远程和本地)以及我正在访问的计算机的整个驱动器设置了权限。我使用了计算机名称、IP地址、完整的计

c# - 检查机器上的第三方防火墙

我正在检查防火墙。以下代码很容易检查默认Windows防火墙的状态:INetFwMgrmanager=GetFireWallManager();boolisFirewallEnabled=manager.LocalPolicy.CurrentProfile.FirewallEnabled;if(isFirewallEnabled==false){Console.WriteLine("Firewallisnotenabled.");}else{Consoe.WriteLine("Firewallisenabled.");}Console.ReadLine();privatestaticI

c# - 如何远程重启服务?

我可以从.net项目远程启动或停止服务。ConnectionOptionsoptions=newConnectionOptions();options.Username=@"192.168.36.22\test";options.Password="test";ManagementScopescope=newManagementScope(@"\\192.168.36.22\root\cimv2",options);scope.Connect();ManagementOperationObserverStop=newManagementOperationObserver();Stop.

c# - WMI 重启远程机器

我在一个旧线程上找到了这段代码来关闭本地机器:usingSystem.Management;voidShutdown(){ManagementBaseObjectmboShutdown=null;ManagementClassmcWin32=newManagementClass("Win32_OperatingSystem");mcWin32.Get();//Youcan'tshutdownwithoutsecurityprivilegesmcWin32.Scope.Options.EnablePrivileges=true;ManagementBaseObjectmboShutdow

c# - WMI:RPC 服务器不可用。 (HRESULT 异常:0x800706BA)尝试连接到远程机器时抛出

我正在使用以下代码通过WMI连接到远程计算机:ConnectionOptionsconnOptions=newConnectionOptions();connOptions.Impersonation=ImpersonationLevel.Impersonate;connOptions.EnablePrivileges=true;connOptions.Username="admin";connOptions.Password="password";ManagementScopescope=newManagementScope(String.Format(@"\\{0}\ROOT\CI

c# - 如何识别USB插槽中插入的是什么设备?

我想检测用户何时插入或移除USB声卡。当这种情况发生时,我已经设法真正捕捉到了事件,但我无法分辨插入的是什么。我尝试了一种基于this的方法问题:stringquery="SELECT*FROM__InstanceCreationEvent"+"WITHIN2"+"WHERETargetInstanceISA'Win32_PnPEntity'";varwatcher=newManagementEventWatcher(query);watcher.EventArrived+=newEventArrivedEventHandler(watcher_EventArrived);watche