<button id="imseu"></button>
  • <rt id="imseu"></rt>
    <li id="imseu"><source id="imseu"></source></li>
  • <button id="imseu"><input id="imseu"></input></button>
    <table id="imseu"></table>
  • <strike id="imseu"></strike>
    查看: 2678|回復: 1
    打印 上一主題 下一主題

    SC命令詳解(一個很有用的command)

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2008-5-10 17:28:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    作為一個命令行工具,SC.exe可以用來測試你自己的系統,你可以設置一個批處理文件來使用不同的參數調用 SC.exe來控制服務。這個很有用,如果你想看看你的服務不斷的啟動和停止,我沒有試過哦!讓一個服務一下子
    打開,一下子關閉,聽上去很不錯的。如果你的服務進程里面有多個進程的話,你可以保持一個進程繼續運行不
    讓它走開,然后讓另一個不斷的打開在關閉,還可以尋找一下內存缺乏導致不完全清楚的證據。
    下面介紹SC,SC QC,and SC QUERY
    SC使用這樣的語法:
    1. SC [Servername] command Servicename [Optionname= Optionvalues]
    2. SC [command]
    這里使用第一種語法使用SC,使用第二種語法顯示幫助。
    下面介紹各種參數。
    Servername
    可選擇:可以使用雙斜線,如\\\\myserver,也可以是\\\\192.168.0.1來操作遠程計算機。如果在本地計算機上操作
    就不用添加任何參數。
    Command
    下面列出SC可以使用的命令。
    config----改變一個服務的配置。(長久的)
    continue--對一個服務送出一個繼續控制的要求。
    control----對一個服務送出一個控制。
    create----創建一個服務。(增加到注冊表中)
    delete----刪除一個服務。(從注冊表中刪除)
    EnumDepend--列舉服務的從屬關系。
    GetDisplayName--獲得一個服務的顯示名稱。
    GetKeyName--獲得一個服務的服務鍵名。
    interrogate--對一個服務送出一個詢問控制要求。
    pause----對一個服務送出一個暫??刂埔蟆?
    qc----詢問一個服務的配置。
    query----詢問一個服務的狀態,也可以列舉服務的狀態類型。
    start----啟動一個服務。
    stop----對一個服務送出一個停止的要求。
    Servicename
    在注冊表中為service key制定的名稱。注意這個名稱是不同于顯示名稱的(這個名稱可以用net start和服務控
    制面板看到),而SC是使用服務鍵名來鑒別服務的。
    Optionname
    這個optionname和optionvalues參數允許你指定操作命令參數的名稱和數值。注意,這一點很重要在操作名稱和等
    號之間是沒有空格的。一開始我不知道,結果………………,比如,start= optionvalues,這個很重要。
    optionvalues可以是0,1,或者是更多的操作參數名稱和數值對。
    如果你想要看每個命令的可以用的optionvalues,你可以使用sc command這樣的格式。這會為你提供詳細的幫助。
    Optionvalues
    為optionname的參數的名稱指定它的數值。有效數值范圍常常限制于哪一個參數的optionname。如果要列表請用
    sc command來詢問每個命令。
    Comments
    很多的命令需要管理員權限,所以我想說,在你操作這些東西的時候最好是管理員。呵呵!
    當你鍵入SC而不帶任何參數時,SC.exe會顯示幫助信息和可用的命令。當你鍵入SC緊跟著命令名稱時,你可以得
    到一個有關這個命令的詳細列表。比如,鍵入sc create可以得到和create有關的列表。
    但是除了一個命令,sc query,這會導出該系統中當前正在運行的所有服務和驅動程序的狀態。
    當你使用start命令時,你可以傳遞一些參數(arguments)給服務的主函數,但是不是給服務進程的主函數。
    SC create
    這個命令可以在注冊表和服務控制管理數據庫建立一個入口。
    語法1
    sc [servername] create Servicename [Optionname= Optionvalues]
    這里的servername,servicename,optionname,optionvalues和上面的一樣,這里就不多說了。這里我們詳細說
    明一下optionname和optionvalues。
    Optionname--Optionvalues
    描述
    type=----own, share, interact, kernel, filesys
    關于建立服務的類型,選項值包括驅動程序使用的類型,默認是share。
    start=----boot, sys tem, auto, demand, disabled
    關于啟動服務的類型,選項值包括驅動程序使用的類型,默認是demand(手動)。
    error=----normal, severe, critical, ignore
    當服務在導入失敗錯誤的嚴重性,默認是normal。
    binPath=--(string)
    服務二進制文件的路徑名,這里沒有默認值,這個字符串是必須設置的。
    group=----(string)
    這個服務屬于的組,這個組的列表保存在注冊表中的ServiceGroupOrder下。默認是nothing。
    tag=----(string)
    如果這個字符串被設置為yes,sc可以從CreateService call中得到一個tagId。然而,SC并不顯示這個標簽,所
    以使用這個沒有多少意義。默認是nothing
    depend=----(space separated string)有空格的字符串。
    在這個服務啟動前必須啟動的服務的名稱或者是組。
    obj=----(string)
    賬號運行使用的名稱,也可以說是登陸身份。默認是localsys tem
    Displayname=--(string)
    一個為在用戶界面程序中鑒別各個服務使用的字符串。
    password=--(string)
    一個密碼,如果一個不同于localsys tem的賬號使用時需要使用這個。
    Optionvalues
    Optionname參數名稱的數值列表。參考optionname。當我們輸入一個字符串時,如果輸入一個空的引用這意味著
    一個空的字符串將被導入。
    Comments
    The SC CREATE command perFORMs the operations of the CreateService API function.
    這個sc create命令執行CreateService API函數的操作。詳細請見CreateService。
    例1
    下面這個例子在一臺叫做(\\\\myserver)的計算機上為一個叫“NewService”的服務建立的一個注冊表登記。
    sc \\\\myserver create NewService binpath= c:\\winnt\\sys tem32\\NewServ.exe
    按照默認,這個服務會建立一個WIN32_SHARE_PROCESS使用SERVICE_DEMAND_START啟動方式。這將不會有任何從屬
    關系,也將會按照localsys tem安全上下關系來運行。
    例2
    下面這個例子將在本地計算機上,建立一個服務,它將會是一個自動運行服務,并且運行在他自己的進程上。它
    從屬于TDI組和NetBios服務上。注意,你必須在從屬中間增加一個空格的引用。
    sc create NewService binpath= c:\\winnt\\sys tem32\\NewServ.exe type= own
    start= auto depend= \'+TDI Netbios\'
    例3
    服務開發者可以通過臨時改變二進制路徑(影像路徑)的方式來將這個服務運行在內核調試器的上下關系中。下
    面這個例子就可以讓我們看到如何改變服務的配置。
    sc config NewService binpath= \'ntsd -d c:\\winnt\\sys tem32\\Newserv.exe\'
    這個例子會引起服務控制管理器調用ntsd.exe使用下例的參數字符串:
    \'-d c:\\nt\\sys tem32\\NewServ.exe\'
    當系統裝入newserv.exe時ntsd將會轉而打斷調試器,所以斷點可以被設置在服務代碼里。
    SC QC
    這個SC QC“詢問配置”命令可以列出一個服務的配置信息和QUERY_SERVICE_CONFIG結構。
    語法1
    sc [Servername] qc Servicename [Buffersize]
    Parameters
    servername和servicename前面已經介紹過了,這里不再多說。
    Buffersize,可選擇的,列出緩沖區的尺寸。
    Comments
    SC QC命令顯示了QUERY_SERVICE_CONFIG結構的內容。
    以下是QUERY_SERVICE_CONFIG相應的區域。
    TYPE------dwServiceType
    START_TYPE----dwStartType
    ERROR_CONTROL----dwErrorControl
    BINARY_PATH_NAME--lpBinaryPathName
    LOAD_ORDER_GROUP--lpLoadOrderGroup
    TAG------dwTagId
    DISPLAY_NAME----lpDisplayName
    DEPENDENCIES----lpDependencies
    SERVICE_START_NAME--lpServiceStartName
    例1
    下面這個例子詢問了在上面例子中建立的“NewService”服務的配置:
    sc \\\\myserver qc NewService
    sc顯示下面的信息:
    SERVICE_NAME: NewService
    TYPE : 20 WIN32_SHARE_PROCESS
    START_TYPE : 3 DEMAND_START
    ERROR_CONTROL : 1 NORMAL
    BINARY_PATH_NAME : c:\\winnt\\sys tem32\\NewServ.exe
    LOAD_ORDER_GROUP :
    TAG : 0
    DISPLAY_NAME : NewService
    DEPENDENCIES :
    SERVICE_START_NAME : Localsys tem
    NewService有能力和其他的服務共享一個進程。但是它不是自動啟動的。二進制文件名是NewServ.exe。這個服務
    不依靠與其它的的服務,而且運行在lcoalsys tem的安全上下關系中。這些都是調用QueryServiceStatus基本的返
    回,如果還需要更多的細節屆時,可以看看API函數文件。
    SC QUERY
    SC QUERY命令可以獲得服務的信息。
    語法:
    sc [Servername] query { Servicename | ptionname= Optionvalues... }
    參數:
    servername, servicename, optionname, optionvalues不在解釋。只談一下這個命令提供的數值。
    Optionname--Optionvalues
    Description
    type=----driver, service, all
    列舉服務的類型,默認是service
    state=----active, inactive, all
    列舉服務的狀態,默認是active
    bufsize=--(numeric values)
    列舉緩沖區的尺寸,默認是1024 bytes
    ri=----(numeric values)
    但開始列舉時,恢復指針的數字,默認是0
    Optionvalues
    同上。
    Comments
    SC QUERY命令可以顯示SERVICE_STATUS結構的內容。
    下面是SERVICE_STATUS結構相應的信息:
    TYPE------dwServiceType
    STATE------dwCurrentState, dwControlsAccepted
    WIN32_EXIT_CODE----dwWin32ExitCode
    SERVICE_EXIT_CODE--dwServiceSpecificExitCode
    CHECKPOINT----dwCheckPoint
    WAIT_HINT----dwWaitHint
    在啟動計算機后,使用SC QUERY命令會告訴你是否,或者不是一個啟動服務的嘗試。如果這個服務成功啟動,WIN32_EXIT_CODE區間會將會包含一個0,當嘗試不成功時,當它意識到這個服務不能夠啟動時,這個區間也會提供一個退出碼給服務。
    例子
    查詢“NewService\'服務狀態,鍵入:
    sc query NewService
    顯示一下信息:
    SERVICE_NAME: NewService
    TYPE : 20 WIN32_SHARE_PROCESS
    STATE : 1 STOPPED
    (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
    WIN32_EXIT_CODE : 1077 (0x435)
    SERVICE_EXIT_CODE : 0 (0x0)
    CHECKPOINT : 0x0
    WAIT_HINT : 0x0
    注意,這里存在一個給這個服務的退出碼,即使這個服務部不在運行,鍵入net helpmsg 1077,將會得到對1077錯誤信息的說明:
    上次啟動之后,仍未嘗試引導服務。
    所以,這里我想說一句,希望大家可以活用net helpmsg,這會對你的學習有很大的幫助。
    下面在對SC query的命令在說明一下:
    列舉活動服務和驅動程序狀態,使用以下命令:
    sc query
    顯示messenger服務,使用以下命令:
    sc query messenger
    只列舉活動的驅動程序,使用以下命令:
    sc query type= driver
    列舉Win32服務,使用以下命令:
    sc query type= service
    列舉所有的服務和驅動程序,使用以下命令:
    sc query state= all
    用50 byte的緩沖區來進行列舉,使用以下命令:
    sc query bufsize= 50
    在恢復列舉時使用index=14,使用以下命令:
    sc query ri=14
    列舉所有的交互式服務,使用以下命令:
    sc query type= service type= interact
    中國畜牧人網站微信公眾號
    版權聲明:本文內容來源互聯網,僅供畜牧人網友學習,文章及圖片版權歸原作者所有,如果有侵犯到您的權利,請及時聯系我們刪除(010-82893169-805)。
    沙發
    發表于 2008-6-29 19:48:26 | 只看該作者
    我怎么看了糊里糊涂??:wulai:
    您需要登錄后才可以回帖 登錄 | 注冊

    本版積分規則

    發布主題 快速回復 返回列表 聯系我們

    關于社區|廣告合作|聯系我們|幫助中心|小黑屋|手機版| 京公網安備 11010802025824號

    北京宏牧偉業網絡科技有限公司 版權所有(京ICP備11016518號-1

    Powered by Discuz! X3.5  © 2001-2021 Comsenz Inc. GMT+8, 2025-9-19 07:04, 技術支持:溫州諸葛云網絡科技有限公司

    主站蜘蛛池模板: 开阳县| 加查县| 庆阳市| 甘孜县| 志丹县| 镇雄县| 施秉县| 女性| 泰来县| 长垣县| 泸水县| 理塘县| 兴仁县| 凤山市| 留坝县| 北流市| 乡城县| 新田县| 城市| 商都县| 城市| 寻乌县| 陇西县| 黄石市| 尖扎县| 乌海市| 朝阳县| 香河县| 玛多县| 巧家县| 长汀县| 清流县| 酉阳| 娱乐| 会东县| 宣化县| 蓬莱市| 山东省| 德化县| 广元市| 桂林市|