Danh mục

Script - Các thuộc tính của lớp WMI

Số trang: 6      Loại file: pdf      Dung lượng: 160.78 KB      Lượt xem: 1      Lượt tải: 0    
Thu Hiền

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (6 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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 NextKhi tôi chạy kịch bản này, nó cho kết quả như sau:C:\scriptsDisplayTimeZone.vbs Microsoft (R) Windows Script...
Nội dung trích xuất từ tài liệu:
Script - Các thuộc tính của lớp WMI Quản lý mạng Windows bằng Script - Phần 12: Các thuộc tính của lớp WMIQuay 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êndisplayTimeZone.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 ExplicitOn Error Resume NextDim strComputerDim strWMINamespaceDim strWMIQueryDim objWMIServiceDim colItemsDim objItemstrComputer = .strWMINamespace = \root\CIMV2strWMIQuery = SELECT * FROM Win32_TimeZoneSet objWMIService = GetObject(winmgmts:\\ & strComputer & strWMINamespace)Set colItems = objWMIService.ExecQuery(strWMIQuery)For Each objItem In colItems WScript.Echo objItem.CaptionNextKhi tôi chạy kịch bản này, nó cho kết quả như sau:C:\scripts>DisplayTimeZone.vbsMicrosoft (R) Windows Script Host Version 5.6Copyright (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ựctế, 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 ranế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 trangnày thì bạn sẽ có được thông tin liên quan đế thuộc tính này (DaylightMonth).DaylightMonthData type: uint32Access type: Read-onlyMonth when the transition from standard time to daylight saving time occurson an operating system.Value Meaning10x1 January20x2 February30x3 March40x4 April50x5 May60x6 June70x7 July80x8 August90x9 September100xA October110xB November120xC DecemberĐể sử dụng thông tin này, đơn giản tôi chỉ thay đổi dòng WScript.Echo objItem.Caption thànhWScript.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.vbsMicrosoft (R) Windows Script Host Version 5.6Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.3Liệt kê các thuộc tính của một lớpBây giờ chúng ta có thể tiếp tục quá trình bằng cách thay đổi thuộc tính trongWScript.Echo objItem. và vì vậy từ từ làm việc thông qua hiển thị từng cái một trongcá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úngtrong 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ácthuộc tính của lớp này. Đây là cách chúng ta thực hiện:Option ExplicitOn Error Resume NextDim strComputerDim strWMINamespaceDim strWMIQueryDim objWMIServiceDim colItemsDim objItemstrComputer = .strWMINamespace = \root\CIMV2strWMIQuery = :Win32_TimeZoneSet objWMIService = GetObject(winmgmts:\\ & strComputer & strWMINamespace &strWMIQuery)WScript.Echo Number of properties of & strWMIQuery & class is &objWMIService.Properties_.countĐây là kết quả chạy kịch bản mới này, kịch bản mà chúng ta sẽ gọi nó làDisplayClassProperties.vbs:C:\scripts>DisplayClassProperties.vbsMicrosoft (R) Windows Script Host Version 5.6Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.Number of properties of :Win32_TimeZone class is 24Xem một bảng kiểm kê các thuộc tính tại Win32_TimeZone MSDN sẽ cho chúng ta thấy con số24 là hoàn toàn chính xác, điều đó có nghĩa là lớp Win32_TimeZone có 24 thuộc tính trong tổngsố.Kịch bản mới này làm việc như thế nào? Đầu tiên bạn lưu ý rằng thay vì kết nối đến không giantên mặc định (\root\CIMV2) trên máy tính cục bộ (“.”) chúng ta kết nối trực tiếp đến lớpWin32_TimeZone trên máy tính. Hay nói theo cách khác, dòng:Set objWMIService = GetObject(winmgmts:\\ & strComputer & strWMINamespace &strWMIQuery)có thể được thay thế bởiSet objWMIService = GetObject(winmgmts:\\.\root\CIMV2:Win32_TimeZone)và nó sẽ thực hiện các công việc một cách tương tự. Một điều khác mà bạn sẽ chú ý là một thứtrong dòng cuối cùng của kịch bản:objWMIService.Properties_.countChúng ta biết về các thuộc tính (như .) và các phương pháp(.) từ phần đầu tiên của loạt bài này, nhưng objWMIService.Properties_.countcó hai chu kỳ trong nó. Điều gì sẽ xảy ra ở đây? Chúng ta hãy quay lại dòng này một lần nữa:Set objWMIService = GetObject(winmgmts:\\ & strComputer & strWMINamespace &strWMIQuery)những gì chúng ta đã nhìn thấy tương đương vớiSet objWMIService = GetObject(winmgmts:\\.\root\CIMV2:Win32_TimeZone)Biệt danh trong lệnh WMI này là winmgmts:\\.\root\CIMV2:Win32_TimeZone và nó định nghĩađường dẫn đến lớp WMI mà chúng ta quan tâm trong việc tăng truy cập, khi bạn sử dụng hàmGetObject trên biệt danh này thì nó sẽ trả về một đối tượng SwbemObject, đối tượng này sau đóđược gán cho biến objWMIService bằng lệnh Set. (Chính xác hơn, hàm GetObject trả lại mộttham chiếu cho đối tượng SwbemObject đã được cung cấp bởi thành phần COM).Nói cách khác, khi lệnhSet objWMIService = GetObject(winmgmts:\\.\root\CIMV2:Win32_TimeZone)được thực thi, thì chúng ta sẽ có một đối tượng SwbemObject được trả về. Các đối tượng có cácthuộc tính, vì vậy những thuộc tính gì mà đối tượng SwmebObject có được? Một thuộc tính đượcgọi là Properties_ và sử dụng kí hiệu chuẩn điều này có nghĩa làProperties_ property của một đối tượng SwebmObject sẽ được định nghĩa bởiSWbemObject.Properties_ ( đường gạch dưới từ là phần tên của thuộc tính). Bạn có thể đọcthêm về SWbemObject.Properties_ property của đối tượng SwebmObject trên trang này, và nósẽ cho bạn thấy rằng thuộc tính này là “một bộ sưu tập các thuộc tính của lớp hiện tại” hoặc theocách nói khác, SWbemObject.Properties_ property là một bộ sưu tập. Bạn cũng nên nhớ rằngmột bộ sưu tập là một loại đối tương gồm có n ...

Tài liệu được xem nhiều: