Tag: wmi

WMI“安装”查询不同于添加/删除程序列表?

尝试使用WMI获取Windows XP安装程序的列表。 用wmic,我试过了: wmic /output:c:\ProgramList.txt product get name,version 我列出了很多已安装的程序,但是在清除了“添加/删除程序”显示的列表之后,我看到在“添加/删除程序”的GUI中列出的程序比在WMI查询中列出的要多得多。 是否有另一个WMI查询我需要用来获取其余的程序安装? 还是有其他地方我需要找其余的rest吗? 此外,有两个已安装的程序在WMI查询中列出不在添加/删除程序中。 任何想法为什么?

使用Windows服务和c#检测USB驱动器插入和删除

考虑制作USB分布式应用程序的可能性 将自动启动插入USB棒和closures时删除棒 将使用.Net和C#。 寻找build议如何处理这个使用C#? 更新:两个可能的解决scheme实现这个服务。 – 重写WndProc 要么 – 使用ManagementEventWatcher的WMI查询

生成一个唯一的机器ID

我需要编写一个函数来生成一个对于运行Windows操作系统的机器来说唯一的id。 目前,我正在使用WMI来查询各种硬件参数并将它们连接在一起,并将它们散列以获得唯一的ID。 我的问题是,我应该使用什么build议的参数? 目前,我正在使用bios \ cpu \ disk数据的组合来生成唯一的ID。 如果每个度量都有多个结果,那么我使用第一个结果。 但是,我遇到了一个问题,双启动到两个不同的Windows操作系统的计算机在每个操作系统上生成不同的站点代码,这应该不会发生。 作为参考,这些是我目前使用的指标: Win32_Processor:UniqueID,ProcessorID,Name,Manufacturer,MaxClockSpeed Win32_BIOS:Manufacturer Win32_BIOS:SMBIOSBIOSVersion,IdentificationCode,SerialNumber,ReleaseDate,Version Win32_DiskDrive:Model, Manufacturer, Signature, TotalHeads Win32_BaseBoard:Model, Manufacturer, Name, SerialNumber Win32_VideoController:DriverVersion, Name

WIN32_Processor :: ProcessorId对于所有计算机都是唯一的

我想用一些许可制度独一无二的东西。 我决定从Win32_Processorpipe理类使用ProcessorID。 我尝试过两种不同的处理器types相同的系统。 它显示两个系统相同的processorID。 我正在使用这个代码 public static String GetCPUId() { String processorID = ""; ManagementObjectSearcher searcher = new ManagementObjectSearcher( "Select * FROM WIN32_Processor"); ManagementObjectCollection mObject = searcher.Get(); foreach (ManagementObject obj in mObject) { processorID = obj["ProcessorId"].ToString(); } return processorID; }

尝试使用WMI将文件从一台XP PC复制到另一台,因为RPC和UNC不可用

我是VBScript的新手。 我无法find一种方法来从VBS中使用WMI将文件从一台XP主机复制到另一台主机。 复制文件(RPC – 远程过程调用,SMB,UNC)的常用方法对于几台主机不可用,但是WMI可用于所有主机,并且需要将文件从pipe理主机复制到目标Windows主机。 我以为我会find一些示例代码,但我没有发现任何信息。 还没有发现任何告诉我不能做的事情。 源文件是我的pipe理员电脑的“F:\ TEMP”文件夹中的可执行文件和“test1.txt”。 我想将文件放在远程主机HOST1的“C:\ TEMP”文件夹中。 我在两台主机上都有完整的pipe理员权限。 这是我迄今为止,只是为了一个文件(保持简单的testing): strComputer = "HOST1" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colFiles = objWMIService.ExecQuery( _ "Select * from Win32_Directory where Name = 'c:\\temp'") For Each objFiles in colFiles errResults = objFolder.Copy("f:\temp\test1.txt") Wscript.Echo errResults Next

如何获得CPU温度?

我需要为我正在开发的应用程序收集一些系统信息。 可用内存和CPU负载很容易使用C#。 不幸的是,CPU温度并不那么容易。 我曾尝试使用WMI,但我无法使用任何东西 Win32_TemperatureProbe 要么 MSAcpi_ThermalZoneTemperature 有没有人处理过这个问题? 我想知道如何监测程序,如SiSoftware桑德拉,可以得到这些信息… 以防有人感兴趣,下面是这个类的代码: public class SystemInformation { private System.Diagnostics.PerformanceCounter m_memoryCounter; private System.Diagnostics.PerformanceCounter m_CPUCounter; public SystemInformation() { m_memoryCounter = new System.Diagnostics.PerformanceCounter(); m_memoryCounter.CategoryName = "Memory"; m_memoryCounter.CounterName = "Available MBytes"; m_CPUCounter = new System.Diagnostics.PerformanceCounter(); m_CPUCounter.CategoryName = "Processor"; m_CPUCounter.CounterName = "% Processor Time"; m_CPUCounter.InstanceName = "_Total"; } public float GetAvailableMemory() { return […]