Windows サービスの削除と登録

image
とあるアプリケーションをアンインストールした後に気が付いた、Windows サービスの残骸。
Windows サービスの削除と登録の方法をしっかり理解していなかったのでメモ。

3行で分かる、この記事の内容

  • 現在のPowerShell には、Windows サービスを削除するコマンドレットが見当たらない
  • サービスの削除は、[Get-WmiObject]コマンドレット+Win32_Service、または[sc delete]コマンドを実行
  • サービスの登録は、[New-Service]コマンドレット、または[sc create]コマンドを実行

Windows サービスの削除

Technet「New-Service コマンドレット」のサイト最後尾にWindows サービスの削除するコマンドが掲載されています。
PowerShellの場合
Windows サービスを削除するコマンドレットが見当たらない(ない?)ため、Get-WmiObjectからWin32_Serviceを呼び出しdelete メソッドを使用します。
http://msdn.microsoft.com/en-us/library/aa389960(v=vs.85).aspx
> $service = Get-WmiObject -Class Win32_Service -Filter “Name=’サービス名’”
> $service #構成情報を確認
> $service.delete
sc コマンドの場合
sc deleteを実行し、レジストリからサービスのサブキーを削除します。
http://technet.microsoft.com/ja-jp/library/cc742045(v=ws.10).aspx
>sc.exe qc ‘サービス名’ #構成情報を確認
>sc.exe delete ‘サービス名’

Windows サービスの登録

サービスに対応した実行ファイルを作る事はほぼありませんが、サンプルを一応メモしておきます。
PowerShellの場合
http://technet.microsoft.com/ja-JP/library/hh849830.aspx
> New-Service -Name サービス名 -BinaryPathName "C:\WINDOWS\System32\svchost.exe -k xxxxxx" -DependsOn 依存するサービス名 -DisplayName "Test Service" -StartupType スタートアップの種類 -Description "説明文"
sc コマンドの場合
http://technet.microsoft.com/ja-jp/library/cc754599(v=ws.10).aspx
>sc.exe create binpath=x:\xxx\xxx.exe start=スタートアアップの種類 displayname=”サービス名” obj=アカウント名|オブジェクト名 password=”パスワード”
スポンサーリンク

スポンサーリンク