Hotline: 098 821 7749 info@acinternational.com.vn

Xu hướng CNTT

WMI là gì?

Cỡ chữ
WMI là gì?
 
Nội dung bài viết:

1. WMI là gì?
2. WMI được sử dụng để làm gì?
3. WMI hoạt động như thế nào?
4. WMI Architecture
5. Vấn đề bảo mật WMI
6. PowerShell và WMI
7. WMI Command-line (WMIC)
8. MI

 
 
1. WMI là gì?

- WMI là viết tắt của Windows Management Instrumentation. Được thiết kế bởi Microsoft, đây là một cơ sở hạ tầng để quản lý dữ liệu và thông tin được chuẩn hóa độc lập với thiết bị. Kể từ Windows 2000, WMI được cài đặt sẵn với hệ điều hành Windows.

 
- WMI là sự triển khai của Microsoft về Quản lý Doanh nghiệp Dựa trên Web, WBEM (Web-Based Enterprise Management), được quản lý bởi DMTF (DMTF  - Distributed Management Task Force). WBEM đặt ra các tiêu chuẩn để cho phép truy cập dữ liệu từ các công nghệ và thiết bị không đồng nhất trên một kiến trúc tiêu chuẩn hóa. WBEM sử dụng Mô hình Thông tin Chung CIM (CIM - Common Information Model) làm giản đồ để xác định thông tin về các đối tượng. Cả hai đều lưu trữ tệp và chấp nhận lệnh in từ máy khách (Client) và sau đó gửi chúng đến một máy in trong mạng.
 
- CMI:
  • Mặc dù không trực tiếp là một phần của WMI, CIM là một tiêu chuẩn trung lập với nhà cung cấp để trình bày các thông tin quản lý của các thiết bị khác nhau. Nó cũng được duy trì bởi DMTF.
  • WMI sử dụng lược đồ (Schema) này để lưu trữ thông tin trong kho lưu trữ WMI Repository. Nó được cấu trúc để môi trường được quản lý có thể được xem như là các hệ thống có liên quan lẫn nhau, mỗi hệ thống bao gồm các yếu tố rời rạc. Một tập hợp các lớp và thuộc tính được xác định trước tạo ra một khung làm việc đồng bộ (Framework) mà các nhà cung cấp riêng lẻ xây dựng từ đó.
 


2. WMI được sử dụng để làm gì?

- Để hoạt động như một máy chủ (Server), một thiết bị phải được cấu hình để lắng nghe các yêu cầu từ máy khách (Client) trên kết nối mạng. Chức năng này có thể tồn tại như một phần của hệ điều hành như một ứng dụng, vai trò đã cài đặt hoặc kết hợp cả hai. Ví dụ: hệ điều hành Windows Server của Microsoft cung cấp chức năng lắng nghe và phản hồi các yêu cầu của máy khách. Các vai trò (Roles) hoặc dịch vụ (Service) được cài đặt bổ sung làm tăng loại yêu cầu máy khách mà máy chủ có thể đáp ứng. Trong một ví dụ khác, máy chủ Apache Web server phản hồi các yêu cầu của trình duyệt Internet thông qua một ứng dụng bổ sung, Apache, được cài đặt trên cùng một hệ điều hành.
 
- Khi một máy khách yêu cầu dữ liệu hoặc chức năng từ máy chủ, nó sẽ gửi một yêu cầu qua mạng. Máy chủ nhận được yêu cầu này và phản hồi với thông tin thích hợp. Đây là mô hình yêu cầu và phản hồi của mạng máy khách-máy chủ, còn được gọi là mô hình gọi và phản hồi (Call and Response Model). Máy chủ thường sẽ thực hiện nhiều tác vụ bổ sung như là một phần của một yêu cầu và phản hồi, bao gồm xác minh danh tính của người yêu cầu, đảm bảo rằng máy khách có quyền truy cập vào dữ liệu hoặc tài nguyên được yêu cầu và định dạng đúng hoặc trả lại phản hồi cần thiết theo dự kiến đường.
 

3. WMI hoạt động như thế nào?

- Khi các thiết bị trên mạng hoạt động, các cài đặt, thông số và trạng thái khác nhau có thể được đo và tạo tại bất kỳ thời điểm nào. Ví dụ, ổ đĩa cứng có tổng dung lượng lưu trữ, dung lượng lưu trữ đã sử dụng, dung lượng lưu trữ trống hoặc nhiệt độ bên trong. Các giá trị này là động và thay đổi theo cách sử dụng hệ thống. Tại bất kỳ thời điểm nào, việc đọc các thông số này trong thiết bị vẫn tồn tại cho dù có ai để ý đến chúng hay không.
 
