netsh Komando über CMD absetzen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von keydrow.

    netsh Komando über CMD absetzen

    Hallo Leute,

    ich Probiere mit meinen Programm ein netsh Komando über die CMD abzusetzen, doch bekomme folgende Fehlermeldung:

    Ein Ausnahmefehler des Typs "System.ComponentModel.Win32Exception" ist in System.dll aufgetreten.

    Zusätzliche Informationen: Das System kann die angegebene Datei nicht finden


    mein Code den ich verwende ist folgender:

    VB.NET-Quellcode

    1. Using P As New Process
    2. P.StartInfo.FileName = "cmd.exe"
    3. P.StartInfo.Arguments = "cd C:\"
    4. P.StartInfo.UseShellExecute = False
    5. P.StartInfo.RedirectStandardInput = True
    6. P.Start()
    7. If x > y Then
    8. P.StandardInput.WriteLine("netsh")
    9. P.StandardInput.WriteLine("interface")
    10. P.StandardInput.WriteLine("ip")
    11. P.StandardInput.WriteLine("set address name=" & type & " static " & lv_ip)
    12. 'Process.Start("netsh interface ip set address name=" & type & " static " & lv_ip & " " & lv_sm)
    13. End If
    14. End Using


    egal wie ich es Probiere ich bekomme bei dieser

    VB.NET-Quellcode

    1. P.StandardInput.WriteLine("netsh")
    2. P.StandardInput.WriteLine("interface")
    3. P.StandardInput.WriteLine("ip")
    4. P.StandardInput.WriteLine("set address name=" & type & " static " & lv_ip)

    und dieser

    VB.NET-Quellcode

    1. Process.Start("netsh interface ip set address name=" & type & " static " & lv_ip & " " & lv_sm)

    variante immer den selben Fehler. Im Netz konnte ich leider keine Hilfreiche lösung finden deswegen wende ich mich an euch.

    Danke schonmal im vorraus.

    keydrow schrieb:

    Das System kann die angegebene Datei nicht finden
    Sag mal dem Prozess, in welchem Verzeichnis er den Code ausführen soll:

    VB.NET-Quellcode

    1. P.StartInfo.WorkingDirectory = "XXX"

    Und mach ggf. das Using weg, wenn das Programm sich merkwürdig verhält.
    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!
    Danke für die sehr fixe Antwort. Ich lasse mal die

    VB.NET-Quellcode

    1. P.StartInfo.Arguments = "cd C:\"
    weg und Probier mal beide Sachen die du mir geschrieben hast und melde mich gleich nochmal zurück ob es was geworden ist :)




    EDIT:

    Scheinabr trit kein Fehler mehr aud, da ein CMD Fenster kurz aufplopt und sofort wieder verschwindet. Verwendet habe ich jetzt

    VB.NET-Quellcode

    1. P.StartInfo.WorkingDirectory = "C:\Windows\System32"

    das Komando bewirkt jetzt Leider noch nichts, aber hierfür vermute ich den Grund zu wissen jedoch keinen Lösungsansatz zu haben. Das vollständige Komando lautet

    netsh interface ip set address name="Local Area Connection" static ip subnet gateway

    den name habe ich in der Variable type wie folgt gespeichert

    VB.NET-Quellcode

    1. type = """Loacal Area Connection"""

    mir wird unten in VS angezeigt das der Wert der Variable """Loacal Area Connection""" ist, dass wichtige ist aber das das Kommando als "Loacal Area Connection" abgesetzt wird, also das es in "" steht. wie kann ich das realisieren?


    EDIT2:

    Denkfehler so ist alles richtig :D das Komando wird dem anschein nach ausgeführt und das auch ohne fehler, doch leider ohne ergebnis und das CMD Fenster ist schneller wieder Verscunden als ich gucken kann. Hätte jemand eine Idee wo der Wurm drinnen stecken könnte?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „keydrow“ ()

    @keydrow
    Wenn Du die Console von Hand startest, was gibst Du da ein?
    Wahrscheinlich musst Du nicht die Console starten, sondern dieses Programm direkt.
    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!
    @RodFromGermany

    Vielen Dank! Genau das war es. Ich habe die netsh über die cmd gestartet anstatt direkt. Wenn man die netsh direkt startet funktioniert es. Also zumindest mit dem Virtual Box Adapter, da ich momentan unterwegs bin kann ich das mit der Local Area Connection nicht ausprobieren. Aber bis hier hast du mir schonmal sehr geholfen, vielen Dank nochmal dafür! Außerdem hatte ich auch ein ziemliches kauderwelsch in meinem Code. Vielleicht war es ganz gut 2 Wochen daran nicht zu arbeiten, da ich sie nun gesehen habe X/ das Thema würde ich ersteinmal offen lassen bis ich sicher weiß das alles funktioniert :)