WMI (Windows Management Instrumentation ) bruges til at styre ledelsesopgaver i enhver Windows- interface. Infrastrukturen er målrettet på C /C + + programmører , men det kan gennemføres af programmører ved hjælp af enhver Windows-kompatibelt scriptsprog , som f.eks VBScript. WMI er et kraftfuldt værktøj til administrative processer på den lokale server, men det er især nyttigt for eksterne maskiner . For WMI få adgang til en ekstern computer, skal fjerncomputeren lade det passere firewallen. Instruktioner
1
angive tilladelser på fjerncomputeren . Hvis en administrator på "Computer A" skal have adgang til "Computer B," det må være tilladt forbi "Computer B" firewall. Log ind "Computer B" og åbne kommandoprompten . Klik på " Start", "Run " og derefter skrive " CMD.EXE " og tryk "Enter"
2
Skriv følgende ved kommandoprompten : " . Netsh firewall set tjeneste RemoteAdmin aktivere" og tryk derefter på "Enter".
3
Opret et WBI locator objekt med følgende kode : Hej
Set objSWbemLocator = CreateObject ( " WbemScripting.SWbemLocator " )
4
Tilslut til fjerncomputeren via " SWbemLocator.ConnectServer Method ". Denne funktion vil returnere en " SWbemServices " objekt , som bruges til at udføre kommandoer via fjernforbindelse :
objwbemServices = SWbemLocator.ConnectServer (_
[ ByVal strServer ] _
< p> [ ByVal strNamespace ] _
[ ByVal strUser ] _
[ ByVal strPassword ] _
[ ByVal strLocale ] _
[ ByVal strAuthority ] _
[ ByVal iSecurityFlags ] _
[ ByVal objwbemNamedValueSet ] _
)
Hvor : Hej
strServer er navnet på fjerncomputeren.
strNamespace kan efterlades tomt.
strUser er brugernavnet skal bruges til at logge på fjerncomputeren.
strPassword er adgangskoden for brugeren på fjerncomputeren.
strLocale kan efterlades tomt.
strAuthority kan også efterlades tomt .
iSecurityFlags kan indstilles til ( 0x0 ) til få scriptet fortsætter med at forsøge at oprette forbindelse , indtil en forbindelse er etableret. Alternativet er ( 0x80 ) , i hvilket tilfælde forbindelsen vil forsøge at indlæse i to minutter , så dør
objwbemNamedValueSet kan efterlades tomt
For at fortsætte med eksemplet : . .
< p> Set objWMIService = objSWbemLocator.ConnectServer ( " Some_Computer " _
, _
" Some_User " _
" Some_Pass " _
"" , _
"")
5
Kør en kommando med " Win32_Process Class ". Denne funktion vil køre en kommando på fjerncomputeren . Brug MS -DOS syntaks til at køre kommandoer i denne funktion : Hej
uint32 Opret (
[ i ] string CommandLine , salg
[ i ] string CurrentDirectory ,
< p > [ i ] Win32_ProcessStartup ProcessStartupInformation , salg
[ ud] uint32 ProcessId
)
Hvor : Hej
CommandLine er den kommandolinje, der skal udføres på fjernbetjeningen maskine.
CurrentDirectory skal indstilles til Null , medmindre der er en grund til at angive en mappe .
Win32_ProcessStartup ProcessStartupInformation bør være forbindelsen objekt. I dette tilfælde vil det være den SWbemLocator.ConnectServer objekt, der oprettes i det foregående trin.
ProcessId vil blive en global variabel , der indeholder den proces ID for denne kommando. Indtast et entydigt variabelnavn her.
Funktionen returnerer "0" , hvis processen er vellykket. Fejlkodenumre returneres for mislykkede processer . For vores eksempel , kan funktionen skrives : Hej
Set objProcess = objWMIService.Get ( " Win32_Process " )
intReturn = objProcess.Create _
( " Some_Command " null , objWMIService , intProcessID )
p Hvis intReturn < > 0 Then
WScript.Echo "Process kunne ikke oprettes . " & _
VbNewLine & " Command line : " & strCommand & _
vbNewLine & " Return value : " & intReturn
Else
WScript.Echo "Process oprettet. " & _
VbNewLine & " Command line : " & strCommand & _
vbNewLine & "Process ID: " & intProcessID
End If
6 < p > Gem koden i en VBScript-fil (med filtypenavnet ". VBScript "). Hele kodeeksempel til at forbinde til en ekstern computer og køre en proces er : Hej
Set objSWbemLocator = CreateObject ( " WbemScripting.SWbemLocator " )
Set objWMIService = objSWbemLocator.ConnectServer ( " Some_Computer " _
, _
" Some_User " _
" Some_Pass " _
"" , _
"")
Set objProcess = objWMIService.Get ( " Win32_Process " )
intReturn = objProcess.Create _
( " Some_Command " Null , objWMIService , intProcessID )
< p> Hvis intReturn < > 0 Then
WScript.Echo "Process kunne ikke oprettes . " & _
VbNewLine & " Command line : " & strCommand & _
vbNewLine & " Return value : " & intReturn
Else
WScript.Echo "Process oprettet. " & _
VbNewLine & " Command line : " & strCommand & _
vbNewLine & "Process ID: " & intProcessID
End If
7 < p> Højreklik på filnavnet og vælg " Egenskaber". Marker afkrydsningsfeltet for " Tillad udførelse af denne fil. " Klik på " Anvend". Dobbeltklik på filen for at køre processen .