天天看點

Windows服務“允許服務與桌面互動”的使用和修改方法

描述:在自己寫的一個系統服務程式,需要經常用到“允許與桌面進行互動”的設定,網上很多使用修改系統資料庫的形式實作,我測試過,修改系統資料庫後,選中的勾是選上了,但不能彈出應用程式;據說重新開機電腦後可以,但我不想重新開機,實際應用也不允許重新開機,故沒有測試重新開機是否可行的情況。如圖:

Windows服務“允許服務與桌面互動”的使用和修改方法

例如:

當我需要運作服務程式的時候,彈出我的應用程式,則要在Windows服務“允許服務與桌面互動”中打勾,

當我不想彈出應用程式界面的時候,則去掉其中的勾選。

實作方式:

1.在服務程式安裝時程式設計實作,ProjectInstaller.cs

Windows服務“允許服務與桌面互動”的使用和修改方法
Windows服務“允許服務與桌面互動”的使用和修改方法
Windows服務“允許服務與桌面互動”的使用和修改方法

Code

/*----------------------------------------------------------------

// 穗聯技術公司

//

// 檔案名:ProjectInstaller.cs

// 檔案功能描述:服務程式安裝,安裝後,把服務設定為允許允許服務與桌面互動

// 編寫人:周林郁

-----------------------------------------------------------------*/

using System;

using System.Collections;

using System.Collections.Generic;

using System.ComponentModel;

using System.Configuration.Install;

//using System.Linq;

using Microsoft.Win32; //對系統資料庫操作一定要引用這個命名空間

namespace MonitorService

{

[RunInstaller(true)]

public partial class ProjectInstaller : Installer

public ProjectInstaller()

InitializeComponent();

//this.Context.Parameters["ServerCode"].ToString(); // 讀取安裝時輸入的伺服器編号

}

private void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e)

//設定允許服務與桌面互動

SetServiceTable("MonitorService");

/// <summary>

/// 設定允許服務與桌面互動 ,修改了系統資料庫,要重新開機系統才能生效

/// </summary>

/// <param name="ServiceName">服務程式名稱</param>

private void SetServiceTable(string ServiceName)

RegistryKey rk = Registry.LocalMachine;

string key = @"SYSTEM\CurrentControlSet\Services\" + ServiceName;

RegistryKey sub = rk.OpenSubKey(key, true);

int value = (int)sub.GetValue("Type");

sub.SetValue("Type", value | 256);

Windows服務“允許服務與桌面互動”的使用和修改方法

2.系統資料庫修改

onstart的時候修改系統資料庫

[HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"你的服務名]

"Type"=dword:00000010

key value+256

比如現在00000010是16+256=272

16精制就是00000110

3.SC程式修改, 允許與桌面進行互動

在dos指令提示符下輸入:

sc config MonitorService type= interact type= own

回車即可。

可以用批處理的方式實作,把下面代碼儲存為 myservice.bat 即可:

rem 配置服務程式為允許與桌面進行互動方式

@echo "準備停止服務程式..."

sc stop MyService

@echo "設定允許與桌面進行互動方式允許"

sc config MyService type= interact type= own

@echo "正在重新啟動服務..."

sc start MyService

@echo "啟動服務成功!"

取消“允許與桌面進行互動”

DOS指令提示符下運作下面語句即可:

sc config MyService type= own

經測試:1,2 可以選中“允許與桌面進行互動”,但啟動服務的時候,不能彈出應用程式的界面。

3 可以完美實作所有要求。

至此,我遇到的問題也完美的得到解決。

參考資料:

SC

與“服務控制器”和已安裝裝置通訊。SC.exe 檢索和設定有關服務的控制資訊。可以使用 SC.exe 來測試和調試服務程式。可以設定存儲在系統資料庫中的服務屬性來控制如何在啟動時和作為背景程式運作時啟動服務應用程式。SC.exe 的參數可以配置指定的服務,檢索目前服務的狀态,也可以停止和啟動服務。可以生成批處理檔案來調用不同的 SC.exe 指令以自動啟動或關閉服務序列。SC.exe 提供的功能類似于“控制台”中“管理工具”項中的“服務”。

有關指令的文法,請單擊下面任一 sc 指令:

sc boot

表明最近的啟動是否應該存儲為上次已知的正常配置。

文法

sc [ServerName] boot [{bad|OK}]

參數

ServerName

指定服務所在的遠端伺服器名稱。名稱必須采用通用的命名慣例 (UNC) 格式("""myserver")。若要在本機上運作 SC.exe,請忽略此參數。

[{bad|OK}]

指定最近的啟動是否錯誤或它是否應該存儲為上次已知的正常配置。

/?

在指令提示符顯示幫助。

範例

下面的範例顯示了如何使用 sc boot 指令:

sc boot ok

sc boot bad

sc config

修改系統資料庫和“服務控制管理器”資料庫中的服務項的值。

sc [ServerName] config [ServiceName] [type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}] [start= {boot|system|auto|demand|disabled}] [error= {normal|severe|critical|ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes|no}] [depend= dependencies] [obj= {AccountName|ObjectName}] [displayname= DisplayName] [password= Password]

指定服務所在的遠端伺服器名稱。名稱必須采用通用的命名慣例(UNC)格式("""myserver")。若要在本機上運作 SC.exe,請忽略此參數。

ServiceName

指定由 getkeyname 操作傳回的服務名。

type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}

指定該服務類型。 值 說明

own 服務以其自身的程序運作。不與其它服務共享可執行檔案。這是預設設定。

share 服務作為共享程序運作。它與其它服務共享一可執行檔案。

kernel 驅動程式

filesys 檔案系統驅動程式。

rec 檔案系統識别驅動器(表示計算機上使用的檔案系統)。

adapt 擴充卡驅動器(表示鍵盤、滑鼠、磁盤驅動器這樣的硬體項)。

interact 服務可以與桌面互動作用,接收使用者的輸入。互動服務必須以在 LocalSystem 帳戶下運作。該類型必須與 type= own 或 type= shared(例如, type= interact type= own)結合使用。自身使用 type= interact 将會産生一個無效參數錯誤。

start= {boot|system|auto|demand|disabled}

指定服務的起始類型。 值 說明

boot 由啟動引導程式加載的裝置驅動器。

system 在核心初始化過程中啟動的裝置驅動器。

auto 每次計算機重新啟動時,甚至沒有人登入計算機時,都能自動開始的服務。

demand 必須手動啟動的服務。如果沒有指定“start=”,這就預設值。

disabled 不能啟動的服務。要啟動一個禁用的服務,把啟動類型更改為其他值。

error= {normal|severe|critical|ignore}

如果在啟動中,伺服器啟動失敗,則指定錯誤的嚴重性。 值 說明

normal 将記錄錯誤,并且顯示消息對話框,通知使用者服務啟動失敗。啟動将會繼續這是預設設定。

severe 記錄錯誤(如果存在)。計算機嘗試以最新的有效配置重新啟動。這可能是由于計算機能夠重新啟動,但伺服器卻仍然不能運作。

critical 記錄錯誤(如果存在)。計算機嘗試以最新的有效配置重新啟動。如果上次已知正常的配置失敗,啟動也将失敗,啟動過程就會以“藍屏”錯誤而停止。

ignore 錯誤已記錄,啟動繼續。記錄錯誤超出在事件日志的範圍,不再給使用者作出提示。

binpath= BinaryPathName

指定一個進入服務二進制檔案的路徑。

group= LoadOrderGroup

指定一個該服務為其中成員的組名。組清單儲存在注冊中的 HKLM"System"CurrentControlSet"Control"ServiceGroupOrder 子項中。預設設定為空值。

tag= {yes | no}

指定是否在“CreateService”調用中獲得 TagID。标記僅用于根啟動或系統啟動驅動程式。

depend= dependencies

指定必須在此項服務之前啟動的服務名或組名。前面斜線 (/) 分離開來的名字。

obj= {AccountName|ObjectName}

指定一個将運作的服務的賬戶名,或指定一個将會運作的驅動程式的 Windows 驅動程式對象名。預設設定為 LocalSystem。

displayname= DisplayName

指定一個可以在使用者界面程式用來為使用者辨別服務的友好的、有意義的名稱。例如,一項服務的子項名是對使用者沒有幫助的 wuauserv,而顯示的名稱是“自動更新”。

password:password

指定一個密碼。如果使用了一個不是 LocalSystem 的帳戶,則此項是必需的。

注釋

如果參數及其值之間沒有空格,(例如,是 type= own, 而不是 type=own),則操作會失敗。

下面範例顯示了如何使用 sc config 指令:

sc config NewService binpath= "ntsd -d c:"windows"system32"NewServ.exe"

sc continue

為了繼續暫停的服務,要給服務發送一個 CONTINUE 控制請求。

sc [ServerName] continue [ServiceName]

指定服務所在的遠端伺服器名稱。該名稱必須使用 UNC 格式 ("""myserver")。若要在本機上運作 SC.exe,請忽略此參數。

使用 continue 操作來繼續暫停的服務。

下面的範例顯示了如何使用 sc continue 指令:

sc continue tapisrv

sc control

發送給服務CONTROL B。

sc [ServerName] control [ServiceName] [{paramchange|netbindadd|netbindremove|netbindenable|netbinddisable|UserDefinedControlB}]

{paramchange|netbindadd|netbindremove|netbindenable|netbinddisable|UserDefinedControlB}

指定要發送到服務的控制。

sc create

為服務在系統資料庫和“服務控制管理器”中建立子項和入口。

sc [ServerName] create [ServiceName] [type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}] [start= {boot|system|auto|demand|disabled}] [error= {normal|severe|critical|ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes|no}] [depend= dependencies] [obj= {AccountName|ObjectName}] [displayname= DisplayName] [password= Password]

指定該服務類型。預設類型為 type= own。 值 說明

rec 檔案系統識别驅動器(表明在計算機上使用的檔案系統)。

指定服務的起始類型。預設的起始類型是 start= demand。 boot 由啟動引導程式加載的裝置驅動器。

如果在啟動中,伺服器啟動失敗,則指定錯誤的嚴重性。預設設定為 ascii。 normal 将記錄錯誤,并且顯示消息對話框,通知使用者服務啟動失敗。啟動将會繼續這是預設設定。

指定一個進入服務二進制檔案的路徑。binpath= 沒有預設值,必須要給出此字元串。

/hidden:{yes | no}

指定必須要在此項服務之前啟動的服務名或組名。前面斜線 (/) 分離開來的名字。

指定一個将運作的服務的賬戶名,或指定一個将會運作的驅動程式的 Windows 驅動程式對象名。

指定被使用者界面程式用來辨別服務的友好名稱。

指定一個密碼。如果使用的不是 LocalSystem 的帳戶,密碼是必需的。

下面的範例顯示了如何使用 sc create 指令:

sc ""myserver create NewService binpath= c:"windows"system32"NewServ.exe

sc create NewService binpath= c:"windows"system32"NewServ.exe type= share start= auto depend= "+TDI Netbios"

sc delete

從系統資料庫中删除服務子項。如果服務正在運作或者另一個程序有一個該服務的打開句柄,那麼為了删除而标記該服務。

sc [ServerName] delete [ServiceName]

使用“添加或删除程式”删除 DHCP、DNS 或任何其它内置的作業系統服務。“添加或删除程式”不隻删除該服務的系統資料庫子項,而且還卸除該服務并删除其所有的快捷方式。

下面的範例顯示了如何使用 sc delete 指令:

sc delete newserv

sc description

設定服務的描述字元串。

sc [ServerName] description [ServiceName] [Description]

說明

為指定服務指定描述。如果沒有指定字元串,則不會修改該服務的描述。對包含在服務描述中的字元數量沒有限制。

下面的範例顯示了如何使用 sc description 指令:

sc description newserv "Runs quality of service control."

sc enumdepend

列出隻有運作了指定服務才能夠運作的服務。

sc [ServerName] enumdepend [ServiceName] [BufferSize]

BufferSize

以位元組為機關指定枚舉緩存區的大小。預設值為 1024 位元組。

如果緩沖區不夠大,enumdepend 操作隻會部分輸出依存服務,并指定輸出所有依存服務所需的額外緩沖區大小。如果輸出被截斷,重新運作該操作并指定更大的緩沖區大小。

下面的範例顯示了如何使用 sc enumdepend 指令:

sc enumdepend rpcss 5690

sc enumdepend tapisrv

sc failure

指定服務失敗時要采取的操作。

sc [ServerName] failure [ServiceName] [reset= ErrorFreePeriod] [reboot= BroadcastMessage] [command= CommandLine] [actions= FailureActionsAndDelayTime]

reset= ErrorFreePeriod

指定沒有失敗的周期長度(機關為秒),此後失敗電腦的應該重置為 0。這個參數必須與 actions= 參數結合使用。

reboot= BroadcastMessage

指定服務失敗時要廣播的消息。

command= CommandLine

指定服務失敗時要運作的指令行。有關在失敗時如何運作批處理或 VBS 檔案的資訊,請參閱“注釋”。

actions= FailureActionsAndDelayTime

指定失敗操作及其延遲時間(機關為毫秒),以正斜杠 (/) 隔開。下列操作有效:run、restart 和 reboot。此參數必須與 reset= 參數結合使用。在失敗時不采取操作請使用 actions= ""。

不是所有的服務都允許更改其失敗選項。其中一些作為服務集的一部分運作。

要在失敗時運作批處理檔案,請指定 cmd.exe Drive:"FileName.bat 為 command= 的參數,其中 Drive:"FileName.bat 是批處理檔案的完整的合格名稱。

要在失敗時運作 VBS 檔案,請指定 cscript drive:"myscript.vbs 為 command= 的參數,其中 drive:"myscript.vbs 是腳本檔案的完整的合格名稱。

可以将三種不同的操作指定為 actions= 的參數,它們将會在服務的第一次、第二次、第三次失敗時使用。

如果參數及其值之間沒有空格,(例如,是 type= own,而不是 type=own),則操作會失敗。

下面的範例顯示了如何使用 sc failure 指令:

sc failure msftpsvc reset= 30 actions= restart/5000

sc failure dfs reset= 60 command= c:"windows"services"restart_dfs.exe actions= run/5000

sc failure dfs reset= 60 actions= reboot/30000

sc failure dfs reset= 60 reboot= "The Distributed File System service has failed. Because of this, the computer will reboot in 30 seconds." actions= reboot/30000

sc failure myservice reset= 3600 reboot= "MyService crashed -- rebooting machine" command= "%windir%"MyServiceRecovery.exe" actions= restart/5000/run/10000/reboot/60000

sc getdisplayname

獲得與特定服務關聯的顯示名稱。

sc [ServerName] getdisplayname [ServiceName] [BufferSize]

指定緩沖區大小(以位元組為機關)。預設值為 1024 位元組。

下面的範例顯示了如何使用 sc getdisplayname 指令:

sc getdisplayname clipsrv

sc getdisplayname tapisrv

sc getdisplayname sharedaccess

sc getkeyname

使用特定服務的顯示名稱作為輸入會獲得與其相關聯的鍵名。

sc [ServerName] getkeyname [ServiceDisplayName] [BufferSize]

ServiceDisplayName

指定服務的顯示名稱。

如果 ServiceDisplayName 包含空格,請使用引号将文本引起來(例如,"Service Display Name")。

下面的範例顯示了如何使用 sc getkeyname 指令:

sc getkeyname "remote procedure call (rpc)"

sc getkeyname "internet connection sharing"

sc getkeyname clipbook

sc interrogate

向服務發送一個 INTERROGATE 控制請求。

sc [ServerName] interrogate [ServiceName]

使用“服務控制管理器”向服務發送 INTERROGATE 會導緻該服務使用“服務控制管理器”更新其狀态。

下面的範例顯示了如何使用 sc interrogate 指令:

sc interrogate sharedaccess

sc interrogate rpcss

sc lock

鎖定“服務控制管理器”的資料庫。

sc [ServerName] lock

指定服務所在的遠端伺服器名稱。該名稱必須使用 UNC 格式 ("""myserver")。若要在本機上運作SC.exe,請忽略此參數。

鎖定“服務控制管理器”的資料庫會阻止啟動任何服務。 如果要確定服務在停止之後不會啟動,請使用這個指令。這允許您不受幹擾的進行一些操作(例如,删除服務)。

使用 lock 操作鎖定“服務控制管理器”的資料庫,然後通過鍵入 u 來使資料庫解鎖。也可以從鎖定資料庫的程序中關閉該程序。

下面的範例顯示了如何使用sc lock 指令:

sc pause

發送 PAUSE 控制請求到服務。

sc [ServerName] pause [ServiceName]

在終止服務之前使用 pause 操作來暫停它。

不是所有的服務都能夠被暫停。

在暫停時不是所有的服務都執行同樣的操作。一些服務繼續為已有的用戶端服務,但不會接受新的用戶端。其他的會終止對已有用戶端的服務,而且也不會接受新的用戶端。

下面的範例顯示了如何使用sc pause 指令:

sc pause tapisrv

sc qc

查詢服務的配置資訊。

sc [ServerName] qc [ServiceName] [BufferSize]

qc 操作顯示有關服務的下列資訊:SERVICE_NAME(服務在系統資料庫中的子鍵名)、TYPE、ERROR_CONTROL、BINARY_PATH_NAME、LOAD_ORDER_GROUP、TA、DISPLAY_NAME、DEPENDENCIES 和 SERVICE_START_NAME。

管理者可以使用 SC 來确定任一服務的二進制名稱,并查明它是否與其它服務共享一個程序,在指令行鍵入下列指令:

sc qc ServiceName

SC 有助于将 Microsoft 管理控制台 (MMC) 中的服務與“系統螢幕”中的程序比對起來。如果二進制名稱是 Services.exe,那麼服務共享“服務控制器”程序。

Services.exe 啟動所有的服務。為儲存系統資源,幾個為 Windows 開發的 Win32 服務被編寫為共享 Services.exe 程序。這些服務不作為獨立的程序列在“系統螢幕”或“任務管理器”之中。Svchost.exe 也是如此,它是很多操作服務共享的服務主程序。

因為第三方 Win32 服務也可以配置為共享程序,是以不可能為每一個 Win32 服務建立一個程序。SC 可以用來獲得這些服務的配置資訊。但是,如果一項服務不與其他服務共享其程序,那麼在服務運作時,“系統螢幕”中會出現其程序。

因為 SC 與包含在 Windows 中的 Services.exe 相比,提供了更為詳細和準确的、關于服務的資訊,是以對于服務開發員來說 SC 更有用處。Services.exe 可以确定服務是在運作、停止還是正在暫停。盡管這些工具對于正在平穩運作的已調試程式已經足夠,但是它們提供的關于正在開發的服務的資訊卻會使人誤解。例如,一項正在啟動的服務不管其實際運作與否都顯示為已啟動。

SC 執行對所有 Windows 服務控制應用程式設計接口 (API) 函數的調用。通過在指令行指定這些函數來将其設定為參數。

使用 SC,可以查詢服務狀态,檢索存儲在狀态結構域中的值。Services.exe 不能提供服務的完整狀态,但 SC 顯示了精确的服務狀态,以及最新的檢查點号碼和等待提示。可以将檢查點用作調試工具,原因在于它表明了在程式停止響應之前初始化進行了多遠。SC 也可以用來指定遠端計算機名,以便于在遠端計算機上調用服務 API 函數或檢視服務狀态結構。

下面的範例顯示了如何使用 sc qc 指令:

sc qc ""myserver newsrvice

sc qc rpcss 248

sc qdescription

顯示服務的描述字元串。

sc [ServerName] qdescription [ServiceName] [BufferSize]

下面的範例顯示了如何使用 sc qdescription 指令:

sc qdescription rpcss

sc qdescription rpcss 138

sc qfailure

顯示指定服務失敗時要執行的操作。

sc [ServerName] qfailure [ServiceName] [BufferSize]

qfailure 操作顯示了下面有關服務的資訊:SERVICE_NAME(服務在系統資料庫中的子鍵名)、RESET_PERIOD、REBOOT_MESSAGE、COMMAND_LINE 和 FAILURE_ACTIONS。

下面的範例顯示了如何使用 sc qfailure 指令:

sc qfailure rpcss

sc qfailure rpcss 20

sc query

獲得和顯示關于指定的服務、驅動器、服務類型或驅動器類型的資訊。

sc [ServerName] query [ServiceName] [type= {driver|service|all}] [type= {own|share|interact|kernel|filesys|rec|adapt}] [state= {active|inactive|all}] [bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]

指定由 getkeyname 操作傳回的服務名。此 query 參數不與其他的 query 參數結合使用(除了 ServerName)。

type= {driver|service|all}

指定需要列出的内容。預設類型為 service。 值 說明

driver 僅指定需要枚舉的驅動程式。

service 僅指定需要枚舉的服務。

all 指定需要枚舉的驅動程式和伺服器。

type= {own|share|interact|kernel|filesys|rec|adapt}

指定需要枚舉的服務類型或驅動程式。 值 說明

interact 服務可以與桌面互動作用,接收使用者的輸入。互動服務必須以在 LocalSystem 帳戶下運作。

state= {active|inactive|all}

指定用來枚舉的服務的已開始狀态。預設狀态是active。 值 說明

active 指定所有的激活服務。

inactive 指定所有暫停或停止的服務。

all 指定所有服務。

bufsize= BufferSize

以位元組為機關指定枚舉緩存區的大小。預設大小為 1024 位元組。當從查詢傳回的顯示結果超過 1024 個位元組時,增加枚舉緩沖區的大小。

ri= ResumeIndex

指定開始或繼續枚舉的索引數。預設值為 0。在查詢傳回的資訊超過預設緩沖區能夠顯示的大小時,請與 bufsize= 參數結合使用這個參數。

group= GroupName

指定枚舉的服務組。預設設定為所有組。

query 操作顯示了以下關于服務的資訊:SERVICE_NAME (服務在系統資料庫中的子鍵名)、TYPE、STATE(也是不可用的狀态)、WIN32_EXIT_B、SERVICE_EXIT_B、CHECKPOINT 和 WAIT_HINT。

在某些情況下,“type=”參數可以使用兩次。“type=”參數的第一次出現指定是否查詢服務、驅動器或所有這些。“type=”參數的第二次出現指定一個由“create”操作來進一步縮小查詢範圍的類型。

當 query 指令的顯示結果超過了枚舉緩沖區的大小時,顯示類似于以下的消息:

Enum:資料超出,在索引 79 處重新啟動需要 1822 位元組

要顯示剩餘的 query 資訊,重新運作 query,設定 bufsize= 為位元組數,設定 ri= 為指定的索引。例如,在指令行鍵入下列指令會顯示剩餘的輸出:

sc query bufsize= 1822 ri= 79

下面的範例顯示了如何使用 sc query 指令:

sc query messenger

sc query type= driver

sc query type= service

sc query state= all

sc query bufsize= 50

sc query ri= 14

sc query type= service type= interact

sc query type= driver group= ndis

sc queryex

獲得和顯示關于服務、驅動器、服務類型或驅動器類型的擴充資訊。

sc [ServerName] queryex [type= {driver|service|all}] [type= {own|share|interact|kernel|filesys|rec|adapt}] [state= {active|inactive|all}] [bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]

指定由 getkeyname 操作傳回的服務名。此 queryex 參數不與 ServerName 之外的任何其它 queryex 參數結合使用。

driver 僅指定需要枚舉的驅動程式.

指定用來枚舉的服務的已開始狀态。預設狀态是 active。 值 說明

以位元組為機關指定枚舉緩存區的大小。預設大小為 1024 位元組。

指定開始或繼續枚舉的索引數。預設值為 0。

queryex 操作顯示以下有關服務的資訊:SERVICE_NAME(服務在系統資料庫中的子鍵名)、TYPE、STATE(也是不可用的狀态)、WIN32_EXIT_B、SERVICE_EXIT_B、CHECKPOINT、WAIT_HINT、PID 和 FLAGS。

在某些情況下,“type=”參數可以使用兩次。“type=”參數的第一次出現指定是否查詢服務、驅動器或所有這些。“type=”參數的第二次出現指定一個由“create”操作進一步縮小查詢範圍的類型。

在 queryex 指令的顯示結果超過了枚舉緩沖區大小時,顯示類似于以下的消息:

Enum:資料超出,在索引 75 處重新啟動需要 2130 個位元組

要顯示 queryex 的剩餘資訊,重新運作 queryex,設定 bufsize= 為位元組數, ri= 為指定索引。例如,在指令行鍵入下面的指令會顯示剩餘的輸出:

sc queryex bufsize= 2130 ri= 75

下面的範例顯示了如何使用 sc queryex 指令:

sc queryex messenger

sc queryex group= ""

sc querylock

查詢和顯示“服務控制管理器”資料庫的鎖定資訊。

sc [ServerName] querylock

sc sdset

使用“服務描述符定義語言” (SDDL) 來設定服務的安全描述符。

sc [ServerName] sdset ServiceName ServiceSecurityDescriptor

ServiceSecurityDescriptor

在 SDDL 中指定服務描述符。

有關 SDDL 的資訊,請參閱 MSDN 聯機知識庫中的“安全描述符定義語言”。(http://www.microsoft.com/)

sc sdshow

使用 SDDL 顯示服務的安全描述符。

sc [ServerName] sdshow ServiceName

有關 SDDL 的資訊,請參閱 MSDN 聯機知識庫 中的“安全描述符定義語言”。(http://www.microsoft.com/)

sc sdshow rpcss

sc start

啟動正在運作的服務。

sc [ServerName] start ServiceName [ServiceArguments]

ServiceArguments

指定傳遞給要啟動的服務的服務參數。

下面的範例顯示了如何使用 sc start 指令:

sc start tapisrv

sc stop

向服務發送 STOP 控制請求。

sc [ServerName] stop ServiceName

不是所有的服務都可以被停止。

下面的範例顯示了如何使用 sc stop 指令:

sc stop tapisrv

本文轉自94cool部落格園部落格,原文連結http://www.cnblogs.com/94cool/archive/2010/04/12/1710261.html,如需轉載請自行聯系原作者