とあるアプリケーションをアンインストールした後に気が付いた、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=”パスワード”