
sc
Windows で (または他のツール) を使用してサービスを開始し、その作業ディレクトリをC:\Windows\system32
(デフォルトのもの)とは異なるディレクトリに設定する方法はありますか?
サービスのソース コードでそれを指定できることはわかっていますが、サービスのソース コードを変更する必要のないソリューションを探しています。
答え1
サービスは、サービス コントロール マネージャーと呼ばれるアプリケーションから開始されます。このアプリケーションはシステム ディレクトリに存在し%WinDir%\System32
、これが現在の作業ディレクトリです。
システム サービスが起動されると、サービス コントロール マネージャーのすべての属性と、サービスの定義で指定されたパラメーターがデフォルトで継承されます。
残念ながら、現在の作業ディレクトリはこれらのパラメータの1つではありません。 ChangeServiceConfig関数。
サービスの現在の作業ディレクトリを変更する場合は、サービス自体の内部から変更する必要があります。