system32 とは異なる作業ディレクトリで Windows サービスを開始する方法

system32 とは異なる作業ディレクトリで Windows サービスを開始する方法

scWindows で (または他のツール) を使用してサービスを開始し、その作業ディレクトリをC:\Windows\system32(デフォルトのもの)とは異なるディレクトリに設定する方法はありますか?

サービスのソース コードでそれを指定できることはわかっていますが、サービスのソース コードを変更する必要のないソリューションを探しています。

答え1

サービスは、サービス コントロール マネージャーと呼ばれるアプリケーションから開始されます。このアプリケーションはシステム ディレクトリに存在し%WinDir%\System32 、これが現在の作業ディレクトリです。

システム サービスが起動されると、サービス コントロール マネージャーのすべての属性と、サービスの定義で指定されたパラメーターがデフォルトで継承されます。

残念ながら、現在の作業ディレクトリはこれらのパラメータの1つではありません。 ChangeServiceConfig関数

サービスの現在の作業ディレクトリを変更する場合は、サービス自体の内部から変更する必要があります。

関連情報