web-dev-qa-db-ja.com

Windows 2008 Serverで.batファイルを実行するサービスを作成する方法は?

を使用してサービスを作成しました

sc create myService binpath=myservice.bat

しかし、起動すると、次のエラーメッセージが表示されて失敗します。

[SC] StartService FAILED 1053:
    The service did not respond to the start or control request in a timely fashion.

Win2k3では、リソースキットのsrvany.exeを使用しましたが、win2k8のリソースキットはありません。とりあえず、srvany.exeを自分のマシンにインストールしましたが、それが最良の方法だとは思いません。

ありがとう!

21
abyx

もちろん、そのようなサービスを実行することはできません。サーバー2008でsrvanyを使用してみましたか?私が知る限り、s2k8のsrvanyの「公式」バージョンはありませんが、いつでも試すことができますか?

編集:ああ、私は忘れました!また、FireDaemonを使用して、非サービスアプリケーションをサービスとして実行します。しかし、それは無料ではなく、その機能はあなたのニーズに対して少し多すぎます。

9
shylent

NSSMを使用して、.BATまたは任意の古い.EXEファイルをサービスとして実行します。これはほとんどSRVANYの代替であり、飾り気のない大騒ぎアプリケーションです。

http://iain.cx/src/nssm/

私はあなたと同じ問題を抱えていました、そしてNSSMが機能した唯一のユーティリティでした。

24

タスクスケジューラを使用して、コンピュータが起動するたびにタスクを実行します(ユーザーがログインしているかどうかに関係なく)

8
Korayem

.BATファイルや古い.EXEファイルをサービスとして実行することはできません。 Windowsサービスはあなたには機能しません。 non-Sucking Service Manager (NSSM)のようなユーティリティまたはMicrosoftの非フリーSRVANYユーティリティを使用して、任意のプログラムをサービスとして実行できますが、あまり得られない場合があります "優雅な」停止動作。

7
Evan Anderson

SCコマンドは、サービスに必要なレジストリエントリを追加するだけです-指定したファイルが有効なサービスexeではない場合、1つに変換されません。

3
Whisk

これを試してみてください...それは私のために働いた。

sc create ServiceTest binpath= "C:\Windows\System32\cmd.exe /C C:\ServiceTest\Jenkins-Slave.bat"
2
Kushal Gangan

から: technetフォーラムのこの投稿:http://social.technet.Microsoft.com/Forums/en-US/winserverMigration/thread/98a97aee-c62b-4683-94ab-3777899cf7de/

ここに何をすべきか...

この投稿の時点では、Windows Server 2008リソースキットツールはないため、「Windows Server 2003リソースキットツール」から「srvany.exe」を取得し、Win2008サーバーの適切な場所(Cなど)にコピーします。\Windows\System32 \)。 "sc"を使用して、 "srvany"を起動する新しいサービスを作成します(例:sc create MyService binPath = C:\ Windows\System32\srvany.exe DisplayName = "My Custom Service")RegEditを使用して、「Parameters」キーを作成しますサービス(例:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Paramaters \)RegEditを使用:新しく作成した「Parameters」キー内に「Application」という文字列値を作成し、実行するアプリケーションへのフルパスを入力しますサービス。 (見積もりは不要です。)

そして、それはそれでうまくいくはずです。

注:一部のアプリケーションは、HKEY_LOCAL_MACHINEの下ではなく、ユーザーHiveに設定を保存するため、アプリケーションを実行して構成し、そのユーザーとして実行するようにサービスを構成する必要があります。

2
user1977194

windowsのschtasksを使用しました。

これを参照できます。 https://technet.Microsoft.com/en-us/library/cc725744.aspx#BKMK_hours

0
Yit Ming

あなたの財布に手を伸ばすことができない他の2つのオプションを見つけました。

sc起動srvanyして、プログラムをポイントすることができます。 (StackOverflowで行うのに十分な担当者がいないためリンクできないフォーラム投稿があります-grumble)

元のポスターが使用した手順は次のとおりです。

  1. scを使用して、srvanyを起動する新しいサービスを作成します(例:sc create MyService binPath=C:\Windows\System32\srvany.exe DisplayName="My Custom Service"
  2. RegEditを使用する:サービスのParametersキーを作成します(例:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\
  3. RegEditを使用:新しく作成されたParametersキー内に、Applicationという文字列値を作成し、サービスとして実行するアプリケーションへのフルパスを入力します。 (見積もりは不要です。)

それが少しハックのように思える場合、プロセスを起動する.NETサービスを構築できます。いくつかの手順をスキップする場合は、一般的なプロセスを起動できるオープンソースの.NETサービスを次に示します。

http://www.codeproject.com/KB/system/xyntservice.aspx

必要に応じて微調整しますが、箱から出して欲しいことのほとんどを実行します。

0
databyte

私はこのことを偶然見つけました。これがBat_To_Exe_Converterというツールです。 .batファイルを.exeファイルに変換するのは非常に簡単です。それを試してみてください。まずダウンローダーをダウンロードすると、Bat_To_Exe_Converterが自動的にダウンロードされます。 .exeを介して.batファイルを実行するサービスを作成するのに役立ちました。 http://download.cnet.com/Bat-To-Exe-Converter/3001-2069_4-10555897.html?spi=eae5ab48292cc101b5f0ec370cf99ad

0
Ilya