WMI技术介绍和应用——查询系统信息
? ? ? ? 本文使用了《WMI技術介紹和應用——使用VC編寫一個半同步查詢WMI服務的類》中代碼做為基礎。本節只是列出了WQL語句,具體使用參看前面的例子。(轉載請指明出于breaksoftware的csdn博客)
? ? ? ? 本機主要知識點是Win32_ComputerSystem類。通過該類我們將可以獲取部分系統設置。
? ? ? ? 如何使用WMI查詢是否開啟了系統硬件安全設置密碼?
SELECT AdminPasswordStatus FROM Win32_ComputerSystem
? ? ? ? 我們開啟了系統硬件安全設置密碼,我們要修改BOIS信息將要求輸入密碼。這個功能一般很少用到。我電腦上沒有設置這個密碼,所以返回值是1。它其他值的解釋是
| Value | Meaning |
|---|---|
| 1 (0x1) | Disabled |
| 2 (0x2) | Enabled |
| 3 (0x3) | Not Implemented |
| 4 (0x4) | Unknown ? |
? ? ? ? 如何使用WMI查詢當前系統的啟動方式?
SELECT BootupState FROM Win32_ComputerSystem
?
? ? ? ? 一般情況下,我們都是正常啟動系統的。但是如果我們系統出現問題,比如上次電腦是意外關閉的,我們往往會看到Windows會讓我們選擇啟動方式:正常啟動(Normal boot)、安全模式啟動(Fail-safe boot)、帶網絡的安全模式啟動(Fail-safe with network boot)等。如果我們想知道本次電腦的啟動方式,就可以使用這個方法查詢到。同時,我們可以由此推斷,在安全模式下,WMI也是可以使用的。
? ? ? ? 如何使用WMI查詢當前系統所屬的域?
SELECT Domain FROM Win32_ComputerSystem
? ? ? ? 我們在公司的環境下登錄某個特定的環境,這個環境可能屬于某個域。如果當前系統不在任何域中,則這個查詢將返回工作組(WorkGroup)名字。那怎么辨別呢,我們看下面一個查詢。
? ? ? ? 如何使用WMI查詢當前系統是否屬于某個域?
SELECT PartOfDomain FROM Win32_ComputerSystem
? ? ? ? 如何使用WMI查詢當前系統屬于哪個工作組?
SELECT Workgroup FROM Win32_ComputerSystem
? ? ? ? 如果通過對PartOfDomain的查詢得出FALSE的答案,則可以查詢Workgroup字段,查看該系統屬于哪個工作組。
? ? ? ? 如何使用WMI查詢當前系統屬于域或工作組中屬于什么角色?
SELECT DomainRole FROM Win32_ComputerSystem
? ? ? ? 這個字段的個釋義是
| Value | Meaning |
|---|---|
| 0 (0x0) | Standalone Workstation |
| 1 (0x1) | Member Workstation |
| 2 (0x2) | Standalone Server |
| 3 (0x3) | Member Server |
| 4 (0x4) | Backup Domain Controller |
| 5 (0x5) | Primary Domain Controller ? |
? ? ? ? ?如何使用WMI查詢是否有紅外端口?
SELECT InfraredSupported FROM Win32_ComputerSystem
? ? ? ? FALSE代表我電腦上沒有紅外端口,反之返回的是TRUE。
? ? ? ? 如何使用WMI查詢是否設置了鍵盤密碼(Keyboard Password)?
SELECT KeyboardPasswordStatus FROM Win32_ComputerSystem
? ? ? ?它的值的釋義是
| Value | Meaning |
|---|---|
| 0 (0x0) | Disabled |
| 1 (0x1) | Enabled |
| 2 (0x2) | Not Implemented |
| 3 (0x3) | Unknown ? |
? ? ? ? ?如何使用WMI查詢當前電腦的制造商信息?
SELECT Manufacturer FROM Win32_ComputerSystem
? ? ? ? 如果是組裝電腦,該條信息返回的是主板廠商名稱。
? ? ? ? 如何使用WMI查詢當前電腦的產品名稱?
SELECT Model FROM Win32_ComputerSystem
? ? ? ? 結合以上信息,可以知道我電腦是Dell的OptiPlex 780。如果是組裝電腦,該條數據將返回主板型號。 ? ? ? ?
? ? ? ? 如何使用WMI查詢當前系統的是否開啟了網絡服務模式?
SELECT NetworkServerModeEnabled FROM Win32_ComputerSystem
? ? ? ? 如何使用WMI獲取當前系統類型?
SELECT SystemType FROM Win32_ComputerSystem
? ? ? ? 以上值說明當前系統是X86體系的系統。它還可能是:"x64-based PC"、"X86-based PC"、"MIPS-based PC"、"Alpha-based PC"、"Power PC"、"SH-x PC"、"StrongARM PC"、"64-bit Intel PC"、"64-bit Alpha PC"、"Unknown"、"X86-Nec98 PC"。
? ? ? ? 如何使用WMI查詢當前電腦的物理內存大小?
SELECT TotalPhysicalMemory FROM Win32_ComputerSystem
? ? ? ? 該大小是以Bytes為單位的。
? ? ? ? 如何使用WMI獲取OEM廠商的Logo?
SELECT OEMLogoBitmap FROM Win32_ComputerSystem
? ? ? ? 這段內存信息可以見得是一個BMP文件。它就是
? ? ? ? 如何使用WMI獲得上圖中“技術支持信息”按鈕點開后的信息?
SELECT SupportContactDescription FROM Win32_ComputerSystem
? ? ? ? 如何使用WMI查詢是否設置了開機密碼?
SELECT PowerOnPasswordStatus FROM Win32_ComputerSystem
? ? ? ?如果設置了開機密碼,我們開機后,會進入黑屏,讓我們輸入密碼。如果密碼輸入錯了就不會啟動系統。一般鮮見設置這個密碼。它的釋義是
| Value | Meaning |
|---|---|
| 0 (0x0) | Disabled |
| 1 (0x1) | Enabled |
| 2 (0x2) | Not Implemented |
| 3 (0x3) | Unknown ? |
? ? ? ? 如何使用WMI查詢電腦是筆記本還是臺式機?
SELECT PCSystemType FROM Win32_ComputerSystem
? ? ? ? 該屬性只有在XP以上的系統中可以使用。它的釋義是
| Value | Meaning |
|---|---|
| 0 (0x0) | Unspecified |
| 1 (0x1) | Desktop |
| 2 (0x2) | Mobile |
| 3 (0x3) | Workstation |
| 4 (0x4) | Enterprise Server |
| 5 (0x5) | Small Office and Home Office (SOHO) Server |
| 6 (0x6) | Appliance PC |
| 7 (0x7) | Performance Server |
| 8 (0x8) | Maximum ? |
? ? ? ??工程源碼見《WMI技術介紹和應用——WMI概述》結尾。
總結
以上是生活随笔為你收集整理的WMI技术介绍和应用——查询系统信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WMI技术介绍和应用——查询快捷方式、映
- 下一篇: WMI技术介绍和应用——查询系统信息和补