So starten Sie einen Windows-Dienst mit einem anderen Arbeitsverzeichnis als system32

So starten Sie einen Windows-Dienst mit einem anderen Arbeitsverzeichnis als system32

Gibt es eine Möglichkeit, einen Dienst scunter Windows mit (oder einem anderen Tool) zu starten und sein Arbeitsverzeichnis auf ein anderes als das C:\Windows\system32(Standard-)Verzeichnis festzulegen?

Ich weiß, dass ich das im Quellcode des Dienstes angeben kann, aber ich suche nach einer Lösung, bei der der Quellcode des Dienstes nicht geändert werden muss.

Antwort1

Dienste werden von einer Anwendung namens Service Control Manager gestartet. Diese Anwendung befindet sich im Systemverzeichnis %WinDir%\System32 und dies ist ihr aktuelles Arbeitsverzeichnis.

Wenn der Systemdienst gestartet wird, erbt er standardmäßig alle Attribute des Service Control Managers und die in der Definition des Dienstes angegebenen Parameter.

Leider ist das aktuelle Arbeitsverzeichnis keiner dieser Parameter, wie Sie in der ChangeServiceConfigA-Funktion.

Wenn Sie das aktuelle Arbeitsverzeichnis des Dienstes ändern möchten, müssen Sie dies innerhalb des Dienstes selbst tun.

verwandte Informationen