win32-service
Ruby (1.9.3-p429、MRI) を使用して Windows サービスを作成するために gem を使用しています。
このコードのスニペットは機能します。
require 'rubygems'
require 'win32/service'
include Win32
SERVICE_NAME = 'myservice'
# Create a new service
Service.create({
:service_name => SERVICE_NAME,
:service_type => Service::WIN32_OWN_PROCESS,
:description => 'A custom service I wrote just for fun',
:start_type => Service::AUTO_START,
:error_control => Service::ERROR_NORMAL,
:binary_path_name => 'c:\Ruby193\bin\ruby.exe -C c:\ c:\myservice.rb',
:load_order_group => 'Network',
#:service_start_name => 'Administrator',
#:password => 'adminpasswd',
:display_name => SERVICE_NAME
})
Service.start SERVICE_NAME
私が抱えている問題は、サービスを管理者権限で実行する必要があることですが、このコード スニペットを呼び出すエンティティはローカル システム アカウントとして実行され、それがデフォルトの権限です。
サービス GUI (services.msc) を開き、サービスにアクセスして停止し、サービス (myservice) プロパティの [ログオン] タブで権限を上げ、管理者/adminpasswd をユーザー/パスワードとして使用できます。次に、十分な権限でサービスを実行します。
ただし、 [サービス] タブで使用したのとまったく同じ値 (コード スニペットの行のコメントを解除することによって) を呼び出しService.create
て、:service_start_name
設定しようとすると:password
、機能しません。このサーバーは、Windows 2008r2 Datacenter Edition を実行している Amazon EC2 サーバーであり、私が知っている Windows ドメインの一部ではありません (私が開始したため)。
この Windows サービスを管理者権限で実行するには、他に何をする必要がありますか?