- Nền tảng WMI platform cung cấp một cách thống nhất để tạo và thực thi các tập lệnh (script) đọc các thông số và trong một số trường hợp, có thể thay đổi các cài đặt đó mà không cần cài đặt thêm các tác nhân phần mềm (gọi là Agent) hoặc màn hình (Monitor). Trong trường hợp của ổ cứng, WMI Provider có thể trả lời yêu cầu về nhiệt độ của ổ cứng cũng như gửi cảnh báo đến Trình quản lý đối tượng WMI Object Manager nếu nhiệt độ vượt quá mức đặt trước.
 
- Ngoài ra, đối với các ứng dụng quản lý, nền tảng WMI cung cấp Giao diện lập trình ứng dụng API (API - Application Programming Interface) ở cấp Trình quản lý đối tượng WMI Object Manager để không cần phải hiểu chi tiết cụ thể của từng nhà cung cấp WMI. Ví dụ, ứng dụng quản lý chỉ cần gọi Trình quản lý đối tượng WMI Object Manager chứ không cần truy vấn trực tiếp ổ cứng.
 
- Khi một thiết bị được truy vấn hoặc một sự kiện được kích hoạt, dữ liệu sẽ truyền qua kiến ​​trúc tiêu chuẩn của thiết bị được quản lý thông qua WMI Provider của nó đến Trình quản lý đối tượng WMI Object Manager và tới WMI Consumer. Toàn bộ cơ sở hạ tầng này được chuẩn hóa trên các thiết bị và nền tảng để bất kỳ phần mềm quản lý doanh nghiệp hỗ trợ WMI nào cũng có thể truy cập dữ liệu được thu thập trên bất kỳ thiết bị hỗ trợ WMI nào mà không cần biết bất kỳ điều gì về các thiết bị hoặc cấu trúc mạng giữa chúng. WMI có sẵn trên bất kỳ máy tính Windows hiện tại nào và do đó có thể được quản lý thông qua WMI.
 

4. WMI Architecture

- WMI Service
  • WMI là một bộ phận được tích hợp của hệ điều hành Windows. Cơ sở hạ tầng WMI Infrastructure được triển khai trong Windows dưới dạng dịch vụ WMI Serive. Dịch vụ WMI Service đóng vai trò trung gian giữa các WMI Providers, kho lưu trữ WMI Repository và quản lý các ứng dụng. Dịch vụ WMI Service chạy với tên hiển thị Windows Management Instrumentation dưới dịch vụ Service tên là “winmgmt”. Nó chạy tự động khi khởi động và nếu dừng lại, nó sẽ tự động khởi động khi ứng dụng quản lý hoặc tập lệnh yêu cầu kết nối với bất kỳ không gian tên WMI namespace nào.
 
- Managed objects (Đối tượng được quản lý)
  • Đối tượng được quản lý là bất kỳ thành phần hoặc dịch vụ logic hoặc vật lý nào có thể được quản lý qua WMI. Điều này có thể bao gồm bộ xử lý (Processors), bộ điều hợp mạng (Network adapters), hệ điều hành (Operating systems), dịch vụ (Services), ứng dụng (Applications), ổ đĩa (Disk drives), bộ nhớ (Memory), hoặc bất kỳ thiết bị gắn liền với mạng nào khác.
  • Nói chung, nếu tham số được đề cập có thể được truy cập thông qua một công cụ Windows khác, chẳng hạn như màn hình hiệu suất, thì thông tin tương tự có thể được truy cập qua WMI.
 
