熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows優化 >> 正文

在你的企業中管理Windows和應用程序

2013-11-12 16:45:06  來源: Windows優化 

  概述
  WMI是Microsoft用來支持企業管理系統而引進的幾項技術之一 Active Directory提供了企業范圍內的地點政策和組織管理信息Microsoft® 管理控制台系統(MMC)是編寫應用管理程序時的標准框架Windows Script Host系統(WSH)允許管理人員自動處理復雜的任務最後WMI是基於Windows操作系統及其應用程序的一項遠程控制的技術
  
  WMI允許應用程序的開發者使用簡單的一致的機制去查詢企業中的任一台計算機上的信息或是進行系統配置通過WMI接口可以獲得的信息量是驚人的包括硬件設置狀態信息驅動器配置BIOS信息應用程序的設置事件記錄信息以及其他WMI通過一組API來獲得信息但它表征的是一種通過一個簡單工業標准對象管理模式來獲取信息的函數這使得應用程序的開發者不必學習Windows的每一個API的具體細節
  
  要理解這樣做的效果假定應用程序的開發者想枚舉出機器上四種不同類型的對象服務指針過程和CPU如果沒有WMI系統該開發者只好尋求不同的API來完成不同類型的枚舉但是使用WMI系統這就變得相當簡單了這是因為每一對象類型都是以同一種方式枚舉的例如圖(Figure )顯示了用VBScript代碼編寫的WSH系統完成此任務是如何的簡單
  
  如果你運行的是Windows 你可以將這段代碼拷貝到ENUMVBS文件中並且在控制台窗口運行cscriptENUMVBS命令如果遇到錯誤最可能的原因是為了使該程序更短而忽略了對空指針的查錯例如若系統不存在已安裝指針的備注列表objDescription文件將返回空指針
  
  如果你運行的操作系統是Windows x或是Windows NT® WMI控件是可選組件在Microsoft的網站上可得到最新版本的WMI
  
  顯然中的程序也可以用來枚舉遠程機器上的同樣信息要顯示MYSERVER的信息只需使用WinMgmts://MYSERVER在首行作為GetObject的參數實際上不論是從本地或是從遠程的機器WMI得到的信息都是使用同一個API得到的雖然某些Win API提供辨認遠程計算機的功能其他的API只能訪問本地的機器無法實現從遠程計算機上得到信息
  
  WMI還能使對被管理對象的信息進行設置以及調用變得簡單可以采用同樣的語法結構來進行中止服務結束進程或是從遠程計算機注銷用戶等操作應用程序的開發者只需知道對象的名稱以及准備進行的操作的名稱而沒有必要了解一個新的API
  
  為完成所有事情事件的基礎結構將對通過WMI可以訪問的對象給出修正信息在本文的稍後部分我將舉一個創建和撤銷監視器進程的例子另一個例子是當插入或取出軟盤時產生一個提示信息WMI對象管理各類型操作采用的是同樣的函數甚至當基本API不提供針對對象的此類信息WMI體系結構可以模擬監控這些事件的行為另外WMI服務自由的提供所有這些功能的遠程訪問
  
  除了WMI已經列出的信息應用程序還可以列出他們自定義的對象和事件這樣任意WMI管理程序就能管理你的其他應用程序包括遠程配置修改提示信息或是接受自定義事件
  
  WMI技術的起源
  雖然WMI是Microsoft開發的技術但是它是建立在近年來才引入的工業標准的基礎上的要了解WMI就需要了解它從最初的所謂企業網絡管理系統(WBEM)的演化過程幾年以前為建立企業系統和設備管理系統的標准體系一些計算機公司創建了WBEM系統最初的目的是開發單一的管理企業任意網絡組件標准體系這將簡化由諸如SNMP網絡設備標准體系DMI桌面標准體系等多個獨立體系存在而引起的問題將來計算機公司開發與WBEM相配套的硬件軟件以及操作系統都將能以同樣的方式進行管理這樣單個管理程序就將能輕易地管理企業范圍內的所有不同類型的組件了實際上WBEM的最初功能設計是針對(Desktop Management Task Force (DMTF)的DMTF系統是針對維持實現WBEM系統最初目標所需的標准系統而設計的
  
  CIM類
  最初的WBEM系統的第一個標准是所謂的常規信息模式(CIM)的管理信息描述函數CIM采用面相對象函數模擬信息使用分類定義分級結構事例屬性以及函數描述管理信息CIM類是通過管理對象格式(MOF)在文本文件中定義的完整的MOF文件格式系統已經超出了本文的范圍但是如果你熟悉C++JAVA或是接口定義語言(IDL)則你將對它的語法結構相當熟悉以下就是如何定義一個類及其子類的一個例子
  
  [abstract] class Automobile
  
  {  
  
  [key] string Make;  
  
  [key] string Model;  
  
  void Recall();
  
  };
  
  class Car : Automobile
  
  {  
  
  real BlueBookValue;
  
  };
  
  class Truck : Automobile
  
  {  
  
  uint Axles = ;
  
  };
  
  以上的MOF文件定義了Automobile作為一個基本類及其兩個子類Car和TruckAutomobile具有Make屬性Model屬性以及Recall函數Car具有BlueBookValue的額外屬性Truck具有Axles屬性默認值為(對於Axles而言如果不另外指定Truck每一次得到的新的值是括號裡的文字(abstract和key)引入了CIM分類參數的概念分類參數可以應用於整個類屬性函數或是單獨的函數參數分類參數與IDL文件中屬性的概念類似它們提供了與類屬性和函數的使用相關的額外信息在這個例子裡abstract類的分類參數意味著你無法看到Automobile的示例另一方面由於Car和Truck不是abstract類你可以列舉Car和Truck的例子Key屬性分類參數意味著任意Automobile(或任意派生類)可以被參數Make和Model唯一確定這是一個從數據庫借用的概念所有支持多種事例的類需要確定Key屬性即每一種事例必須是Key屬性值的唯一組合換句話說即使Automobile類定義只允許存在唯一的Ford Mustang事例但是你可以創建Ford Taurus甚至Gm Mustang的事例如果類有且只有一種事例它可以用單獨的一個類的分類參數來描述在這種事例下類不再需要確定諸如Key之類的其他屬性了MOF文件格式是用來描述事例或類定義的以下的示例描述了Truck的一種事例
  
  instance of Truck
  
  {  
  
  Axles = ;  
  
  Make = Ford;  
  
  Model = Big Rig;
  
  };
  
  單獨的CIM標准體系還不足以使公司能創建可管理的對象並且防止出現混亂例如一個公司將路由器稱為網絡路由器而另一個公司將同一個東西稱為路由器甚至更糟的是兩個公司都可以定義同樣的類的名稱但屬性不同為防止出現這種混亂DMTF體系定義了CIM模式模式是一個所有公司都統一遵循的一個有明確定義的類的集合通常作為CIM模式體系一部分的類以CIM_為前綴(例如CIM_Battery或CIM_Process)CIM模式倚重於對分級結構的使用允許管理程序以同樣的方式處理相似對象的群例如CIM_BatteryCIM_Printer以及CIM_Processor都是從基本類CIM_LogicalDevice派生得到的這要求管理程序了解如何通過CIM_LogicalDevice來管理有此類派生得到的任意類型的設備此外任意派生類都支持基本類的屬性和函數類CIM_LogicalDevice具有確定是否支持電源管理程序的屬性(PowerManagementSupported)以及允許設置電源狀態的函數(SetPowerState)通過從基本類功能列表得到的信息應用程序可以管理打印機處理器以及其他任意從CIM_LogicalDevice派生的設備的電源狀態
  
  分級結構的另一個好處是如果計算機分銷商們能夠提供比CIM類定義的更多信息的話他們能夠擴展CIM_schema例如Windows操作系統知道已安裝的打印機AveragePagesPerMinute參數類CIM_Printer沒有定義此信息因此Microsoft由CIM_Printer派生定義了類Win_Pointer此類具有額外屬性AveragePagesPerMinute知道類Win_Proiner的管理程序可以使用這個信息而只知道如何管理CIM_Pointer的管理程序也能正常工作
  
  WBEM支持
  CIM和MOF標准體系以及CIM模式是最初的WBEM體系的核心組件這些標准體系是不依賴於操作平台和實現的應用程序的為使統一的管理成為現實硬件和軟件的分銷商們必須創建支持這些標准體系的系統(指的是實現WBEM的應用程序)這包括通過由CIM模式派生出來的類的功能列表Microsoft在Windows操作系統上實現WBEM的應用程序是WMI
  
  並不只有Microsoft支持WBEM系統硬件廠商也同意為實現WBEM系統提供網絡以及存儲設備Sun公司許諾為實現WBEM提供Solaris操作系統諸如Tivoli Systems和Computer Associates等管理軟件的主要廠商也同意在他們的產品中支持WBEM系統有了這些軟硬件方面的支持以一種單一的一致的方式管理企業將成為現實
  
  WMI體系結構
  了解圖所示的WMI組件的體系結構可以幫助分析WBEM標准體系實現方式的創建首要的任務是確定CIM schema中的哪些組件在計算機中運行Windows第二步是通過將Windows下列出的所有額外信息定義為類以擴展CIM schemaMicrosoft使用的約定類是CIM類派生得到的類的前綴為Win_(例如Win_NetworkAdapter就是由CIM_NetworkAdapter派生得到的類)最終你仍需要編寫某些軟件來實際提供管理功能保留已有的被支持類的列表是必須的並且當類的不同事例需要時還需要提供某些實際數據通過完成所要求的操作來響應函數對對象的調用也是必須的在最初的術語中這被稱為CIM對象管理程序(CIMOM)在Windows NT中CIMOM處於WinMgmt服務包中通過WinMgmtexe文件
From:http://tw.wingwit.com/Article/os/youhua/201311/10808.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.