Hallo derfragende79,
ich will mal versuchen deine Fragen nochmals genauer zu betrachten:
1.) ein verantwortungsvoller Webentwickler sollte nicht über so eine Lösung nachdenken, weil man man sonst sehr schnell in die Kategorie "Böser Hacker" eingeteilt werden kann. Wie schon gesagt wäre solche eine Funktion ein sehr großes (wenn nicht das größte) Sicherheitsrisiko. Damit kann zuviel Blödsinn gemacht werden. Und dabei spiel es keine große Rolle ob es Inter- oder Intranet ist. Das wird von Server und/oder Browser nicht unterschieden.
2.) Das du Prozesse auf dem Server starten kannst ist kein Problem, obwohl ich das auch teiweise als riskant ansehe. Aber dafür ist man ja selber verantwortlich. Dein ASP-Sourcecode wird ja direkt am Server vom IIS verarbeitet und mach alles was du ihm sagst. Das Ergebnis bekommt der Client dann als reines HTML zurück geschickt. Ob es Sinn macht am Server Prozesse zu starten kann ich dir nicht sagen. Eventuell kann man so ein Skript programmieren, mit dem der Server neu gestartet wird oder ähnliches. Aber so eine Funktion sollte niemals ein Außenstehender mitbekommen. Der könnte so eine Seite auch finden (wenn sie nicht passowrtgeschützt ist) und dann vielleicht deinen Server die ganze Zeit neu starten (oder was für Prozesse auch immer du programmiert hast). Also Prozesse am Server starten ist möglich, aber meiner Meinung nach nicht immer ratsam. Auch in einem Intranet kann es böse Menschen geben.
3.) EXE-Datei am Client ausführen. Das geht mit ASP definitiv nicht. No Way ... keine Chance. ASP wird immer nur am Server interpretiert und für die Ausgabe zum Client kommt nur HTML. Und mit HTML kannst du keine Anwendung starten. Die einzigste Möglichkeit die man hätte, wäre eine clientseitige Skriptsprache wie JavaScript, aber die werden direkt vom Browser interpretiert. Und dadurch kann man sich sicher sein, dass eine Funktion zum Starten von EXE-Dateien nicht vorhanden ist. Wie gesagt, ich lasse mich gerne eines besseren belehren. Aber Browser-Skriptsprachen sind extra auf Sicherheit getrimmt und lassen sowas nicht zu.
4.) ich kenne jetzt nicht deine Intranet Struktur und wie bei euch das Netzwerk aufgebaut ist. Meine Frage ist jetzt nur, wofür brauchst du das überhaupt. Welches Programm möchtest du denn überhaupt starten und kann das nicht über einen anderen Weg erfolgen?
Eine Möglichkeit könnte es dennoch geben. Auch wenn ich jetzt keine Garantie darauf geben möchte.
Also, wenn alle Rechner im selben Netzwerksegment sind und somit sich auch gegenseitig ansprechen können (entsprechende Berechtigungen vorausgesetzt) könntest du über das Netzwerk ein Programm starten. D.H. du lässt dir vom Client eine Kennung mitschicken (z.B. über Login, oder so) und startest dann mit ASP einen Prozess. Dieses Programm liegt aber nicht lokal auf deinem Server, sondern bei einem Client der über das normale Windows-Netzwerk angesprochen wird. Damit sollte es dann eventuell funktionieren. Wie es mit den Rechten usw. aussieht kann ich dir jetzt nicht sagen. Habs nicht ausprobiert. Würd ich aber auch nicht machen, da ich noch immer finde, dass das eine sehr unsaubere Lösung wäre. Und die Netzwerksicherheit könnte eventuell auch darunter leiden.
EDIT:
Vergiss es, hab mich geirrt. Auch damit würdest du nur einen Prozess auf deinem Server starten. Allerdings mit einem Programm von einem entfernten Rechner. Aber du könntest ein kleines Programm schrieben, dass vom Server aus Befehle an einen selbstgeschrieben Client verschickt. Und der Client startet dann dein Programm. So müsste es funktionieren.
Also falls du eine andere Möglichkeit verwenden würdest, wäre es sicher eine elegantere Variante. Ich hoffe, meine Ausführungen helfen dir ein wenig weiter.
So long,
Chrisu
PS: Machs nicht! Such dir lieber einen anderen Weg ;-)
Kleiner Rat am Rande