- WMI Providers
  • WMI Providers là một đối tượng giám sát, đọc và thu thập bất kỳ dữ liệu nào nó được lập trình để giám sát trên một đối tượng được quản lý cụ thể. Giống như trình điều khiển thiết bị (Driver), một số màn hình được tích hợp sẵn trong hệ điều hành, trong khi những màn hình khác do bên thứ ba triển khai hoặc theo chương trình, thường thông qua C / C ++, Visual Basic, VBScript hoặc PowerShell. Provider cũng có thể được truy cập thông qua dòng lệnh Command-Line (Windows Management Interface Command-line, hoặc WMIC).
  • Màn hình (Monitors) có thể chung chung hoặc thiết bị cụ thể. Bản thân màn hình không làm gì khác ngoài xem hoặc giám sát dữ liệu khi nó được tạo ra. Màn hình không ghi nhật ký hoặc lưu trữ dữ liệu, mặc dù chúng có thể được thiết lập để ghi dữ liệu vào tệp nhật ký hoặc vào Trình xem sự kiện (Event Viewer) nếu một điều kiện nhất định được đáp ứng.
  • Có rất nhiều WMI Providers tích hợp sẵn trong Windows, bao gồm Active Directory provider, Boot Configuration Data (BCD) WMI provider, Distributed File System (DFS) provider, Event Log provider, Hyper-V WMI provider, Win32 provider, Registry provider, và SNMP provider. SNMP Provider ánh xạ các đối tượng SNMP MIB Object tới các lớp WMI CIM Classes. Điều này cung cấp một cách để sử dụng WMI ngay cả trên các thiết bị không phải Windows thông qua giao diện SNMP được tích hợp sẵn của chúng.
  • Các WMI Provider phản hồi các truy vấn trực tiếp từ các ứng dụng hoặc tập lệnh quản lý cũng như các sự kiện được lập trình. Định cấu hình sự kiện yêu cầu trình kích hoạt sự kiện (Event trigger) và người đăng ký sự kiện (Event subscribers). Trình kích hoạt được đặt bằng cách xác định thời điểm một sự kiện trở nên có thể báo cáo hoặc được kích hoạt. Ví dụ: một sự kiện có thể được kích hoạt khi dung lượng đĩa trống giảm xuống dưới một lượng nhất định. Khi WMI Provider chạy, nó chỉ đơn giản là giám sát dung lượng đĩa trống. Khi dung lượng giảm xuống dưới ngưỡng đặt trước, WMI Provider sẽ cảnh báo cho Trình quản lý đối tượng CIM Object Manager. Sau đó, Trình quản lý đối tượng CIM Object Manager sẽ chuyển tiếp cảnh báo đến Consumer hoặc Subcribers được xác định trước, thường là các ứng dụng quản lý doanh nghiệp hoặc nhật ký sự kiện.
 
- Classes
  •  Mỗi WMI Provider triển khai chức năng của các lớp (gọi là Classes) của nó. Các lớp chứa các sự kiện (Events) và thuộc tính (Properties) cho phép thu thập và thiết lập dữ liệu thực tế. Các lớp hệ thống WMI là các lớp được xác định trước cung cấp chức năng cơ bản của WMI. Các lớp này bắt đầu bằng dấu gạch dưới kép, chẳng hạn như “__SystemEvent”, đại diện cho một sự kiện hệ thống. Ngoài ra còn có các lớp MSFT Classes là các lớp cung cấp chính sách hoặc các lớp xử lý sự cố WMI. Các lớp CIM Classes có thể được sử dụng khi xây dựng các lớp mới. Các lớp mới sẽ kế thừa các thuộc tính từ lớp CIM Classes mẹ của chúng.
  • Ngoài ra còn có các lớp tiêu chuẩn Standard Consumer Classes. Chúng được sử dụng để chạy các tập lệnh (Scripts) hoặc chương trình (Programs) khi một sự kiện kích hoạt xảy ra. Một lớp Standard Consumer Class thường được sử dụng là ActiveScriptEventConsumer, lớp này chạy một tập lệnh khi nó nhận được phản hồi. Đây là một cách để tạo phản hồi tự động cho một sự kiện hoặc tình huống cụ thể, chẳng hạn như gửi tin nhắn, dừng hoặc khởi động một dịch vụ hoặc thậm chí khởi động lại và tắt một hệ thống hoặc thành phần.
 
- Methods
  • Một số lớp có các phương thức (Methods) cung cấp dữ liệu cụ thể có thể được giám sát hoặc thay đổi. Ví dụ, lớp Win32_Service class có các phương thức để dừng và khởi động dịch vụ. Các phương pháp này có thể được truy cập thông qua ứng dụng tập lệnh hoặc thông qua ứng dụng quản lý mạng.
 
- WMI repository
  • Kho lưu trữ WMI Repository là cơ sở dữ liệu lưu trữ dữ liệu tĩnh liên quan đến WMI. Dữ liệu động do WMI Provider giám sát không được lưu trữ trong kho lưu trữ. Để giữ lại dữ liệu động, dữ liệu đó phải được WMI Provider nắm bắt và được ứng dụng quản lý WMI truy xuất hoặc báo cáo hoặc ghi lại thông qua WMI provider class. WMI sử dụng kho lưu trữ đối tượng tuân thủ CIM.
 
- CIM Object Manager
  • Trình quản lý đối tượng CIM Object Manager hoạt động như một trung gian giữa ứng dụng quản lý và các WMI Providers. Được truy cập từ phía ứng dụng bằng WMI API, Trình quản lý đối tượng chuyển tiếp các yêu cầu dữ liệu đến các WMI Providers và nhận được phản hồi trước khi chuyển tiếp thông tin trở lại ứng dụng quản lý yêu cầu.
 
- API WMI
  • API cung cấp quyền truy cập vào cơ sở hạ tầng WMI Infrastructure cho các ứng dụng sử dụng WMI. Các ứng dụng này thực hiện các lệnh gọi API được chuyển vào Trình quản lý đối tượng CIM Object Manager và sau đó được gửi đến các Providers. Chúng phản hồi thông qua các lớp (Classes) và phương thức (Methods) với dữ liệu như thời gian hoạt động của hệ thống hoặc số lượng tiến trình đang chạy.
 
