原文转载:http://blog.csdn.net/da_keng/article/details/50589145
纯属转载,复制过来方便编程时寻找。感谢作者:I-Awakening
复制前补充:
在刚学C#,用ManagementObjectSearcher 竟然不能解析到头文件,需要手动 Add Referance..
前言: 我们在很多情况下想要获得计算机的硬件或操作系统的信息,比如获得CPU序列号给自己的软件添加机器码锁绑定指定电脑。又或者想要获得硬盘分区,声卡显卡等信息。
开篇:
我们用到的主要类是ManagementObjectSearcher,该类在System.Management命名空间下。 有时候我们可以通过Environment获得一些简单的系统信息。 如:Environment.MachineName;获得计算机名。 Environment.UserName;获得操作系统登录用户名。 不过在这篇文章中主要讨论ManagementObjectSearcher获取计算机硬件及操作系统的信息。
用法步骤:
添加引用:System.Management引入命名空间:using System.Management;创建ManagementObjectSearcher对象 anagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + Key); 其中的key见下面key列表:通过searcher.Get()获得ManagementObjectCollection集合遍历ManagementObjectCollection集合获得ManagementObject通过managementObject[name]或ManagementObject.GetPropertyValue(name)获得想要的属性 若不知道这里的name该写什么可以遍历打印一下:
foreach (var property
in managementObject
.Properties)
{
Console
.WriteLine(property
.Name+
":"+property
.Value)
}
示例:
public string GetCPUSerialNumber()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(
"Select * From Win32_Processor");
string sCPUSerialNumber =
"";
foreach (ManagementObject mo
in searcher.Get())
{
sCPUSerialNumber = mo[
"ProcessorId"].ToString().Trim();
break;
}
return sCPUSerialNumber;
}
catch
{
return "";
}
}
/获取主板序列号
public string GetBIOSSerialNumber()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(
"Select * From Win32_BIOS");
string sBIOSSerialNumber =
"";
foreach (ManagementObject mo
in searcher.Get())
{
sBIOSSerialNumber = mo.GetPropertyValue(
"SerialNumber").ToString().Trim();
break;
}
return sBIOSSerialNumber;
}
catch
{
return "";
}
}
public string GetHardDiskSerialNumber()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(
"SELECT * FROM Win32_PhysicalMedia");
string sHardDiskSerialNumber =
"";
foreach (ManagementObject mo
in searcher.Get())
{
sHardDiskSerialNumber = mo[
"SerialNumber"].ToString().Trim();
break;
}
return sHardDiskSerialNumber;
}
catch
{
return "";
}
}
public string GetNetCardMACAddress()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(
"SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
string NetCardMACAddress =
"";
foreach (ManagementObject mo
in searcher.Get())
{
NetCardMACAddress = mo[
"MACAddress"].ToString().Trim();
break;
}
return NetCardMACAddress;
}
catch
{
return "";
}
}
常用Key值:
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(
"select * from " + Key);
Win32_Processor,
Win32_PhysicalMemory,
Win32_Keyboard,
Win32_PointingDevice,
Win32_FloppyDrive,
Win32_DiskDrive,
Win32_CDROMDrive,
Win32_BaseBoard,
Win32_BIOS,
Win32_ParallelPort,
Win32_SerialPort,
Win32_SerialPortConfiguration,
Win32_SoundDevice,
Win32_SystemSlot,
Win32_USBController,
Win32_NetworkAdapter,
Win32_NetworkAdapterConfiguration,
Win32_Printer,
Win32_PrinterConfiguration,
Win32_PrintJob,
Win32_TCPIPPrinterPort,
Win32_POTSModem,
Win32_POTSModemToSerialPort,
Win32_DesktopMonitor,
Win32_DisplayConfiguration,
Win32_DisplayControllerConfiguration,
Win32_VideoController,
Win32_VideoSettings,
Win32_TimeZone,
Win32_SystemDriver,
Win32_DiskPartition,
Win32_LogicalDisk,
Win32_LogicalDiskToPartition,
Win32_LogicalMemoryConfiguration,
Win32_PageFile,
Win32_PageFileSetting,
Win32_BootConfiguration,
Win32_ComputerSystem,
Win32_OperatingSystem,
Win32_StartupCommand,
Win32_Service,
Win32_Group,
Win32_GroupUser,
Win32_UserAccount,
Win32_Process,
Win32_Thread,
Win32_Share,
Win32_NetworkClient,
Win32_NetworkProtocol,
所有Key:
W
in32_1394Controller
W
in32_1394ControllerDevice
W
in32_Account
W
in32_AccountSID
W
in32_ACE
W
in32_ActionCheck
W
in32_AllocatedResource
W
in32_ApplicationCommandLine
W
in32_ApplicationService
W
in32_AssociatedBattery
W
in32_AssociatedProcessorMemory
W
in32_BaseBoard
W
in32_BaseService
W
in32_Battery
W
in32_Binary
W
in32_BindImageAction
W
in32_BIOS
W
in32_BootConfiguration
W
in32_Bus
W
in32_CacheMemory
W
in32_CDROMDrive
W
in32_CheckCheck
W
in32_CIMLogicalDeviceCIMDataFile
W
in32_ClassicCOMApplicationClasses
W
in32_ClassicCOMClass
W
in32_ClassicCOMClassSetting
W
in32_ClassicCOMClassSettings
W
in32_ClassInfoAction
W
in32_ClientApplicationSetting
W
in32_CodecFile
W
in32_COMApplication
W
in32_COMApplicationClasses
W
in32_COMApplicationSettings
W
in32_COMClass
W
in32_ComClassAutoEmulator
W
in32_ComClassEmulator
W
in32_CommandLineAccess
W
in32_ComponentCategory
W
in32_ComputerSystem
W
in32_ComputerSystemProcessor
W
in32_ComputerSystemProduct
W
in32_COMSetting
W
in32_Condition
W
in32_CreateFolderAction
W
in32_CurrentProbe
W
in32_DCOMApplication
W
in32_DCOMApplicationAccessAllowedSetting
W
in32_DCOMApplicationLaunchAllowedSetting
W
in32_DCOMApplicationSetting
W
in32_DependentService
W
in32_Desktop
W
in32_DesktopMonitor
W
in32_DeviceBus
W
in32_DeviceMemoryAddress
W
in32_DeviceSettings
W
in32_Directory
W
in32_DirectorySpecification
W
in32_DiskDrive
W
in32_DiskDriveToDiskPartition
W
in32_DiskPartition
W
in32_DisplayConfiguration
W
in32_DisplayControllerConfiguration
W
in32_DMAChannel
W
in32_DriverVXD
W
in32_DuplicateFileAction
W
in32_Environment
W
in32_EnvironmentSpecification
W
in32_ExtensionInfoAction
W
in32_Fan
W
in32_FileSpecification
W
in32_FloppyController
W
in32_FloppyDrive
W
in32_FontInfoAction
W
in32_Group
W
in32_GroupUser
W
in32_HeatPipe
W
in32_IDEController
W
in32_IDEControllerDevice
W
in32_ImplementedCategory
W
in32_InfraredDevice
W
in32_IniFileSpecification
W
in32_InstalledSoftwareElement
W
in32_IRQResource
W
in32_Keyboard
W
in32_LaunchCondition
W
in32_LoadOrderGroup
W
in32_LoadOrderGroupServiceDependencies
W
in32_LoadOrderGroupServiceMembers
W
in32_LogicalDisk
W
in32_LogicalDiskRootDirectory
W
in32_LogicalDiskToPartition
W
in32_LogicalFileAccess
W
in32_LogicalFileAuditing
W
in32_LogicalFileGroup
W
in32_LogicalFileOwner
W
in32_LogicalFileSecuritySetting
W
in32_LogicalMemoryConfiguration
W
in32_LogicalProgramGroup
W
in32_LogicalProgramGroupDirectory
W
in32_LogicalProgramGroupItem
W
in32_LogicalProgramGroupItemDataFile
W
in32_LogicalShareAccess
W
in32_LogicalShareAuditing
W
in32_LogicalShareSecuritySetting
W
in32_ManagedSystemElementResource
W
in32_MemoryArray
W
in32_MemoryArrayLocation
W
in32_MemoryDevice
W
in32_MemoryDeviceArray
W
in32_MemoryDeviceLocation
W
in32_MethodParameterClass
W
in32_MIMEInfoAction
W
in32_MotherboardDevice
W
in32_MoveFileAction
W
in32_MSIResource
W
in32_networkAdapter
W
in32_networkAdapterConfiguration
W
in32_networkAdapterSetting
W
in32_networkClient
W
in32_networkConnection
W
in32_networkLoginProfile
W
in32_networkProtocol
W
in32_NTEventlogFile
W
in32_NTLogEvent
W
in32_NTLogEventComputer
W
in32_NTLogEventLog
W
in32_NTLogEventUser
W
in32_ODBCAttribute
W
in32_ODBCDataSourceAttribute
W
in32_ODBCDataSourceSpecification
W
in32_ODBCDriverAttribute
W
in32_ODBCDriverSoftwareElement
W
in32_ODBCDriverSpecification
W
in32_ODBCSourceAttribute
W
in32_ODBCTranslatorSpecification
W
in32_OnBoardDevice
W
in32_OperatingSystem
W
in32_OperatingSystemQFE
W
in32_OSRecoveryConfiguration
W
in32_PageFile
W
in32_PageFileElementSetting
W
in32_PageFileSetting
W
in32_PageFileUsage
W
in32_ParallelPort
W
in32_Patch
W
in32_PatchFile
W
in32_PatchPackage
W
in32_PCMCIAController
W
in32_Perf
W
in32_PerfRawData
W
in32_PerfRawData_ASP_ActiveServerPages
W
in32_PerfRawData_ASPnet_114322_ASPnetAppsv114322
W
in32_PerfRawData_ASPnet_114322_ASPnetv114322
W
in32_PerfRawData_ASPnet_ASPnet
W
in32_PerfRawData_ASPnet_ASPnetApplications
W
in32_PerfRawData_IAS_IASAccountingClients
W
in32_PerfRawData_IAS_IASAccountingServer
W
in32_PerfRawData_IAS_IASAuthenticationClients
W
in32_PerfRawData_IAS_IASAuthenticationServer
W
in32_PerfRawData_InetInfo_InternetInformationServicesGlobal
W
in32_PerfRawData_MSDTC_DistributedTransactionCoordinator
W
in32_PerfRawData_MSFTPSVC_FTPService
W
in32_PerfRawData_MSSQLSERVER_SQLServerAccessMethods
W
in32_PerfRawData_MSSQLSERVER_SQLServerBackupDevice
W
in32_PerfRawData_MSSQLSERVER_SQLServerBufferManager
W
in32_PerfRawData_MSSQLSERVER_SQLServerBufferPartition
W
in32_PerfRawData_MSSQLSERVER_SQLServerCacheManager
W
in32_PerfRawData_MSSQLSERVER_SQLServerDatabases
W
in32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics
W
in32_PerfRawData_MSSQLSERVER_SQLServerLatches
W
in32_PerfRawData_MSSQLSERVER_SQLServerLocks
W
in32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager
W
in32_PerfRawData_MSSQLSERVER_SQLServerReplicationAgents
W
in32_PerfRawData_MSSQLSERVER_SQLServerReplicationDist
W
in32_PerfRawData_MSSQLSERVER_SQLServerReplicationLogreader
W
in32_PerfRawData_MSSQLSERVER_SQLServerReplicationMerge
W
in32_PerfRawData_MSSQLSERVER_SQLServerReplicationSnapshot
W
in32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics
W
in32_PerfRawData_MSSQLSERVER_SQLServerUserSettable
W
in32_PerfRawData_netFramework_netCLRExceptions
W
in32_PerfRawData_netFramework_netCLRInterop
W
in32_PerfRawData_netFramework_netCLRJit
W
in32_PerfRawData_netFramework_netCLRLoading
W
in32_PerfRawData_netFramework_netCLRLocksAndThreads
W
in32_PerfRawData_netFramework_netCLRMemory
W
in32_PerfRawData_netFramework_netCLRRemoting
W
in32_PerfRawData_netFramework_netCLRSecurity
W
in32_PerfRawData_Outlook_Outlook
W
in32_PerfRawData_PerfDisk_PhysicalDisk
W
in32_PerfRawData_Perfnet_Browser
W
in32_PerfRawData_Perfnet_Redirector
W
in32_PerfRawData_Perfnet_Server
W
in32_PerfRawData_Perfnet_ServerWorkQueues
W
in32_PerfRawData_PerfOS_Cache
W
in32_PerfRawData_PerfOS_Memory
W
in32_PerfRawData_PerfOS_Objects
W
in32_PerfRawData_PerfOS_PagingFile
W
in32_PerfRawData_PerfOS_Processor
W
in32_PerfRawData_PerfOS_System
W
in32_PerfRawData_PerfProc_FullImage_Costly
W
in32_PerfRawData_PerfProc_Image_Costly
W
in32_PerfRawData_PerfProc_JobObject
W
in32_PerfRawData_PerfProc_JobObjectDetails
W
in32_PerfRawData_PerfProc_Process
W
in32_PerfRawData_PerfProc_ProcessAddressSpace_Costly
W
in32_PerfRawData_PerfProc_Thread
W
in32_PerfRawData_PerfProc_ThreadDetails_Costly
W
in32_PerfRawData_RemoteAccess_RASPort
W
in32_PerfRawData_RemoteAccess_RASTotal
W
in32_PerfRawData_RSVP_ACSPerRSVPService
W
in32_PerfRawData_Spooler_PrintQueue
W
in32_PerfRawData_TapiSrv_Telephony
W
in32_PerfRawData_Tcpip_ICMP
W
in32_PerfRawData_Tcpip_IP
W
in32_PerfRawData_Tcpip_NBTConnection
W
in32_PerfRawData_Tcpip_networkInterface
W
in32_PerfRawData_Tcpip_TCP
W
in32_PerfRawData_Tcpip_UDP
W
in32_PerfRawData_W3SVC_WebService
W
in32_PhysicalMedia
W
in32_PhysicalMemory
W
in32_PhysicalMemoryArray
W
in32_PhysicalMemoryLocation
W
in32_PNPAllocatedResource
W
in32_PnPDevice
W
in32_PnPEntity
W
in32_PointingDevice
W
in32_PortableBattery
W
in32_PortConnector
W
in32_PortResource
W
in32_POTSModem
W
in32_POTSModemToSerialPort
W
in32_PowerManagementEvent
W
in32_Printer
W
in32_PrinterConfiguration
W
in32_PrinterController
W
in32_PrinterDriverDll
W
in32_PrinterSetting
W
in32_PrinterShare
W
in32_PrintJob
W
in32_PrivilegesStatus
W
in32_Process
W
in32_Processor
W
in32_ProcessStartup
W
in32_Product
W
in32_ProductCheck
W
in32_ProductResource
W
in32_ProductSoftwareFeatures
W
in32_ProgIDSpecification
W
in32_ProgramGroup
W
in32_ProgramGroupContents
W
in32_ProgramGroupOrItem
W
in32_Property
W
in32_ProtocolBinding
W
in32_PublishComponentAction
W
in32_QuickFixEngineering
W
in32_Refrigeration
W
in32_Registry
W
in32_RegistryAction
W
in32_RemoveFileAction
W
in32_RemoveIniAction
W
in32_ReserveCost
W
in32_ScheduledJob
W
in32_SCSIController
W
in32_SCSIControllerDevice
W
in32_SecurityDescriptor
W
in32_SecuritySetting
W
in32_SecuritySettingAccess
W
in32_SecuritySettingAuditing
W
in32_SecuritySettingGroup
W
in32_SecuritySettingOfLogicalFile
W
in32_SecuritySettingOfLogicalShare
W
in32_SecuritySettingOfObject
W
in32_SecuritySettingOwner
W
in32_SelfRegModuleAction
W
in32_SerialPort
W
in32_SerialPortConfiguration
W
in32_SerialPortSetting
W
in32_Service
W
in32_ServiceControl
W
in32_ServiceSpecification
W
in32_ServiceSpecificationService
W
in32_SettingCheck
W
in32_Share
W
in32_ShareToDirectory
W
in32_ShortcutAction
W
in32_ShortcutFile
W
in32_ShortcutSAP
W
in32_SID
W
in32_SMBIOSMemory
W
in32_SoftwareElement
W
in32_SoftwareElementAction
W
in32_SoftwareElementCheck
W
in32_SoftwareElementCondition
W
in32_SoftwareElementResource
W
in32_SoftwareFeature
W
in32_SoftwareFeatureAction
W
in32_SoftwareFeatureCheck
W
in32_SoftwareFeatureParent
W
in32_SoftwareFeatureSoftwareElements
W
in32_SoundDevice
W
in32_StartupCommand
W
in32_SubDirectory
W
in32_SystemAccount
W
in32_SystemBIOS
W
in32_SystemBootConfiguration
W
in32_SystemDesktop
W
in32_SystemDevices
W
in32_SystemDriver
W
in32_SystemDriverPNPEntity
W
in32_SystemEnclosure
W
in32_SystemLoadOrderGroups
W
in32_SystemLogicalMemoryConfiguration
W
in32_SystemMemoryResource
W
in32_SystemnetworkConnections
W
in32_SystemOperatingSystem
W
in32_SystemPartitions
W
in32_SystemProcesses
W
in32_SystemProgramGroups
W
in32_SystemResources
W
in32_SystemServices
W
in32_SystemSetting
W
in32_SystemSlot
W
in32_SystemSystemDriver
W
in32_SystemTimeZone
W
in32_SystemUsers
W
in32_TapeDrive
W
in32_TemperatureProbe
W
in32_Thread
W
in32_TimeZone
W
in32_Trustee
W
in32_TypeLibraryAction
W
in32_UninterruptiblePowerSupply
W
in32_USBController
W
in32_USBControllerDevice
W
in32_UserAccount
W
in32_UserDesktop
W
in32_VideoConfiguration
W
in32_VideoController
W
in32_VideoSettings
W
in32_VoltageProbe
W
in32_WMIElementSetting
W
in32_WMISetting