Autor Beitrag
MiHa80
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 31.10.08 16:56 
Hallo,

wie ist es möglich mit Process ein Programm auf einem entfernten Rechner mit NT 4.0 zu starten. WMI funktioniert auf dem entfernten Rechner nicht, allerdings ist dort das dotnetframework 1.1 installiert.
MiHa80 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Sa 01.11.08 09:10 
weiß niemand wie das geht, oder ob das geht ?
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Sa 01.11.08 13:12 
Telnet? Aber wieso geht WMI nicht?

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
MiHa80 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 13.11.08 11:15 
Hallo,

also ich habe es geschafft mittels WMI ein Programm auf einem anderen Rechner zu starten. Dazu musste ich auf dem anderen NT 4.0 Rechner WMI mittel WMICore installieren.

Hier der Code mit dem ich das Programm starte:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
        public bool RemoteStartWin2KWinXP(string remoteMachine, string RemoteProg)
        {
            ConnectionOptions connOptions = new ConnectionOptions();
            connOptions.Username = "Test";
            connOptions.Password = "Test";
            connOptions.Impersonation = ImpersonationLevel.Impersonate;
            connOptions.EnablePrivileges = true;
            ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\root\cimv2",
remoteMachine),connOptions);
            manScope.Connect();

            ObjectGetOptions objectGetOptions = new ObjectGetOptions();
            ManagementPath managementPath = new ManagementPath("Win32_Process");
            ManagementClass processClass = new ManagementClass(manScope, managementPath, objectGetOptions);
            ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
            inParams["CommandLine"] = RemoteProg;
            ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

            //ausgabe = "\nCreation of the process returned: " + outParams["returnValue"];
            Thread.Sleep(100);
            ausgabe = "\nProcess ID: " + outParams["processId"];
            if (outParams["returnValue"].ToString() != "0"return false;
            else return true;
        }


Wie kann ich jetzt aber das Programm minimiert starten ?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 13.11.08 14:44 
Das müßte mit Hilfe der Win32_ProcessStartup-Klasse gehen: s. msdn.microsoft.com/e...ibrary/aa394375.aspx.

Du mußt dann einfach ein Objekt davon erzeugen und ShowWindow auf "SW_SHOWMINIMIZED" (2) setzen.
Anschließend mittels
ausblenden C#-Quelltext
1:
inParams["ProcessStartupInformation"] = processStartup;					

der Process-Create-Methode übergeben (s.a. msdn.microsoft.com/e...aa389388(VS.85).aspx).
MiHa80 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 13.11.08 16:00 
Hallo,
danke für die Antwort.
Komme aber damit nicht ganz klar.

Kannst du mir evtl. anhand meines Codes erklären wie das geht ?