- WMI Consumer
  • WMI Consumer là đối tượng gửi truy vấn và nhận thông tin từ WMI Provider thông qua Trình quản lý đối tượng WMI Object Manager. Thông thường, WMI Consumer là một ứng dụng giám sát, chẳng hạn như PRTG Network Monitor, một ứng dụng quản lý hoặc một tập lệnh, chẳng hạn như tập lệnh PowerShell script, nó truy vấn các giá trị trên một hệ thống từ xa trước khi thực hiện một số hành động như cập nhật phần mềm hoặc ghi tệp .
 
  • Ví dụ: quản trị viên viết tập lệnh cho bản cập nhật trước tiên có thể sử dụng PowerShell để truy vấn WMI Provider để kiểm tra phiên bản Windows trước khi gửi bản cập nhật. Consumer có thể truy vấn WMI Provider về các giá trị có thể được quản trị viên giám sát hoặc thậm chí thay đổi. Chỉ một số giá trị nhất định mới có thể ghi theo cách này.

  
5. Vấn đề bảo mật WMI

- Khả năng truy cập từ xa và sửa đổi thông tin và dữ liệu của thiết bị phải được bảo mật. Windows cung cấp một số lớp bảo mật để bảo vệ các hệ thống từ xa. Tường lửa Windows Defender Firewall có cài đặt cụ thể cho lưu lượng WMI traffic tách biệt với cài đặt lưu lượng DCOM traffic thông thường. Nếu WMI bị chặn bởi tường lửa, kết nối không thể được thiết lập.
 
- Ngoài ra, việc lọc mã thông báo truy cập User Account Control (UAC) tiêu chuẩn ảnh hưởng đến hoạt động của WMI. Ngay cả khi đăng nhập với tư cách quản trị viên, các chương trình hoặc tập lệnh dựa trên WMI sẽ chạy với tính năng lọc mã thông báo truy cập UAC tiêu chuẩn trừ khi chạy cụ thể với các đặc quyền nâng cao, chạy với tư cách quản trị viên (“Run as Administrator”). Trong nhiều trường hợp, các phương thức và lớp của WMI Provider truy cập dữ liệu đặc quyền và yêu cầu quyền truy cập cao hơn để chạy đúng cách.


6. PowerShell và WMI

- Thoạt nhìn, PowerShell có vẻ ít hỗ trợ cho WMI. Tuy nhiên, một lệnh ghép ngắn Get-WmiObject cmdlet duy nhất thực sự cho phép truy cập vào hầu hết các tham số WMI. Lệnh ghép ngắn Get-WmiObject cmdlet có thể sử dụng tham số "-ComputerName" để truy cập máy tính từ xa. Ví dụ: Get-WmiObject -Class Win32_service -ComputerName Accounting235 sẽ nhận được danh sách các dịch vụ (và trạng thái hiện tại của chúng) đang chạy trên một máy tính từ xa có tên là Accounting235.
 

7. WMI Command-line (WMIC)

- Mặc dù WMI có thể được sử dụng thông qua một số ngôn ngữ kịch bản, bao gồm cả PowerShell, nhưng nó có giao diện dòng lệnh riêng. WMIC tương thích với các trình bao hiện có, bao gồm cả dòng lệnh tiêu chuẩn của Windows. Để sử dụng, chỉ cần gõ wmic và lệnh.
  • wmic os list FREE - Liệt kê thông tin về bộ nhớ trống trên hệ thống
  • wmic os list BRIEF - Liệt kê số phiên bản, số sê-ri và số phiên bản của máy tính
 
- Lệnh SET có thể thay đổi hoặc ghi vào các tham số nhất định. Sử dụng khóa /? switch sẽ hiển thị một danh sách các thuộc tính có thể ghi. Ví dụ, có thể đặt múi giờ hiện tại bằng lệnh set os.
  • wmic os set CurrentTimeZone = 600 - Đặt múi giờ thành giờ Sydney, Úc. Nếu không được chạy với tư cách quản trị viên, quyền truy cập sẽ bị từ chối.
 
8. MI

- Microsoft hiện cung cấp Cơ sở hạ tầng quản lý Windows gọi tắt là MI (MI - Management Infrastructure), là phiên bản mới nhất của WMI. Theo Microsoft, MI hoàn toàn tương thích với các phiên bản trước của WMI và giảm thời gian phát triển cũng như tích hợp chặt chẽ hơn với PowerShell.
 
 
Nguồn: https://www.paessler.com/it-explained/wmi
Dịch: N.V.Hùng