1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx

15 413 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx
Trường học University of Information Technology
Chuyên ngành Network Management
Thể loại Bài viết
Định dạng
Số trang 15
Dung lượng 1,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Number of properties of :Win32_BootConfiguration class is 9 Property: BootDirectory Property: Caption Property: ConfigurationPath Property: Description Property: LastDrive Property: Name

Trang 1

Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị

Trang 2

Trong phần trước của loạt bài này chúng ta đã đến với kịch bản có tên gọi là DisplayClassProperties.vbs, đây là kịch bản hiển thị tên các thuộc tính của lớp WMI Đây là những gì của nội dung kịch bản, bằng sử dụng Win32_BootConfiguration như một lớp, chúng ta đang kết nối vào biệt danh WMI:

Option Explicit

On Error Resume Next

Dim strComputer

Dim strWMINamespace

Dim strWMIQuery

Dim objWMIService

Dim colItems

Dim objItem

strComputer = "."

strWMINamespace = "\root\CIMV2"

strWMIQuery = ":Win32_BootConfiguration"

Set objWMIService = GetObject("winmgmts:\\" &

strComputer & strWMINamespace & strWMIQuery)

WScript.Echo "Number of properties of " &

strWMIQuery & " class is " &

objWMIService.Properties_.count

For Each objItem in objWMIService.Properties_

Wscript.Echo "Property: " & objItem.name

Next

Trang 3

Khi chạy kịch bản này (sử dụng các thông tin quản trị cục bộ) trên máy tính Windows XP (với Cscript.exe được cấu hình từ trước như một kịch bản Windows mặc định), kết quả cho được như sau:

C:\scripts>DisplayClassProperties.vbs

Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001 All rights reserved

Number of properties of :Win32_BootConfiguration class is 9

Property: BootDirectory

Property: Caption

Property: ConfigurationPath

Property: Description

Property: LastDrive

Property: Name

Property: ScratchDirectory

Property: SettingID

Property: TempDirectory

Như đã đề cập đến trong phần cuối, kịch bản này có thể dễ dàng được tùy chỉnh để hiển thị tên thuộc tính của bất kỳ lớp WMI nào Ví dụ, nếu muốn hiển thị tất cả tên thuộc tính trong lớp Win32_DiskPartition, chúng ta chỉ cần thay đổi dòng:

strWMIQuery = ":Win32_BootConfiguration"

thành:

strWMIQuery = ":Win32_DiskPartition"

Trang 4

Khi chạy lại kịch bản thì kết quả thu được sẽ là:

C:\scripts>DisplayClassProperties.vbs

Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001 All rights reserved

Number of properties of :Win32_DiskPartition class

is 34

Property: Access

Property: Availability

Property: BlockSize

Property: Bootable

Property: BootPartition

Property: Caption

Property: ConfigManagerErrorCode

Property: ConfigManagerUserConfig

Property: CreationClassName

Property: Description

Property: DeviceID

Property: DiskIndex

Property: ErrorCleared

Property: ErrorDescription

Property: ErrorMethodology

Property: HiddenSectors

Property: Index

Property: InstallDate

Property: LastErrorCode

Property: Name

Trang 5

Property: NumberOfBlocks

Property: PNPDeviceID

Property: PowerManagementCapabilities

Property: PowerManagementSupported

Property: PrimaryPartition

Property: Purpose

Property: RewritePartition

Property: Size

Property: StartingOffset

Property: Status

Property: StatusInfo

Property: SystemCreationClassName

Property: SystemName

Property: Type

Hiển thị các giá trị của mỗi thuộc tính

Ở đây chúng ta quay lại để sử dụng Win32_BootConfiguration như một lớp, nếu thay đổi để kịch bản sẽ liệt kê không chỉ tên của tất cả các thuộc tính mà còn cả giá trị của chúng thì bạn chỉ cần thay đổi dòng:

Wscript.Echo "Property: " & objItem.name

thành:

Wscript.Echo "Property: " & objItem.name & vbTab &

"Value: " & objItem.value

Kết quả khi chạy:

C:\scripts>DisplayClassProperties.vbs

Microsoft (R) Windows Script Host Version 5.6

Trang 6

Copyright (C) Microsoft Corporation 1996-2001 All rights reserved

Number of properties of :Win32_BootConfiguration class is 9

Property: BootDirectory Value:

Property: Caption Value:

Property: ConfigurationPath Value:

Property: Description Value:

Property: LastDrive Value:

Property: Name Value:

Property: ScratchDirectory Value:

Property: SettingID Value:

Property: TempDirectory Value:

Kết quả các giá trị đều là trống Tại sao lại như vậy?

Đây là những gì đang tiếp tục, hãy xem dòng này:

Set objWMIService = GetObject("winmgmts:\\" &

strComputer & strWMINamespace & strWMIQuery)

Việc đưa vào các giá trị của mỗi biến chúng ta có thể ghi lại dòng này như sau:

Set objWMIService =

GetObject("winmgmts:\\.\root\CIMV2:Win32_BootConfig uration")

Lưu ý rằng chúng ta đang kết nối đến một lớp WMI cụ thể

(Win32_BootConfiguration) trong biệt danh WMI để có thể trả về một bộ gồm có các thuộc tính của lớp này Sau đó chúng ta muốn hiển thị tên và giá

Trang 7

trị của mỗi thuộc tính Nhưng các giá trị được trả về NULL (trống rỗng) là

bởi vì chưa kết nối được với nstance cụ thể của lớp này WMI Glossary nói rằng một instance là “một thể hiện của thế giới thực đã quản lý đối tượng kèm với một lớp cụ thể” và “các instance gồm có giá trị thực” và giá trị thực

này là những gì chúng ta muốn Vậy có thể kết nối đến một instance của một lớp như thế nào?

Để kết nối tới instance của một lớp, bạn cần phải chỉ định instance riêng biệt

bằng cách sử dụng key property của lớp Chúng ta có thể xem key property

là một thuộc tính cung cấp bộ nhận dạng cần thiết cho một instance của lớp

và các key property được đánh dấu bằng Key qualifier trong tài liệu MSDN

Hãy xem trang MSDN về cấu hình lớp Win32_BootConfiguration để có thể biết thêm về key property cho lớp này Hình 1 hiển thị một phần của trang này, chỉ ra cho bạn cách phân biệt key property của lớp:

Trang 8

Hình 1: Key property cho lớp Win32_BootConfiguring

Từ trang MSDN này, chúng ta có thể thấy được rằng key property cho lớp Win32_BootConfiguration là Name Điều này nghĩa là chúng ta cần phải chỉ định một giá trị cho thuộc tính này trong chuỗi biệt danh WMI nếu chúng ta muốn kết nối đến một instance cụ thể của lớp để lấy các giá trị của mỗi thuộc tính lớp Hay nói cách khác, tất cả những gì cần phải thực hiện là thay đổi dòng:

Trang 9

strWMIQuery = ":Win32_BootConfiguration"

thành:

strWMIQuery =

":Win32_BootConfiguration.Name='SOMETHING'"

Tại “SOMETHING” là giá trị thuộc tính tên của một instance cụ thể trong lớp

Chúng ta có thể tìm thấy giá trị key property của một instance cụ thể của lớp như thế nào? Có một cách là sử dụng Windows Management

Instrumentation Tester (wbemtest.exe) Bắt đầu bằng đánh wbemtest tại cửa

sổ lệnh để bạn có thể mở được cửa sổ như dưới đây:

Hình 2: Windows Management Instrumentation Tester

Kích nút Connect và kết nối đến không gian tên root\cimv2:

Trang 10

Hình 3: Kết nối đến lớp Win32_BootConfiguration Kích Connect để quay về cửa sổ chính, nơi có tất cả các nút hiển thị ở đây:

Trang 11

Hình 4: Đã kết nối đến lớp Kích nút Enum Instances và đánh tên lớp để có thể hiển thị được tất cả các instance của lớp:

Hình 5: Hiển thị các instance của lớp Cuối cùng, kích OK để hiển thị tất cả instance của lớp như đã được liệt kê bởi key property của chúng (Name):

Trang 12

Hình 6: Các instance của Win32_BootConfiguration Sau khi tất cả đã được loại ra chỉ còn lại có một instance của lớp này trên máy tính và thuộc tính Name của instance này có giá trị là

"BootConfiguration"! điều này có nghĩa là để hiển thị các giá trị của các thuộc tính của instance của lớp Win32_BootConfiguration trên máy tính của chúng ta thì tất cả những gì cần thiết là thay đổi dòng này:

strWMIQuery = ":Win32_BootConfiguration"

thành:

