Bonjour,

Je suis actuellement en train de coder un logiciel qui me permettra de lancer Bitlocker sur des potes à distance via le réseau.

Pour ce faire je doit simplement lancer un processus cmd.exe et y injecter des commandes dos, c'est assez simple à faire mais là ou cela se complique c'est quand je veut utiliser les données de sortie du processus et les utiliser afin de créer des boucles et autres trucs.

Ce que j'aimerais faire pour l'instant c'est réussir à faire un bout de code qui va lancer une requête ping via mon processus cmd.exe et si le ping réussi lancer une seconde commande, si le ping ne réussi pas je recommence jusqu'à que cela fonctionne.

Le code que j'utilise actuellement pour lancer le processus en tâche de fond est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
Public Class Form1
    Dim P As New Process
    Dim SW As System.IO.StreamWriter
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        P = New Process
        AddHandler P.OutputDataReceived, AddressOf DisplayOutput
        AddHandler P.ErrorDataReceived, AddressOf DisplayOutput
        P.StartInfo.CreateNoWindow() = True
        P.StartInfo.UseShellExecute = False
        P.StartInfo.RedirectStandardInput = True
        P.StartInfo.RedirectStandardOutput = True
        P.StartInfo.RedirectStandardError = True
        P.StartInfo.StandardOutputEncoding = System.Text.Encoding.GetEncoding(850)
        P.StartInfo.FileName = "cmd.exe"
        P.StartInfo.WorkingDirectory = "C:\Windows\System32"
        P.Start()
        P.SynchronizingObject = TextBox1
        P.BeginOutputReadLine()
        P.BeginErrorReadLine()
        SW = P.StandardInput
        SW.WriteLine()
 
    End Sub
 
    Private Sub DisplayOutput(ByVal sendingProcess As Object, ByVal output As DataReceivedEventArgs)
        TextBox1.AppendText(output.Data() & vbCrLf)
    End Sub
 
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        SW.WriteLine("ping " & TextBox2.Text)
    End Sub
 
End Class
La TextBox1 est une fenêtre qui m'affiche la fenêtre cmd.exe afin de vérifier les commandes injectées et les erreurs (c'est juste pour les essais, cette fenêtre est menée à disparaître dans le futur)

La TextBox2 est un champ dans lequel j'entre l'adresse IP du poste que je souhaite "pinger/bitlocker".

Merci d'avance pour vos réponses.

Radhek