Eine Anwendung auf einem anderen Computer starten

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Eine Anwendung auf einem anderen Computer starten

    Hallo!
    Ich möchte von einer vb.net Anwendung auf einem anderen Computer eine Anwendung (exe) starten.
    D.h. ich habe im Benutzer Ordner ein exe Programm Anmeldung.exe die dort ausgeführt werden soll.
    Der genau UNC Pfad lautet: \\desktop-pc1\c$\Users\benutzer\anmeldung.exe

    Wenn ich aber folgenden Code versuche:

    Quellcode

    1. shell("\\desktop-pc1\c$\Users\benutzer\anmeldung.exe")

    Quellcode

    1. Process.Start("\\desktop-pc1\c$\Users\benutzer\anmeldung.exe")


    Wird das Programm gestartet aber immer auf meinem eigenen Computer.
    Hoffe es kann mir jemand weiterhelfen.
    Danke

    haiflosse1 schrieb:

    aber immer auf meinem eigenen Computer.
    Klar.
    Erstell eine Process-Instanz und gib der ProcessStartInfo.WorkingDirectory das ferne Verzeichnis.
    learn.microsoft.com/de-de/dotn…ingdirectory?view=net-6.0
    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!
    Zum Glück funktioniert das nach meinem ersten Test NICHT.
    Ich hoffe inständig, dass es dafür keine Lösung gibt, denn ich habe es so verstanden, dass man von PC1 dafür sorgen will, dass ein Programm auf PC2 gestartet wird. Und nicht, dass man von PC1 auf PC1 ein Programm starten will, dass auf PC2 ist.
    Damit wären m.E. ziemlich fiese Programme/Vorgänge möglich, unabhängig davon, ob der TE da was Harmloses bei sich geplant hat.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed An sich korrekt.
    In dem Link wird darauf hingewiesen, dass UserName und Password eine Rolle spielen, das wäre dann natürlich korrekt (nicht getestet).
    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 Antworten.

    Ich habe folgendes versucht:

    Quellcode

    1. Dim app As New System.Diagnostics.ProcessStartInfo
    2. app.FileName = "anmeldung.exe"
    3. app.UserName = "administrator"
    4. app.Password = ToSecureString("passwort")
    5. app.WorkingDirectory = "\\desktop-pc1\c$\Users\benutzer\"
    6. System.Diagnostics.Process.Start(app)


    Quellcode

    1. Public Shared Function ToSecureString(source As String) As SecureString
    2. If String.IsNullOrWhiteSpace(source) Then
    3. Return Nothing
    4. End If
    5. Dim result = New SecureString()
    6. For Each c As Char In source
    7. result.AppendChar(c)
    8. Next
    9. Return result
    10. End Function


    An error occured trying to start process "anmeldung.exe" with working directory
    \\desktop-pc1\c$\users\benutzer\.
    Der Benutzername oder das Kennwort ist falsch

    Der Administrator und das Administratorpasswort ist aber eingerichtet und korrekt.

    Ich habe dann die anmeldung.exe am fremden Computer in das system32 Verzeichnis kopiert und dann ohne Benutzername und Kennwort versucht.

    Quellcode

    1. Dim app As New System.Diagnostics.ProcessStartInfo
    2. app.FileName = "anmeldung.exe"
    3. app.WorkingDirectory = "\\desktop-pc1\c$\Windows\System32\"
    4. System.Diagnostics.Process.Start(app)


    Dann startet die Anwendung, aber wieder bei meinem lokalen Computer.

    Hoffe es kann mir jemand weiterhelfen, was ich falsch mache.
    Danke

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „haiflosse1“ ()

    haiflosse1 schrieb:

    VB.NET-Quellcode

    1. app.Password = ToSecureString("passwort")
    Ist die Verwendung von ToSecureString(...) korrekt?
    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!
    Ich hätte da einmal eine ganz andere Idee.

    In meinem alten VB6-Programm hatte ich das Problem mit dem Restart meines Programmes nach einem erfolgten Online-Update.

    Gelöst hatte ich das so, dass in dem Setup-Programm eine Programmroutine war, die eine zeitgesteuerte Batchdatei in einem Tmp-Ordner erstellt und nach dem erfolgreichen Update gestartet wurde. So konnte ich einen Restart ausführen, und zwar so, als würde es der Anwender direkt machen. Ähnliches müsste doch ggf. auch hier funktionieren, oder?

    Gruß Achilleus
    @haiflosse1 Falls in der Zwischenzeit mehrere Fragen aufgeworfen wurden, beantworte doch bitte gefälligst auch die zurückliegenden.
    Die Verwendung von ToSecureString(...) auch korrekt?
    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!

    Achilleus schrieb:

    Ähnliches müsste doch ggf. auch hier funktionieren, oder?

    Nein, da hast du das Problem nicht ganz verstanden. Es liegt auf dem Remote-Rechner kein Programm. haiflosse1 möchte einfach, dass ein Rechner im Netzwerk ein Programm startet und das ganze über ein lokales VB-Programm anstarten.

    VaporiZed schrieb:

    Zum Glück funktioniert das nach meinem ersten Test NICHT.

    Muss ich mich voll anschließen. Finde ich auch heikel, einfach remote Programme starten zu wollen.
    @haiflosse1 Indem Du es testweise mal weglässt.
    Wo hast Du denn den Aufruf her?
    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!