strWMIQuery =

":Win32_BootConfiguration.Name='BootConfiguration'"

Cách khác, kịch bản DisplayClassProperties.vbs được duyệt lại bây giờ như sau:

Option Explicit

On Error Resume Next

Dim strComputer

Trang 13

Dim strWMINamespace

Dim strWMIQuery

Dim objWMIService

Dim colItems

Dim objItem

strComputer = "."

strWMINamespace = "\root\CIMV2"

strWMIQuery =

":Win32_BootConfiguration.Name='BootConfiguration'" Set objWMIService = GetObject("winmgmts:\\" &

strComputer & strWMINamespace & strWMIQuery)

WScript.Echo "Number of properties of " &

strWMIQuery & " class is " &

objWMIService.Properties_.count

For Each objItem in objWMIService.Properties_

Wscript.Echo "Property: " & objItem.name & vbTab

& "Value: " & objItem.value

Next

Khi chạy kịch bản này, nó sẽ không chỉ hiển thị tên các thuộc tính mà còn cả giá trị của chúng nữa:

C:\scripts>DisplayClassProperties.vbs

Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001 All rights reserved

Number of properties of

:Win32_BootConfiguration.Name='BootConfiguration' class

Trang 14

is 9

Property: BootDirectory Value: \WINDOWS

Property: Caption Value:

\Device\Harddisk0\Partition1

Property: ConfigurationPath Value: \WINDOWS Property: Description Value:

\Device\Harddisk0\Partition1

Property: LastDrive Value: C:

Property: Name Value: BootConfiguration

Property: ScratchDirectory Value:

C:\WINDOWS\system32\config\systemprofile\Local Settings\Temp

Property: SettingID Value:

Property: TempDirectory Value:

C:\WINDOWS\system32\config\systemprofile\Local Settings\Temp

Đặt thông tin này vào bảng để dễ đọc hơn:

BootDirectory \WINDOWS

Caption \Device\Harddisk0\Partition1

ConfigurationPath \WINDOWS

Description \Device\Harddisk0\Partition1

LastDrive C:

Trang 15

Name BootConfiguration

ScratchDirectory C:\WINDOWS\system32\config\systemprofile\Local

Settings\Temp

SettingID Value:

TempDirectory C:\WINDOWS\system32\config\systemprofile\Local

Settings\Temp

Kết luận

Chúng ta có thể thấy rằng kịch bản “trả về tất cả các giá trị” đơn giản này đã cho những thông tin hữu dụng về máy tính Đây là một bài tập mà bạn có thể

tự thực hiện: thay vì kết nối đến một instance của lớp

Win32_BootConfiguration (chỉ có một instance của lớp này), bạn hãy cố gắng kết nối đến một instance của lớp Win32_DiskPartition (lớp có một vài instance nếu máy tính của bạn có nhiều partition) Để thực hiện điều đó, trước tiên bạn cần sử dụng wbemtest để hiển thị các instance của lớp này (tìm hiểu thêm về key property khác với các instance này) và sau đó thay đổi kịch bản DisplayClassProperties.vbs để nó có thể hiển thị các thuộc tính và các giá trị của instance cụ thể của lớp này (nghĩa là phân vùng đĩa bạn đã chỉ định)

Ngày đăng: 26/01/2014, 05:20

HÌNH ẢNH LIÊN QUAN

Hình 1: Key property cho lớp Win32_BootConfiguring - Tài liệu Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx
Hình 1 Key property cho lớp Win32_BootConfiguring (Trang 8)
Hình 2: Windows Management Instrumentation Tester - Tài liệu Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx
Hình 2 Windows Management Instrumentation Tester (Trang 9)
Hình 3: Kết nối đến lớp Win32_BootConfiguration - Tài liệu Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx
Hình 3 Kết nối đến lớp Win32_BootConfiguration (Trang 10)
Hình 4: Đã kết nối đến lớp - Tài liệu Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx
Hình 4 Đã kết nối đến lớp (Trang 11)
Hình 5: Hiển thị các instance của lớp - Tài liệu Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx
Hình 5 Hiển thị các instance của lớp (Trang 11)
Hình 6: Các instance của Win32_BootConfiguration - Tài liệu Quản lý mạng Windows bằng Script - Phần 13: Kịch bản trả về tất cả các giá trị pptx
Hình 6 Các instance của Win32_BootConfiguration (Trang 12)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w