Das Programm soll auf einem anderen Server laufen als geplante Task. Diese könnte ich mit "irgendeinem" User anlegen und starten lassen. Muss ich dafür einen Domän-Admin-User nehmen (der auch auf den Servern mit den Diensten Admin ist), damit das Programm dort die Dienste starten usw. kann?
Das Recht zum starten von Diensten hat auch der lokale Administrator, und es kann auch ein normales Domänenkonto lokale Admin Rechte erhalten.
Eine neuere Methode ist Windows Management Instrumentation (
WMI), das bei entsprechender Konfiguration und Zugriffsrechten über das Netzwerk verwendet werden kann.
WMI arbeitet mit
SQL-ähnlichen Befehlen wie
Code:
SELECT * FROM Win32_Service
Speziell für Delphi gibt es einen kostenlosen
WMI - Quelltextgenerator. Wenn der Code einmal erstellt ist, kann man ihn per Copy-Paste ins das eigene Modul übernehmen (benötigt den Generator also nicht zur Laufzeit). Der generierte Code ist kompatibel mit Delphi 7, 2005,
BDS/Turbo 2006 und
RAD Studio 2007, 2009, 2010, XE, XE2.
Zu jedem Service würde man dann ein Objekt haben, und kann im Fall eines
Win32 Service dann dessen
StartService Methode aufrufen.
MSDN Seite zu
Win32_Service.StartService:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Die Homepage ist hier:
WMI Delphi Code Creator
Und auf Google Code das Projekt:
http://code.google.com/p/wmi-delphi-code-creator/