Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Πώς να εκτελέσει μια διαδικασία σε έναν απομακρυσμένο υπολογιστή με το WMI

WMI ( Windows Management Instrumentation ) χρησιμοποιείται για τον έλεγχο των εργασιών διαχείρισης σε κάθε περιβάλλον εργασίας των Windows . Η υποδομή απευθύνεται σε C /C + + προγραμματιστές , αλλά μπορεί να εφαρμοστεί από τους προγραμματιστές που χρησιμοποιούν οποιοδήποτε συμβατό με τα Windows scripting γλώσσα , όπως VBScript . WMI είναι ένα ισχυρό εργαλείο για τις διοικητικές διαδικασίες στον τοπικό διακομιστή , αλλά είναι ιδιαίτερα χρήσιμο για απομακρυσμένα μηχανήματα . Για WMI για πρόσβαση σε απομακρυσμένο υπολογιστή , ο απομακρυσμένος υπολογιστής πρέπει να επιτρέψουμε να περάσει το τείχος προστασίας . Οδηγίες
Η 1

Ρυθμίστε τα δικαιώματα στον απομακρυσμένο υπολογιστή . Εάν ένας διαχειριστής στο "Computer A " πρέπει να έχουν πρόσβαση σε "Computer B , " θα πρέπει να επιτρέπεται μετά από το "Computer Β " firewall . Συνδεθείτε στο "Computer Β " και ανοίξτε τη γραμμή εντολών . Κάντε κλικ στο κουμπί "Start ", " Run ", πληκτρολογήστε " CMD.EXE " και πατήστε "Enter " 2

Πληκτρολογήστε τα ακόλουθα στη γραμμή εντολών : " . Netsh firewall set RemoteAdmin υπηρεσία επιτρέπει " και στη συνέχεια πατήστε " . Enter"
εικόνων 3

Δημιουργία WBI εντοπισμού αντικειμένων με τον ακόλουθο κώδικα :

Set objSWbemLocator = CreateObject ( " WbemScripting.SWbemLocator " )
Η 4

Συνδεθείτε με τον απομακρυσμένο υπολογιστή μέσω του "Μέθοδος SWbemLocator.ConnectServer . " Αυτή η συνάρτηση θα επιστρέψει μια " SWbemServices " αντικείμενο , το οποίο χρησιμοποιείται για την εκτέλεση εντολών μέσω της απομακρυσμένης σύνδεσης :

objwbemServices = SWbemLocator.ConnectServer ( _

[ ByVal strServer ] , _

[ ByVal strNamespace ] , _

[ ByVal strUser ] , _

[ ByVal strPassword ] , _

[ ByVal strLocale ] , _

[ ByVal strAuthority ] , _

[ ByVal iSecurityFlags ] , _

[ ByVal objwbemNamedValueSet ] _

)

Πού :

strServer είναι το όνομα του απομακρυσμένου υπολογιστή .

strNamespace μπορεί να μείνει κενό .

strUser είναι το όνομα χρήστη που θα χρησιμοποιηθεί για τη σύνδεση με τον απομακρυσμένο υπολογιστή .

strPassword είναι τον κωδικό πρόσβασης για τον χρήστη στον απομακρυσμένο υπολογιστή .

strLocale μπορεί να μείνει κενό .

strAuthority μπορεί να μείνει κενό .

iSecurityFlags μπορεί να ρυθμιστεί σε ( 0x0 ) για να κάνει το σενάριο να συνεχίσει να επιχειρεί να συνδεθεί έως ότου αποκατασταθεί η σύνδεση . Η εναλλακτική λύση είναι ( 0x80 ) , στην οποία περίπτωση η σύνδεση θα προσπαθήσει να φορτώσει για δύο λεπτά , στη συνέχεια πεθαίνουν

objwbemNamedValueSet μπορεί να μείνει κενό

να συνεχίσετε το παράδειγμα : . .

Set objWMIService = objSWbemLocator.ConnectServer ( " Some_Computer " , _

, _

" Some_User " , _

" Some_Pass " , _

" " , _

" " )
5

