2017-02-15 9 views
0

SQLクエリを使用してインストールされたWindowsサービスのリストを取得する方法を教えてください。SQLクエリを使用してインストールされたWindowsサービスのリストを取得する方法

+0

短い答え:できません。拡張された答え:まあ、技術的には、SQLCLRプロシージャを記述し、このプロシージャの呼び出しを介してインストールされたサービスを取得することができます。しかしそれは.NETに関するものであり、クエリ自体とは関係ありません。 –

+0

@AndyKorneyevご意見ありがとうございます。 SQLジョブを使用してサービスを開始または停止できます。私はWindowsサービスの全リストを得ることができるかどうか、このクエリを得た。 – METALHEAD

答えて

0

あなたはscを呼び出すために(サーバー上のenabledでなければなりません)xp_cmdshellを使用することができます:あなたがサービスについての詳細情報を取得する必要がある場合、あなたは、自己結合にLine_IDラインを使用することができます

CREATE TABLE #Cmd(
    Line_ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, 
    Line VARCHAR(MAX) 
) 

INSERT INTO #Cmd(Line) 
EXEC master.dbo.xp_cmdshell 'sc queryex type= service state= all' 

SELECT SUBSTRING(Line, 15, 100) 
FROM #Cmd 
WHERE Line LIKE 'SERVICE_NAME%' 

と関連する行を表示:

SELECT SUBSTRING(l1.Line, 15, 100) AS Service_Name 
     ,SUBSTRING(l2.Line, 15, 100) AS Display_Name 
     ,SUBSTRING(l3.Line, 33, 100) AS Service_State 
FROM #Cmd l1 
    INNER JOIN #Cmd l2 
     ON l1.Line_ID = l2.Line_ID - 1 
    INNER JOIN #Cmd l3 
     ON l1.Line_ID = l3.Line_ID - 3 
WHERE l1.Line LIKE 'SERVICE_NAME%' 
+0

素晴らしい...ありがとうsooたくさん.. – METALHEAD

+0

@ METALHEAD、私は各サービスの詳細情報を表示するための例を追加しました。 – Serge

関連する問題