konfigurációkezelés windowson
DESCRIPTION
Intelligens rendszerfelügyelet. Konfigurációkezelés Windowson. Micskei Zoltán http://mit.bme.hu/~micskeiz. Previously. Modellezés Felhasználó kezelés Konfiguráció kezelés Konfiguráció kezelés alapok Konfiguráció kezelés Windowson Konfiguráció kezelés CMDB. - PowerPoint PPT PresentationTRANSCRIPT
Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék
Konfigurációkezelés Windowson
Micskei Zoltánhttp://mit.bme.hu/~micskeiz
Intelligens rendszerfelügyelet
Previously.. Modellezés
Felhasználó kezelés
Konfiguráció kezeléso Konfiguráció kezelés alapoko Konfiguráció kezelés Windowsono Konfiguráció kezelés CMDB
Konfigurációkezelés általánosan
Konfigurációs adatbázis/Konfiguráció-menedzser
Form TitleForm Title
DB ...
Kliens
lib/tool
Kliens
„Provider”„Provider”„Provider”„Provider”
Hordozóprotokoll
OperációkAdatok
Konfigurációkezelés Windowson
Windows Management Instrumentation (WMI)
Form TitleForm Title
DB ...
Kliens
lib/tool
Kliens
„Provider”„Provider”„Provider”„Provider”
Hordozóprotokoll
OperációkAdatok
MOF
Windows Management Instrumentation (WMI)
WMI felhasználói szemszögből egy CIM Object Manager a Windows platformra
o „winmgmt” szolgáltatáso erősen kiterjesztett sémakészlet
A modern Windowsokon elérhetőo Rendszermenedzsment alapja
COM/DCOM interfész az objektumtérhezo IWbemServiceso a CIM szabvány ilyeneket nem definiál!o lekérdezések, metódushívások, sémamódosítások, …o Sokféle elérés: szkriptnyelvek, .NET…
WMI kipróbálása WMIC: WMI command-line Egyszerű parancssoros WMI felület CIM elfedése alias-ok segítségével
Háttérben: Win32_Processor CIM osztály példányainak lekérdezése
WMI - Tipikus feladatok HW és SW elemek lekérdezése
o BIOS verziószáma, memóriamodulok, telepített alkalmazások...
WMI – Tipikus feladatok Beavatkozás:
Távoli lekérdezés/beavatkozás:
DEMO
Aliasok kilistázása: wmic /? Mit lehet kezdeni egy aliassal:
owmic logicaldisk /?owmic os list full
Milyen paramétere van az adott műveletnek:owmic logicaldisk get /?:FULL
Exportálás owmic logicaldisk get /format /?owmic logicaldisk get /format:rawxml > disks.xml
Ismerkedés a WMIC-kel
WMI architektúra: felhasználói szemszögWMI információk
felhasználása
CIMOM: WMI szolgáltatás
A lista bővíthetőWDM
Registry
SNMP
Exchange
Win32 API
MOF
CIM Repository
WindowsManagement Service
WinMgmt.exe
COM
C/C++ alkalmazás
PowerShell szkript
.NET alkalmazás
CIM(Common
Information Model)
Providers (Szolgáltatók)
Consumers(fogyasztók)
Példa: néhány WMI névtér, osztály
Win32
• Hardver• Win32_BaseBoard• Win32_DiskDrive
• OS• Win32_PageFile• Win32_Registry
• Telepített szoftver• Win32_Patch• Win32_Product
• Teljesítményszámlálók• Win32_Perf• Win32_PerfRawData
directory\ldap
• ds_person• ds_group
Microsoft\SqlServer
• SqlService• ServerSettings
IntelNIC
• IANet_EthernetAdapter
DEMO
WMI részei:o C:\windows\system32\wbem
Itt találhatóak:o *.exeo dll: provider-ek megvalósításao *.mof
WBEM könyvtár, MOF fájlok
WMI Query Language (WQL) WMI: nagy mennyiségű adat WQL: keresés, szűrés ezekben
SQL szerű szintaxis:o SELECT attrib FROM osztály WHERE feltétel
Példa:SELECT eventcode, message, sourcenameFROM Win32_NTLogEvent WHERE type = 'error' AND logfile ='system'
WMI elérése
Windows Management Instrumentation (WMI)
Form TitleForm Title
DB ...
Kliens
lib/tool
Kliens
„Provider”„Provider”„Provider”„Provider”
MOF
Távoli elérés(Vista előtt):
DCOM
Helyi gép:C++/
COM, .NET, VBScript,
PowerShell
WMI távoli elérés Megvalósítás: DCOM hívások Tűzfal beállítások engedélyezése
o Távoli adminisztráció (TCP 135-ös port)netsh firewall set service RemoteAdmin enable
WMI felhasználása Ad-hoc lekérdezések, utasítások
o Pl.: wmic Szkriptek készítése
o bonyolultabb műveletek, rendszeres feladatoko Pl.: VBScript, PowerShell
Felhasználás .NET-es alkalmazásbano System.Management névtér osztályai
Rendszermenedzsment alkalmazáson keresztülo Pl.: MS System Center, HP OpenView…
WMI felhasználása – VBScript Példa: nem működő eszközök lekérdezésestrComputer = "."Set objWMIService = GetObject(_ "winmgmts:\\" & strComputer & "\root\cimv2")Set colItems = objWMIService.ExecQuery _ ("Select * from Win32_PnPEntity " _ & "WHERE ConfigManagerErrorCode <> 0")
For Each objItem in colItemsWscript.Echo "Name: " & objItem.Name
Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID Wscript.Echo "Service: " & objItem.ServiceNext
Helyi gép WMI szolgáltatása
WQL lekérdezés végrehajtása
Eredményhalmaz feldolgozása
WMI felhasználása – .NET Menyi szabad hely van a C: meghajtón? WQL lekérdezés végrehajtása távoli gépen
Kapcsolódás a ManagementScope-
hoz
WQL lekérdezés
Eredményhalmaz feldolgozása
WMI felhasználása – PowerShell Get-WmiObject cmdlet segítségével
Visszaadott objektum:o Típus: System.Management.ManagementObjecto CIM-ben definiált tulajdonságokoMetódusok
WMI felhasználása – PowerShell Beépített CIM objektumok:
Eredmények szűrése:oWQL kifejezés átadása a –query paraméterbeno vagy: PowerShell cmdletek használata
Példa: keressük meg a memóriával kapcsolatos CIM objektumokat
WMI felhasználása – PowerShell Egy kis segítség: PowerShell WMI Explorer
WMI felhasználása – PowerShell Melyik gépen nézzünk filmet este?param( [string[]] $computers = $(throw "Supply machines!"))
foreach ($computer in $computers){# maximális monitor felbontás
$screenSize = (Get-WmiObject win32_DesktopMonitor -ComputerName $computer | Measure-Object -Maximum -Property screenwidth).Maximum
# van-e divx a gépen $divx = (Get-WmiObject win32_codecfile
-ComputerName $computer | where {$_.filename -contains "divx"} | Measure-Object).Count
write-host $computer $screenSize $divx}
WMI fejlesztői szemszögből Bizonyos feladatokat a CIMOM-nak
mindenképpen delegálnia kelloMetódushívás hatására „történjen is valami”o Osztályok példányai „a valóságot tükrözzék”o…
Megvalósító komponensek: WMI provider-eko Szintén az IWbemServices-t implementáló COM
kiszolgálók• Meglehetősen bonyolult implementáció
o Alternatíva: .NET System.Management névtér
WMI Providerek
SNMPmanaged entity
Windows (Win32)managed entity
Any managed entity (native code)
SNMP WMIprovider
Cimv2 WMI provider
Any WMI provider
Native C/C++
...
WMI providers
and managed objects
COM Inter-Op
System.Management (instrumentation objects)
.NET WMI provider
.NET managed application/entity
.Net C#, VB .NET, ...
WMI core(CIM Object Manager)
WMI repository
WMI infrastructure
COM / DCOM
Egyszerű WMI Provider C#-ban
Forrás: http://www.codeguru.com/csharp/csharp/cs_network/wmi/article.php/c6035
Web Services for Management (WS-Management)
Kibocsátó: Distributed Management Task ForceMegalkotók: AMD, Dell, Intel, Microsoft, Sun…Verzió: első draft (2005. 09.), aktuális: 1.0.0 (2008. 02. 12.)Cél: Webszolgáltatás alapú protokoll rendszerek
menedzseléséhez
Konfigurációkezelés általánosan
CIM Object Manager
Form TitleForm Title
DB ...
Kliens
lib/tool
Kliens
„Provider”„Provider”„Provider”„Provider”
WS-Management
OperációkAdatok
WS-Management
WBEM egyik protokollja
Web Service alapúo sok egyéb WS-* protokollra épül
CIMOM elérése, lekérdezése, menedzseléseo De használható nem csak CIMOM-hoz!
WS-Managenent példa üzenetMelyik gép Mit akarunk
Gép melyik erőforrásával
Ha az erőforrás egy csoport (pl. CPU-k), akkor a csoport
melyik tagja
WS-Management: műveletek DISCOVERoerőforrások felderítése
GET, PUT, CREATE, DELETEoerőforrások kezelése
ENUMERATEogyűjtemények elemeinek felsorolása
SUBSCRIBEoeseményekre feliratkozás
EXECUTEometódusok meghívása
Felhasznált protokollok
Szállítás
WS-MAN WSDL Binding for CIM
XML, SOAP, WS-Addressing
HTTPS, TCP
WS-Transfer WS-Enum WS-Eventing
WS-Management
WS-CIM Schema Translation
Security profiles
ResourceAddressing
Üzenetküldés
Leíró
Adatátvitel
Alkalmazás
Integráció
Biztonság
Implementációk Windows Remote Management (WinRM)
o WMI lekérdezés és távoli parancssoro CLI, scripting API
Openwsman; F/OSSo Kiszolgáló: CIM-XML-t „fordít” WS-Managementre
• Adapter tervezési minta; SBLIM SFCC, mint klienso CLI, mod_wsman, Ruby kötések
wiseman; F/OSSo Java alapú kliens és kiszolgáló megvalósítás támogatása
Ki használja? Windows Server 2008 R2
o Server Manager távoli gépreo PowerShell 2.0 Remoting
VMware ESX és ESXio openwsman deamon futtatása
Microsoft Operations Managero Cross Platform: Linux gépek monitorozása
HP System Insights Manager
DEMO
Kliens: Windows Vista, WinRM Szolgáltatás: ESX
winrm enum cimv2/CIM_Processor -r:https://galadriel.ftslab.local/wsman -skipCAcheck -skipCNcheck -auth:basic -username:root -password:password
VMware API leírás
ESX lekérdezése WinRM-ből
Windows Remote Management (WinRM)
Windows Remote Management (WinRM) Új távoli menedzsment szolgáltatás a Windowsban
WS-Management implementáció
Elérhetőség:oWindows Vista, Windows Server 2008: gyárilago XP, Windows Server 2003 R2: külön telepíthető (csak
az 1.0!)
WMI beágyazható WinRM-be, de több annál
WinRM vs. WMI
WMI:o DCOM-ot használ a távoli elérésreo Nem szabványos, nem tűzfalbarát
WinRM:oWS-Managemento DMTF szabvány, http/https porton keresztül
WinRM architektúra
WinRM inicializálása WinRM részei:
oWinRM szolgáltatásoWinRM listener: WS-Management üzenetek
fogadására szolgáló végpont definíciója Inicializálás:
Példa WMI lekérdezés WinRM-en keresztül Művelet: GET Erőforrás URI: WMI objektum Távoli gép, hitelesítési információ megadása
További műveletek Enumerate:
o Több objektum lekéréseo winrm enumerate wmicimv2/Win32_LogicalDisk
Invoke:o Beavatkozáso winrm invoke StopService wmicimv2/win32_service?name=W32Time
WMI objektum elérése Resource URI forma:
o prefix/osztály?tulajdonság=érték
URI WMI prefix:o http://schemas.microsoft.com/wbem/wsman/1/wmi/<WmiNamespace>
URI példa:o http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt
Alias-ok használatawinrm help alias
wmi = http://schemas.microsoft.com/wbem/wsman/1/wmi
wmicimv2 = http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2
cimv2 = http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2
winrm = http://schemas.microsoft.com/wbem/wsman/1wsman = http://schemas.microsoft.com/wbem/wsman/1shell =
http://schemas.microsoft.com/wbem/wsman/1/windows/shell
WinRM felhasználása
WinRM parancssori eszköz
WinRM scripting APIo pl.: VBScript, PowerShell 2.0 Remoting
XML üzenet legyártása egyéb módon
WinRM felhasználása: VBScript
WinRM példa üzenet Win32_LogicalDisk WMI objektum lekérdezése
Biztonság Titkosítás:
o Nincs / HTTPS csatorna / XML üzenet titkosítása Hitelesítés:
o Basic / Negotiate / Kerberos … Távoli fél azonosítása
o Tanúsítvány / tartományi környezetben Kerberos Trusted hosts
winrm help auth winrm help config
DEMO WinRM beállítások
o winrm get winrm/config WinRM lekérdezés tartományi gépek között
o winrm get wmicimv2/Win32_Processor -r:sicilyo winrm enum wmicimv2/Win32_Processor -r:sicily
WinRM és openwsman:o Basic hitelesítés, cimv2 séma használatao Linux -> Windows:
• wsman identify -h florence --port 80 --auth basic• wsman -h florence --port 80 --auth basic enumerate
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Processor
o Windows -> Linux:• Linuxon: openwsmand –d• Windows: winrm id -r:http://naples:8889/wsman -auth:basic -u:root
WinRM
DEMO
Követelmény:o PowerShell 2.0 CTP3oWinRM 2.0 CTP3
Egy parancs távoli végrehajtása:o -ComputerName paraméter
Távoli munkamenet:o Enter-PSSession gepnev
PowerShell remoting
Windows Remote Shell (WinRS) Távoli parancsvégrehajtás
Csak nem interaktív parancsokra, deo Trükk: winrm –r:192.168.127.140 cmdo Parancssor a távoli gépre
További információ WMI
oMSDN: WMIoWMI Blog
WinRMoMSDN: Windows Remote ManagementoWindows Remote Management Command-Line Tool (
Winrm.cmd) Openwsman
o http://www.openwsman.org/