WSHScripts_WMI.ppt_第1页
WSHScripts_WMI.ppt_第2页
WSHScripts_WMI.ppt_第3页
WSHScripts_WMI.ppt_第4页
WSHScripts_WMI.ppt_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深入研究WSHScripts撰寫技巧與WMI類別架構 曹祖聖台灣微軟資深講師jimycao twMCP MCP I MCSA MCSE MCDBA MCAD MCSD MCT MVP 大綱 WMI與CIM介紹WSH與VBScript介紹WMI連線與安全性物件存取方式身份扮演與特權Script數位簽章 大綱 WMI與CIM介紹WSH與VBScript介紹WMI連線與安全性物件存取方式身份扮演與特權Script數位簽章 Windows管理層次 企業系統管理所面臨的挑戰 問題 2 多到管不完的系統 什麼是WMI WMI是微軟實作WBEM WebBasedEnterpriseManagement 的開始 WMI是CIM CommonInformationModel 的延伸 WMI WindowsManagementInstrumentation WMI架構 任何支援COM元件呼叫的程式i e C C VB VBScript Jscript VBA Perl CIM REP WindowsManagementService SystemRoot System32 WBEM WinMgmt exe COM Win32API Registry NTevent PerfMon ActiveDirectory MSI WDM SNMP 提供者 CIM 消費者 應用程式 應用程式 MOF SQLServer NET Exchange WMI架構 透過WMI管理Windows作業系統 Managementapplicatione g script 安全性 WMIRepository存取資源存取本機存取遠端存取 Userscript WMIservice Provider Resource WMIAdapters CIM REP COM Providers Office ADSIclient Scripting ODBCadapter SWBEM ADSIExtensionadapter WindowsManagementService SystemRoot System32 WBEM WinMgmt exe WMISDK安裝 WMICIMStudioWMIEventRegistrationandViewerWMIObjectBrowser 資料模型 CIMSchema 作業系統 CIMSchema模型 類別 class 可管理物件的類型子類別 subclass 屬性 property 鍵值參考修飾 qualifier 描述屬性與方法執行個體 instance 方法 method 其實和資料庫概念類似 CIMSchemas CIM ManagedSystemElement CIM LogicalElement CIM LogicalDevice CIM MediaAccessDevice CIM CDRomDrive CIM DiskDrive WIN32 DiskDrive WIN32 CDRomDrive 核心schema 一般schema 可延伸schema 名稱空間 Server1 Root Cimv2 Win32 LogicalDisk DeviceId C WMI物件路徑 server1 root cimv2 Win32 LogicalDisk DeviceID C server1表示電腦名稱 省略表示本機root cimv2是WMI名稱空間省略表示使用預設的名稱空間root cimv2修改預設的名稱空間LOCAL MACHINE Software Microsoft WBEM Scripting DefaultNamespaceWin32 LogicalDisk是類別名稱DeviceID C 表示關鍵屬性 值 WMICIMStudio WMICIMStudio classes properties methods qualifiers WMI提供者 提供者的角色提供者類型應用程式外加的提供者內建的提供者有那些提供者已安裝 SetobjService GetObject WinMgmts server1 Setobjs objService InstancesOf Win32Provider ForEachobjInobjsstrResult strResult obj Name vbCrLfNextWScript EchostrResult WMI標準提供者 MOF ManagementObjectFormatLanguage名稱空間宣告類別宣告執行個體宣告註冊工具mofcomp exe 各類Windows元件 管理與監控 事件 Windows應用程式 WindowsNT4 0 15WMIprovidersWindows2000 29WMIprovidersWindowsServer2003 84WMIProviders WMIProviders 列出所有Providers 大綱 WMI與CIM介紹WSH與VBScript介紹WMI連線與安全性物件存取方式身份扮演與特權Script數位簽章 如何學習撰寫WMIscript 1首先要了解如何寫WSHscript 語法 2接下來要了解CIM物件模型 3如果您要連接到遠端的CIMrepository 千萬不要將身份資料 帳號 密碼 寫在script碼中使用Windows整合驗證 或者讓使用者輸入帳號 密碼 4使用WMICIMStudio來查詢您要的類別 屬性 方法 5如果可以的話 盡量使用WQL 6在script中要做例外處理 7別忘了到ScriptCenter去觀摩別人的scripts WSH WindowsScriptHost 最新版本 WSH5 6WindowsScriptTechnologies en us script56 html wsversion aspWSH相關工具 文件下載 WSH簡介 WSH是Windows平台上script程式的執行環境 這個環境以COM技術為基礎 因此其他的廠商可以自己的技術或產品來擴充ScriptingEngine負責解譯script程式ScriptingHost負責script程式的起始 結束提供程式所需的基本功能 ScriptingEngine WSH內建了VBScript vbscript dll JScript jscript dll 其它 例如ActiveState公司Windows版本的ActivePerl 可以在WSH環境執行Perl程式 ScriptingHost WSH提供了兩個ScriptingHost執行環境 WScript exe 圖形模式CSript exe 命令列模式支援基本功能 例如 在螢幕顯示訊息存取或修改環境變數讀寫登錄資料庫 WSH也允許呼叫COM物件 CreateObjectGetObject WSH架構 WSH程式 WSHwscript execscript exe 登錄資料庫 Jscript引擎 VBScript引擎 PerlScript引擎 找尋副檔名對應 找到對應的引擎 使用WSH提供的功能 將程式交給解譯引擎 程式 WSH檔案類型 vbsVBScript語言 jsJScript語言 wsfWSH2 0之後支援 可以同時包含不同語言 wsh程式的執行參數檔 VBScript語法 類似VisualBasic的語法使用 字元連接多行如同C語言使用 物件SetobjService GetObject winmgmts 變數和常數FileSize 1024ConstMaxFileSize 4096字串FilePath C Temp 使用 符號來連接字串FileName FilePath data txt VBScript語法 IFElse判斷句If條件Then ElseIf條件Then Else EndIfSelectCase判斷句SelectCase運算式或變數Case值 1 Case值 1 EndSelectForNext迴圈ForI 1Ton NextForEach變數In集合或陣列 NextDoLoop迴圈DoWhile條件 LoopDo LoopWhile條件 VBScript語法 陣列Members Array Peter Jack Mary 使用ForEach來列舉所有陣列內的元素ForEachusernameinMembers Procedures FunctionsSub副程式名稱 參數串列 EndSubFunction函數名稱 參數串列 EndFunction錯誤處理預設情況下遇到錯誤會立刻中斷執行OnErrorResumeNext使用Err物件取得錯誤資訊Err Number Err Description Err Clear VBScript語法 OnErrorResumeNextConstCONVERSION FACTOR 1048576ConstWARNING THRESHOLD 100IfWScript Arguments Count 0Then Wscript Echo Usage FirstScript vbsserver1 server2 server3 WScript QuitEndIfForEachComputerInWScript ArgumentsSetobjService GetObject winmgmts Computer IfErr Number0ThenWscript EchoComputer Err DescriptionElseSetcolLogicalDisk objService InstancesOf Win32 LogicalDisk ForEachobjLogicalDiskIncolLogicalDiskFreeMegaBytes objLogicalDisk FreeSpace CONVERSION FACTORIfFreeMegaBytes WARNING THRESHOLDThenWscript EchoComputer objLogicalDisk DeviceID 磁碟空間不足 EndIfNextEndIfNext WSH常用物件 WscriptWscript Arguments n Wscript EchoWscript QuitWshNetwork WScript Network WshNetwork ComputerNameWshNetwork AddWindowsPrinterConnectionWshNetwork MapNetworkDriveWshShell WScript Shell WshShell ExecWshShell RunWshShell PopupWshShell RegRead WSH常用物件 FileSystemObject為一個runtime函式庫使用方法SetobjFSO CreateObject Scripting FileSystemObject ObjectFile Folder DrivePropertiesDrives Files Name SubFolder AtEndOfLineMethodsCopy Delete Move Read Write WSH常用物件 ADSIobjectsIADs IADsContainerIADsUser IADsOU IADsGroup IADsComputer 如何取得參數 使用Wscript Arguments字串集合Item 所有的參數字串Named 具名參數Unnamed 不具名參數例如 demo vbs id 123 name peter192 168 0 1Wscript Arguments Named id 123 Wscript Arguments Named name peter Wscript Arguments Unnamed 0 192 168 0 1 Wscript Arguments Item 0 id 123 Wscript Arguments Item 1 name peter Wscript Arguments Item 2 192 168 0 1 如何停止script 使用Wscript Quit方法例如 IfErr0ThenWscript Echo 無法連線到遠端電腦 結束程式 Wscript QuitEndIf WSH與VBScript使用 wscript execscript exe命令列參數使用 大綱 WMI與CIM介紹WSH與VBScript介紹WMI連線與安全性物件存取方式身份扮演與特權Script數位簽章 使用Locator連接WMI服務 安全檢查 安全檢查 安全檢查 使用Locator連接遠端WMI服務 Server InputBox 請輸入主機名稱 遠端連接 Username InputBox 請輸入帳號 遠端連接 Password InputBox 請輸入密碼 遠端連接 OnErrorResumeNextSetobjLocator CreateObject WbemScripting SwbemLocator SetobjService objLocator ConnectServer Server root cimv2 Username Password IfErr 0Then 進行下一步處理ElseWScript EchoErr Source Err Number Err DescriptionEndIf 使用Locator連接WMI 使用moniker字串連接 moniker字串和標準WMI物件路徑格式雷同moniker字串包含以下三部份前置碼 WinMgmts 安全性設定 用 區分WMI物件路徑 用 區分範例 winmgmts impersonationLevel Impersonate authenticationLevel PktPrivacy ServerA root default 使用moniker字串連接 OnErrorResumeNextSetobjService GetObject winmgmts ServerA IfErr 0Then 進行下一步處理ElseWScript EchoErr Source Err Number Err DescriptionEndIf 使用Moniker連接WMI ImpersonationLevel AuthenticationLevel 系統 Locatorvs Moniker 物件 服務 服務 WinMgmts Locator ConnectServer 身份資料 Locator Moniker 大綱 WMI與CIM介紹WSH與VBScript介紹WMI連線與安全性物件存取方式身份扮演與特權Script數位簽章 使用SWbemServices物件 存取WMI的最主要物件使用類別取得指定的執行個體存取執行個體的屬性方法 管理應用程式ex Script 屬性與方法的使用 軟體安裝檢查實體記憶體Win32 computerSystem安裝WindowsInstallerPackage msi Win32 Product管理DHCP用戶端EnableStatic方法EnableDHCP方法Get與InstancesOf方法 存取SWbemObject物件 軟體安裝DHCP用戶端設定 修改屬性值 使用Put 方法 屬性 DescriptionFileSystemSizeFreeSpaceVolumeName 方法 ResetSetPowerState Get Put 記憶體 Win32 LogicalDisk DriveID C 修改執行個體屬性值 修改磁碟標籤 錯誤處理 回傳值COM RPC x8007 WMI x8004 錯誤處理 WMIErrors OnErrorResumeNextSetobjDisk GetObject winmgmts Win32 LogicalDisk deviceID C retVal objDisk convertIfErr0ThenWScript EchoErr Number Err Description Err SourceEndif 錯誤處理 TheSWbemLastErrorObject OnErrorResumeNextSetobjService GetObject WinMgmts SetobjObject objService Get NoSuchClass IfErr 0ThenWScript Echo Gottheclass ElsesetobjObject CreateObject WbemScripting SWbemLastError SetoPropSet objObject properties ForEachoPropinoPropsetstrLastError strLastError oProp name oProp value vbcrlfNextstrErr Source Err Source vbcrlfstrErr strErr Description Err Description vbcrlfstrErr strErr Number 0 x Hex Err Number vbcrlfMsgBoxstrErr vbInformation FromErrObject MsgBoxstrLastError vbCritical FromLastErrorObject EndIf 錯誤處理 SWbemObject SWbemObject SWbemPropertySet Represents Represents SWbemObject SetobjService GetObject winmgmts Setobj objService Get Win32 LogicalDisk DeviceID C ForeachobjPropertyinobj properties IfobjProperty name FreeSpace ThenvFreeSpace The objProperty Name is objProperty value Bytes EndIfNextMsgBoxvFreeSpace vbInformation C 碟空間 SetobjService GetObject Winmgmts Setobj objService Get Win32 LogicalDisk DeviceID C vFreeSpace obj Properties Item FreeSpace Value Bytes MsgBoxvFreeSpace vbInformation C 碟空間 方法 InParameters OutParameters 呼叫方法 SetobjService GetObject winmgmts Win32 Service Name Messenger SetobjOutParm objService ExecMethod StopService IfobjOutParm ReturnValue 0ThenWScript Echo ThemessengerServicehasbeenstopped ElseWScript Echo Error objOutParm ReturnValueEndIf SetobjService GetObject winmgmts SetobjOutParm objService ExecMethod Win32 Service Name Messenger StopService 直接存取 Properties Methods SWbemObject SWbemObject State SWbemObject StartService Represents TheAlerterService 直接存取 方法 SetobjService GetObject WinMgmts Win32 Service Name Messenger retVal objService StopService IfretVal 0Thenwscript Echo ThemessengerServicehasbeenstopped Elsewscript Echo Error retValEndIf 直接存取 屬性 Setdisk GetObject winmgmts Win32 LogicalDisk DeviceID C WScript Echo FreeSpace disk FreeSpace Wscript echo FreeSpace GetObject winmgmts Win32 LogicalDisk DeviceID C FreeSpace SWbemObject 方法與屬性存取 非同步方法呼叫 同步呼叫非同步呼叫半同步呼叫 Winmgmt Provider Data RunningScript memory SWbemSink Script WMI 呼叫非同步方法 並且指定 mySink 物件 回報結果 回報結果 mySink 非同步呼叫 建立新的執行個體 只有部份提供者支援 SetUDTClass GetObject winmgmts root MicrosoftSQLServer MSSQL UserDataType SetUDT UDTClass SpawnInstance UDT SQLServerName MySQL UDT DatabaseName Northwind UDT Name MyUDTTest UDT BaseDatatype int UDT AllowNulls FalseUDT Put 大綱 WMI與CIM介紹WSH與VBScript介紹WMI連線與安全性物件存取方式身份扮演與特權Script數位簽章 驗證 管理應用程式e g script DCOM Script Man in the middleattack 身份扮演 UserScript WMIService Provider Resource Account NetAdmin Password Account LocalSystem Password Account NetAdmin Password Permissions NetAdmin Read Only 授權與特權 授權機制NTLMKerberos特權執行特定工作時 必須指定給予特權 SetobjService GetObject winmgmts Shutdown Debug Setobjs objService InstancesOf Win32 OperatingSystem ForEachobjinobjsobj Shutdown Next 特權 特權 特權 特權 使用SWbemSecurity物件 使用SWbemSecurity物件 SetobjLocator CreateObject WbemScripting SwbemLocator SetobjServic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论