Εκτελέστε μια εντολή με την « Win32_Process Class . " Αυτή η λειτουργία θα εκτελέσετε μια εντολή στον απομακρυσμένο υπολογιστή . Χρησιμοποιήστε τη σύνταξη MS - DOS για να εκτελέσετε τις εντολές σε αυτή τη λειτουργία :

UINT32 Δημιουργία (

[ σε ] σειρά CommandLine , πώληση

[ σε ] σειρά CurrentDirectory ,

[ σε ] Win32_ProcessStartup ProcessStartupInformation , πώληση

[ έξω ] UINT32 Αναγνωριστικό διεργασίας

) ?

Πού :

CommandLine είναι η γραμμή εντολής που πρόκειται να εκτελεστεί στον απομακρυσμένο υπολογιστή .

CurrentDirectory πρέπει να οριστεί σε Null εκτός και αν υπάρχει ένας λόγος για να καθορίσετε έναν κατάλογο .

Win32_ProcessStartup ProcessStartupInformation πρέπει να είναι το αντικείμενο σύνδεσης . Σε αυτή την περίπτωση , θα είναι το αντικείμενο SWbemLocator.ConnectServer που δημιουργήθηκε στο προηγούμενο βήμα.

Αναγνωριστικό διαδικασίας θα γίνει μια παγκόσμια μεταβλητή που περιέχει τον αριθμό της διαδικασίας για αυτή την εντολή . Πληκτρολογήστε ένα μοναδικό όνομα μεταβλητής εδώ .

Οι αποδόσεις λειτουργία " 0 " εάν η διαδικασία είναι επιτυχής . Οι αριθμοί επέστρεψε κωδικό σφάλματος για τις αποτυχημένες διαδικασίες . Για το παράδειγμά μας , η λειτουργία μπορεί να γραφτεί :

Set objProcess = objWMIService.Get ( " Win32_Process " )

intReturn = objProcess.Create _

( " Some_Command » , null , objWMIService , intProcessID )

Εάν intReturn <" δεν θα μπορούσε να δημιουργηθεί Process . "> 0 τότε

wscript.echo & _

VbNewLine & " Γραμμή εντολών : " & strCommand & _

vbNewLine & "τιμή επιστροφής: " & intReturn

Else

wscript.echo «Διαδικασία που δημιουργήθηκε . " & _

VbNewLine & " Γραμμή εντολών : " & strCommand & _

vbNewLine & " Αναγνωριστικό διεργασίας : " & intProcessID

End If
Η 6

Αποθηκεύστε τον κώδικα σε ένα αρχείο VBScript ( με επέκταση " . vbscript » ) . Το σύνολο του δείγματος κώδικα για να συνδεθείτε σε έναν απομακρυσμένο υπολογιστή και να εκτελέσετε μια διαδικασία είναι :

Set objSWbemLocator = CreateObject ( " WbemScripting.SWbemLocator " )

Σετ objWMIService = objSWbemLocator.ConnectServer ( " Some_Computer » , _

, _

" Some_User " , _

" Some_Pass " , _

" " , _

" " )

Set objProcess = objWMIService.Get ( " Win32_Process " )

intReturn = objProcess.Create _

( " Some_Command " , Null , objWMIService , intProcessID )

Αν intReturn <" δεν θα μπορούσε να δημιουργηθεί Διαδικασίας . "> 0 τότε

wscript.echo & _

VbNewLine & " Γραμμή εντολών : " & strCommand & _

vbNewLine & "τιμή επιστροφής: " & intReturn

Else

wscript.echo «Διαδικασία που δημιουργήθηκε . " & _

VbNewLine & " Γραμμή εντολών : " & strCommand & _

vbNewLine & " Αναγνωριστικό διεργασίας : " & intProcessID

End If
Η 7

κάντε δεξί κλικ στο όνομα του αρχείου και επιλέξτε " Ιδιότητες". Επιλέξτε το πλαίσιο για το " Να επιτρέπεται η εκτέλεση του αρχείου . " Κάντε κλικ στο " Εφαρμογή". Κάντε διπλό κλικ στο αρχείο για να τρέξει η διαδικασία .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα