
Quản lý mạng Windows bằng Script - Phần 12: Các thuộc tính của lớp
WMI

Quay trở lại phần ba của loạt bài này, chúng ta đã phát triển kịch bản đơn
giản có tên displayTimeZone.vbs để hiển thị thiết lập vùng thời gian hiện
hành trên máy tính của bạn:
Option Explicit
On Error Resume Next
Dim strComputer
Dim strWMINamespace
Dim strWMIQuery
Dim objWMIService
Dim colItems
Dim objItem
strComputer = "."
strWMINamespace = "\root\CIMV2"
strWMIQuery = "SELECT * FROM Win32_TimeZone"
Set objWMIService = GetObject("winmgmts:\\" &
strComputer & strWMINamespace)
Set colItems = objWMIService.ExecQuery(strWMIQuery)
For Each objItem In colItems
WScript.Echo objItem.Caption
Next
Khi tôi chạy kịch bản này, nó cho kết quả như sau:
C:\scripts>DisplayTimeZone.vbs
Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001. All
rights reserved.
(GMT-06:00) Central Time (US & Canada)
Làm thế nào tôi biết được đó là thuộc tính chính của lớp Win32_TimeZone
gồm có thông tin mà tôi muốn hiển thị? Bằng cách đọc các chỉ dẫn về nó tại
đây mà tôi có thể biết điều đó. Trong thực tế, trang MSDN này cho chúng ta
biết được rằng thuộc tính Description cơ bản trả về objItem.Description và
các kết quả tương tự.
Trang MSDN này còn cho chúng ta biết thêm gì nữa về lớp
Win32_TimeZone? Điều gì sẽ xảy ra nếu tôi muốn tìm ra tháng nào thực
hiện việc đó ảnh hưởng trên máy tính? Nếu đọc qua trang này thì bạn sẽ có
được thông tin liên quan đế thuộc tính này (DaylightMonth).
DaylightMonth
Data type: uint32
Access type: Read-only
Month when the transition from standard time to
daylight saving time occurs on an operating system.
Value Meaning
1
0x1 January
2
0x2 February
3

0x3 March
4
0x4 April
5
0x5 May
6
0x6 June
7
0x7 July
8
0x8 August
9
0x9 September
10
0xA October
11
0xB November
12
0xC December
Để sử dụng thông tin này, đơn giản tôi chỉ thay đổi dòng WScript.Echo
objItem.Caption thành WScript.Echo objItem.DaylightMonth và đây là
những gì tôi nhận được khi chạy kịch bản này:
C:\scripts>DisplayTimeZone.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All
rights reserved.

3
Liệt kê các thuộc tính của một lớp
Bây giờ chúng ta có thể tiếp tục quá trình bằng cách thay đổi thuộc tính
<property> trong WScript.Echo objItem.<property> và vì vậy từ từ làm
việc thông qua hiển thị từng cái một trong các thuộc tính của lớp
Win32_TimeZone, nhưng đây có phải là cách dễ dàng hơn? Chúng ta có thể
hiển thị được các thuộc tính của lớp này trong một kịch bản mà không cần
đặt tên chúng trong kịch bản? Điều này thực hiện được nhưng trước khi thực
hiện hãy thử và liệt kê số các thuộc tính của lớp này. Đây là cách chúng ta
thực hiện:
Option Explicit
On Error Resume Next
Dim strComputer
Dim strWMINamespace
Dim strWMIQuery
Dim objWMIService
Dim colItems
Dim objItem
strComputer = "."
strWMINamespace = "\root\CIMV2"
strWMIQuery = ":Win32_TimeZone"
Set objWMIService = GetObject("winmgmts:\\" &
strComputer & strWMINamespace & strWMIQuery)

