Windowsi teenuse 'Luba teenusel töölauaga suhtlemine' kasutamine ja muutmine
How Use Modify Windows Serviceallow Service Interact With Desktop
Kirjeldus: minu enda kirjutatud süsteemiteenuste programmis peate sageli kasutama sätet 'Luba suhtlus töölauaga', mida rakendatakse Interneti-registri muutmise kujul. Olen seda katsetanud. Pärast registri muutmist valitakse märkeruut. Kuid rakendust ei saa hüpata, öeldakse, et see on pärast arvuti taaskäivitamist korras, kuid ma ei taha seda taaskäivitada ja tegelik rakendus ei võimalda taaskäivitamist, seega pole katset, kas taaskäivitamine on teostatav. Nagu näidatud:
Näiteks:
Kui mul on vaja teenuseprogrammi käivitada, ilmub minu rakendus üles ja ma pean kontrollima Windowsi teenuse käsku „Luba teenusel töölauaga suhtlemiseks”.
Kui ma ei soovi rakenduse liidest üles hüpata, eemaldan linnukese.
Meetod realiseerimiseks:
1. See realiseeritakse programmeerimisega, kui teenuseprogramm on installitud, ProjectInstaller.cs



/ *-------------------------------------------------- --------------
// Suiliani tehnoloogiaettevõte
//
// Faili nimi: ProjectInstaller.cs
// Failifunktsiooni kirjeldus: installige teenuseprogramm, pärast installimist määrake teenus lubama teenusel töölauaga suhelda
// Kirjanik: Zhou Linyu
-------------------------------------------------- ---------------* /
kasutadesSüsteem
kasutadesSüsteem. Kogud
kasutadesSüsteem. Kogud. Üldine
kasutadesSystem.ComponentModel
kasutadesSystem.Configuration. Install
//kasutades System.Linq
kasutadesMicrosoft.Win32//Sellele nimeruumile tuleb registritoimingute jaoks viidata
nimeruumMonitorService
{
[RunInstaller (tõsi)]
avalik osaline klassProjectInstaller: Installer
{
avalikProjectInstaller ()
{
InitializeComponent ()
//this.Context.Parameters ['ServerCode']. ToString ()//Lugege installimise ajal sisestatud serveri numbrit
}
privaatne tühineProjectInstaller_AfterInstall (objektsaatja, InstallEventArgs e)
{
//Määrake teenuse töölauale suhtlemiseks
SetServiceTable ('MonitorService')
}
///
///Seade võimaldab teenusel suhelda töölauaga, registrit muudetakse ja süsteemi jõustumiseks tuleb süsteem taaskäivitada
///
/// Teenindusprogrammi nimi
privaatne tühineSetServiceTable (stringTeenuse nimi)
RegistryKey rk = Registry.LocalMachine
stringvõti =@ 'SYSTEM CurrentControlSet Services '+ TeenuseNimi
RegistryKey sub = rk.OpenSubKey (võti,tõsi)
intväärtus = (int) sub.GetValue ('Tüüp')
sub.SetValue ('Tüüp', väärtus
}
}

2. Registri muutmine
Käivitamisel muutke registrit
[HKEY_LOCAL_MACHINE'SYSTEM'CurrentControlSet'Services'Teie teenuse nimi]
'Type' = dword: 00000010
põhiväärtus + 256
Näiteks on 00000010 nüüd 16 + 256 = 272
16 rafineeritud on 00000110
3. SC programmi muutmine, et võimaldada suhtlemist töölauaga
Sisestage dos käsureal:
sc config MonitorService tüüp = suhtlema tüüp = oma
Vajutage lihtsalt sisestusklahvi.
Selle saab saavutada partiitöötlusega, salvestage järgmine kood nimega myservice.bat:
Remi konfiguratsiooniteenuse programmil on lubatud töölauaga suhelda
@echo 'Hooldusprogrammi peatamise ettevalmistamine ...'
sc peatage MyService
@echo 'Töölauaga suhtlemise lubamine on lubatud'
sc config Minu teenuse tüüp = suhtlema tüüp = oma
@echo 'Teenuse taaskäivitamine ...'
sc käivitage MyService
@echo 'Teenuse käivitamine edukalt!'
Tühista valik „Luba suhtlus töölauaga”
Käivitage DOS-i käsuviibal lihtsalt järgmine lause:
sc config Minu teenuse tüüp = oma
Pärast testimist: 1, 2 saavad valida 'Luba töölauaga suhtlemiseks', kuid teenuse käivitamisel ei saa rakenduse liides hüpikakna avaneda.
3 Kõiki nõudeid saab täiuslikult täita.
Siiani on probleem, millega kokku puutusin, ka suurepäraselt lahendatud.
Võrdlusmaterjalid:
SC
Suhtle teenuse kontrolleri ja installitud seadmetega. SC.exe otsib ja määrab teenuste juhtimisteabe. Teenuseprogrammi testimiseks ja silumiseks saate kasutada faili SC.exe. Registrisse salvestatud teenuse atribuudid saate seadistada juhtima teenuserakenduse käivitamist käivitamisel ja taustaprogrammina töötamise ajal. SC.exe parameetritega saab määratud teenust konfigureerida, teenuse praeguse oleku hankida või teenuse peatada ja käivitada. Erinevate SC.exe käskude kutsumiseks saab teenusekomplekti automaatselt käivitada või sulgeda pakettfaili. SC.exe pakutavad funktsioonid on sarnased juhtpaneeli üksuse „Haldustööriistad” jaotise „Teenused” funktsiooniga.
Käsusüntaksiks klõpsake palun mõnda järgmistest sc-käskudest:
sc boot
näitab, kas viimane käivitus tuleks salvestada viimase teadaoleva normaalse konfiguratsioonina.
Süntaks
sc [Serveri nimi] alglaadimine [OK]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab olema UNC (Universal Naming Convention) vormingus ('' 'myserver' '). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
[halb]
määrab, kas viimane käivitus oli vale või tuleks see salvestada viimase teadaoleva tavalise konfiguratsioonina.
/?
kuvab käsuviibal abi.
näide
Järgmine näide näitab, kuidas kasutada käsku sc boot:
sc boot ok
sc boot halb
sc konfig
Muutke teenuse üksuse väärtust registris ja andmebaasis 'Service Control Manager'.
Süntaks
sc [ServeriNimi] konfiguratsioon [TeenuseNimi] [tüüp = kohandamine] [algus = keelatud] [viga = ignoreerimine] [binpath = Binaarne teeNimi] [grupp = LoadOrderGroup] [silt = ei] [sõltuv = sõltuvused] [obj = konto nimi] [kuvatav nimi = DisplayName] [parool = parool]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab olema vormingus UNC (Universal Naming Convention) ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
tüüp = oma
Määrake teenuse tüüp. Väärtuse kirjeldus
Oma teenus töötab oma protsessis. Ärge jagage käivitatavaid faile teiste teenustega. See on vaikeseade.
Jagamisteenus töötab ühise protsessina. See jagab käivitatavat faili teiste teenustega.
kerneli draiver
filesys failisüsteemi draiver.
rec Failisüsteem tunneb draivi ära (tähistab arvutis kasutatavat failisüsteemi).
kohandage adapteri draiverit (mis esindab riistvaraelemente nagu klaviatuur, hiir, kettaseade).
Suhtlusteenus saab suhelda töölauaga ja saada kasutaja sisendeid. Interaktiivseid teenuseid tuleb käitada LocalSystemi konto alt. Seda tüüpi tuleb kasutada koos tüübiga = oma või tüüp = jagatud (näiteks tüüp = suhelda tüüp = oma). Type = interact iseenesest kasutamine tekitab vale parameetrivea.
algus = auto
Määrake teenuse algtüüp. Väärtuse kirjeldus
alglaadimine Alglaaduri laaditud seadme draiver.
süsteem Seadmedraiver käivitati tuuma lähtestamise käigus.
auto Teenus, mida saab käivitada automaatselt iga kord, kui arvuti taaskäivitub, isegi kui keegi arvutisse sisse ei logi.
nõudmine Teenus, mis tuleb käivitada käsitsi. Kui 'start =' pole määratud, on see vaikeväärtus.
keelatud Teenus, mida ei saa käivitada. Keelatud teenuse käivitamiseks muutke käivitamise tüüp teisele väärtusele.
viga = ignoreeri
Kui server ei käivitu käivitamise ajal, määrake tõrke tõsidus. Väärtuse kirjeldus
normaalne logib vea ja kuvab teate dialoogi, et teavitada kasutajat teenuse käivitamise ebaõnnestumisest. Käivitamine jätkub. See on vaikeseade.
tõsine Salvestusviga (kui on). Arvuti proovib taaskäivitada uusima kehtiva konfiguratsiooniga. Selle põhjuseks võib olla arvuti taaskäivitamine, kuid server ei saa ikkagi käitada.
kriitiline logiviga (kui on). Arvuti proovib taaskäivitada uusima kehtiva konfiguratsiooniga. Kui viimane teadaolev tavaline konfiguratsioon ebaõnnestub, nurjub ka käivitamine ja käivitamisprotsess peatub sinise ekraani tõrega.
Eiramisviga on salvestatud ja käivitamine jätkub. Vigade salvestamine ei kuulu sündmuste logi reguleerimisalasse ja kasutajale ei anta enam viipasid.
binpath = BinaryPathName
Määrake teenuse binaarfaili tee.
rühm = LoadOrderGroup
Määrake rühma nimi, mille liige see teenus on. Rühmaloend salvestatakse registreerimisel alamvõtmesse HKLM'System'CurrentControlSet'Control'ServiceGroupOrder. Vaikeseade on tühi.
silt = jah
Määrake, kas hankida TagID kõnes „CreateService”. Lippu kasutatakse ainult juur- või süsteemi alglaadurite jaoks.
sõltuv = sõltuvused
Määrake teenuse või rühma nimi, mis tuleb enne seda teenust käivitada. Eesmine kaldkriips (/) eraldab päritolevad nimed.
obj = konto nimi
Määrake töötava teenuse konto nimi või töötava draiveri Windowsi draiveri objekti nimi. Vaikimisi seade on LocalSystem.
displayname = DisplayName
Määrake sõbralik ja sisukas nimi, mida saab kasutajaliidese programmis kasutada kasutaja tuvastamisteenuste jaoks. Näiteks on teenuse alamvõtme nimi wuauserv, mis pole kasutajatele kasulik ja kuvatav nimi on „automaatne värskendamine”.
parool: parool
Määrake parool. See on vajalik, kui kasutatakse muud kontot kui LocalSystem.
/?
kuvab käsuviibal abi.
kommenteerida
Kui parameetri ja selle väärtuse vahel pole tühikut (näiteks tüüp = oma, mitte tüüp = oma), nurjub toiming.
näide
Järgmine näide näitab, kuidas kasutada käsku sc config:
sc config NewService binpath = 'ntsd -d c:' Windows'system32'NewServ.exe '
sc jätka
Peatatud teenuse jätkamiseks tuleb teenusele saata JÄTKA kontrollitaotlus.
Süntaks
sc [Serveri nimi] jätka [Teenuse nimi]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
/?
kuvab käsuviibal abi.
kommenteerida
Peatatud teenuse jätkamiseks kasutage toimingu jätkamist.
näide
Järgmine näide näitab, kuidas kasutada käsku sc Continue:
sc jätka tapisrv
sc kontroll
saadetud teenusele CONTROL B.
Süntaks
sc [Serveri nimi] kontroll [Teenuse nimi] [netbindremove]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
UserDefinedControlB
Määrab teenusele saadetava juhtelemendi.
/?
kuvab käsuviibal abi.
sc luua
Looge registris ja teenuse juhtimise halduris teenuse jaoks alamvõtmed ja kirjed.
Süntaks
sc [Serveri nimi] loo [teenuse nimi] [tüüp = kernel] [algus = süsteem] [viga = raske] [binpath = kahendkanali nimi] [grupp = laadimisrühm] [silt = jah] [sõltuv = sõltuvused] [obj = objekti nimi] [kuvatav nimi = DisplayName] [parool = parool]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
tüüp = filesys
Määrake teenuse tüüp. Vaiketüüp on type = own. Väärtuse kirjeldus
Oma teenus töötab oma protsessis. Ärge jagage käivitatavaid faile teiste teenustega. See on vaikeseade.
Jagamisteenus töötab ühise protsessina. See jagab käivitatavat faili teiste teenustega.
kerneli draiver
filesys failisüsteemi draiver.
rec Failisüsteem tunneb draivi ära (näitab arvutis kasutatavat failisüsteemi).
Suhtlusteenus saab suhelda töölauaga ja saada kasutaja sisendeid. Interaktiivseid teenuseid tuleb käitada LocalSystemi konto alt. Seda tüüpi tuleb kasutada koos tüübiga = oma või tüüp = jagatud (näiteks tüüp = suhelda tüüp = oma). Type = interact iseenesest kasutamine tekitab vale parameetrivea.
algus = süsteem
Määrake teenuse algtüüp. Vaikimisi algustüüp on start = nõudlus. alglaadimine Alglaaduri laaditud seadme draiver.
süsteem Seadmedraiver käivitati tuuma lähtestamise käigus.
auto Teenus, mida saab käivitada automaatselt iga kord, kui arvuti taaskäivitub, isegi kui keegi arvutisse sisse ei logi.
nõudmine Teenus, mis tuleb käivitada käsitsi. Kui 'start =' pole määratud, on see vaikeväärtus.
keelatud Teenus, mida ei saa käivitada. Keelatud teenuse käivitamiseks muutke käivitamise tüüp teisele väärtusele.
viga = ignoreeri
Kui server ei käivitu käivitamise ajal, määrake tõrke tõsidus. Vaikimisi seade on ascii. tavaline logib vead ja kuvab teate dialoogi, et teavitada kasutajat teenuse käivitamise ebaõnnestumisest. Käivitamine jätkub. See on vaikeseade.
tõsine Salvestusviga (kui on). Arvuti proovib taaskäivitada uusima kehtiva konfiguratsiooniga. Selle põhjuseks võib olla arvuti taaskäivitamine, kuid server ei saa ikkagi käitada.
kriitiline logiviga (kui on). Arvuti proovib taaskäivitada uusima kehtiva konfiguratsiooniga. Kui viimane teadaolev tavaline konfiguratsioon ebaõnnestub, nurjub ka käivitamine ja käivitamisprotsess peatub sinise ekraani tõrega.
Eiramisviga on salvestatud ja käivitamine jätkub. Vigade salvestamine ei kuulu sündmuste logi reguleerimisalasse ja kasutajale ei anta enam viipasid.
binpath = BinaryPathName
Määrake teenuse binaarfaili tee. binpath = pole vaikeväärtust, see string tuleb anda.
rühm = LoadOrderGroup
Määrake rühma nimi, mille liige see teenus on. Rühmaloend salvestatakse registreerimisel alamvõtmesse HKLM'System'CurrentControlSet'Control'ServiceGroupOrder. Vaikeseade on tühi.
/ varjatud: ei
Määrake, kas hankida TagID kõnes „CreateService”. Lippu kasutatakse ainult juur- või süsteemi alglaadurite jaoks.
sõltuv = sõltuvused
Määrake teenuse või rühma nimi, mis tuleb enne seda teenust käivitada. Eesmine kaldkriips (/) eraldab päritolevad nimed.
obj = ObjectName
Määrake töötava teenuse konto nimi või töötava draiveri Windowsi draiveri objekti nimi.
displayname = DisplayName
määrab sõbraliku nime, mida kasutajaliidese programm teenuse tuvastamiseks kasutab.
parool: parool
Määrake parool. Kui te ei kasuta LocalSystemi kontot, on vaja parooli.
/?
kuvab käsuviibal abi.
kommenteerida
Kui parameetri ja selle väärtuse vahel pole tühikut (näiteks tüüp = oma, mitte tüüp = oma), nurjub toiming.
näide
Järgmine näide näitab, kuidas kasutada käsku sc create:
sc '' myserver loob uue teenuse binpath = c: 'windows'system32'NewServ.exe
sc luua NewService binpath = c: 'windows'system32'NewServ.exe type = share start = auto depend =' + TDI Netbios '
sc kustuta
Kustutage teenuse alamvõti registrist. Kui teenus töötab või mõnel muul protsessil on teenuse jaoks avatud käepide, siis märkige teenus kustutamiseks.
Süntaks
sc [ServerName] kustutage [ServiceName]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
/?
kuvab käsuviibal abi.
kommenteerida
DHCP, DNS või mõne muu sisseehitatud operatsioonisüsteemi teenuse kustutamiseks kasutage nuppu „Programmide lisamine või eemaldamine”. Programmide lisamine või eemaldamine kustutab mitte ainult teenuse registri alamvõtmed, vaid desinstallib teenuse ja kustutab kõik selle otseteed.
näide
Järgmine näide näitab, kuidas kasutada käsku sc delete:
sc kustutab uudisteserveri
sc kirjeldus
Määrake teenuse kirjeldus string.
Süntaks
sc [Serveri nimi] kirjeldus [Teenuse nimi] [Kirjeldus]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
kirjeldus
Määrake määratud teenuse kirjeldus. Kui stringi pole määratud, ei muudeta teenuse kirjeldust. Teenuse kirjelduses sisalduvate märkide arv ei ole piiratud.
/?
kuvab käsuviibal abi.
näide
Järgmine näide näitab, kuidas kasutada sc kirjelduse käsku:
sc kirjeldus newserv 'Käitab teenuse kvaliteedi kontrolli.'
sc sõltuvad
loetleb teenused, mida saab käivitada ainult siis, kui määratud teenus töötab.
Süntaks
sc [Serveri nimi] sõltuv [teenuse nimi] [puhvri suurus]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
BufferSize
Määrake loenduspuhvri suurus baitides. Vaikeväärtus on 1024 baiti.
/?
kuvab käsuviibal abi.
kommenteerida
Kui puhver pole piisavalt suur, väljastab operatsioon enumdepend ainult osaliselt sõltuvaid teenuseid ja määrab kõigi sõltuvate teenuste väljastamiseks vajaliku täiendava puhvri suuruse. Kui väljund on kärbitud, käivitage operatsioon uuesti ja määrake suurem puhvri suurus.
näide
Järgmine näide näitab, kuidas kasutada käsku sc enumdepend:
sc enumdepend rpcss 5690
sc enumdepend tapisrv
sc ebaõnnestumine
Määrake toiming, mis tuleb teha, kui teenus ebaõnnestub.
Süntaks
sc [ServerName] tõrge [ServiceName] [reset = ErrorFreePeriod] [taaskäivitamine = BroadcastMessage] [käsk = CommandLine] [toimingud = FailureActionsAndDelayTime]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
reset = ErrorFreePeriod
Määrake perioodi pikkus (sekundites) ilma tõrgeteta, mille järel peaks ebaõnnestunud kalkulaator lähtestama väärtusele 0. Seda parameetrit tuleb kasutada koos toimingu = parameetriga.
taaskäivitamine = BroadcastMessage
Määrake teenuse nurjumisel edastatav teade.
käsk = käsurida
Määrake käsurida, mida käivitada teenuse nurjumisel. Teavet pakett- või VBS-faili käivitamise kohta selle nurjumisel leiate jaotisest 'Märkused'.
toimingud = FailureActionsAndDelayTime
Määrake nurjunud toiming ja selle viivitusaeg (millisekundites), eraldatuna ettepoole kaldkriipsuga (/). Kehtivad järgmised toimingud: käivitamine, taaskäivitamine ja taaskäivitamine. Seda parameetrit tuleb kasutada koos parameetriga reset =. Kui ebaõnnestumise korral mingeid toiminguid ei tehta, kasutage palun tegevusi = '
/?
kuvab käsuviibal abi.
kommenteerida
Kõik teenused ei võimalda muuta nende tõrke võimalusi. Mõni neist töötab osana teenusekomplektist.
Pakettfaili käivitamiseks selle nurjumisel määrake käsu = parameetriks cmd.exe Drive: 'FileName.bat, kus Drive:' FileName.bat on täielik pakkfaili kvalifitseeritud nimi.
VBS-faili käivitamiseks selle nurjumisel määrake käsu = parameetriks cscript drive: 'myscript.vbs, kus draiv:' myscript.vbs on skriptifaili täielik nimi.
Toimingute parameetriteks = saab määrata kolm erinevat toimingut ja neid kasutatakse siis, kui teenus ebaõnnestub esimesel, teisel ja kolmandal korral.
Kui parameetri ja selle väärtuse vahel pole tühikut (näiteks tüüp = oma, mitte tüüp = oma), nurjub toiming.
näide
Järgmine näide näitab, kuidas sc tõrke käsku kasutada:
sc rike msftpsvc reset = 30 toimingut = taaskäivitamine / 5000
sc rike dfs reset = 60 käsk = c: 'Windowsi teenused' restart_dfs.exe toimingud = käivitada / 5000
sc rike dfs reset = 60 toimingut = taaskäivitamine / 30000
sc rike dfs reset = 60 reboot = 'Hajutatud failisüsteemi teenus nurjus. Seetõttu taaskäivitub arvuti 30 sekundi pärast. ' toimingud = taaskäivitamine / 30000
sc rike myservice reset = 3600 reboot = 'Minu teenus jooksis kokku - masina taaskäivitamine' command = '% windir%' MyServiceRecovery.exe 'toimingud = taaskäivitage / 5000 / run / 10000 / reboot / 60000
sc getdisplayname
Hankige konkreetse teenusega seotud kuvatav nimi.
Süntaks
sc [ServeriNimi] getdisplayname [TeenuseNimi] [Puhvrisuurus]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
BufferSize
Määrake puhvri suurus (baitides). Vaikeväärtus on 1024 baiti.
/?
kuvab käsuviibal abi.
näide
Järgmine näide näitab, kuidas kasutada käsku sc getdisplayname:
sc getdisplayname klipidrv
sc getdisplayname tapisrv
sc getdisplayname jagatud juurdepääs
sc getkeyname
Sellega seotud võtme nime saamiseks kasutage sisendina konkreetse teenuse kuvatavat nime.
Süntaks
sc [Serveri nimi] saada võtme nimi [ServiceDisplayName] [BufferSize]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
ServiceDisplayName
Määrake teenuse kuvatav nimi.
BufferSize
Määrake puhvri suurus (baitides). Vaikeväärtus on 1024 baiti.
/?
kuvab käsuviibal abi.
kommenteerida
Kui ServiceDisplayName sisaldab tühikuid, kasutage teksti lisamiseks jutumärke (näiteks 'Teenuse kuvatav nimi').
näide
Järgmine näide näitab, kuidas kasutada käsku sc getkeyname:
sc getkeyname 'kaugprotseduurikõne (RPC)'
sc getkeyname 'Interneti-ühenduse jagamine'
sc getkeyname lõikeraamat
sc ülekuulamine
saadab teenusele INTERROGATE juhtimistaotluse.
Süntaks
sc [ServerName] küsitleb [ServiceName]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
/?
kuvab käsuviibal abi.
kommenteerida
Teenuse INTERROGATE saatmiseks 'teenuse juhtimise halduri' kasutamine põhjustab teenuse oleku värskendamise teenuse juhtimise halduri abil.
näide
Järgmine näide näitab, kuidas kasutada käsku sc interrogate:
sc küsitleb jagatud juurdepääsu
sc küsitleb RPC-sid
sc lukk
Lukustage andmebaas 'Service Control Manager'.
Süntaks
sc [Serveri nimi] lukustus
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Kui soovite selles arvutis käivitada SC.exe, siis ignoreerige seda parameetrit.
/?
kuvab käsuviibal abi.
kommenteerida
Teenuse juhtimise halduri andmebaasi lukustamine hoiab ära kõigi teenuste käivitamise. Kui soovite veenduda, et teenus ei käivitu pärast selle peatamist, kasutage seda käsku. See võimaldab teil teatud toiminguid (näiteks teenuseid kustutada) häireteta teha.
Kasutage teenuse Control Manager halduri andmebaasi lukustamiseks lukustusoperatsiooni ja seejärel avage andmebaas, tippides u. Samuti saate protsessi sulgeda andmebaasi lukustamise eest.
näide
Järgmine näide näitab, kuidas sc-käsku kasutada:
sc lukk
sc paus
Saatke teenusele PAUSE juhtimistaotlus.
Süntaks
sc [ServerName] paus [ServiceName]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
/?
kuvab käsuviibal abi.
kommenteerida
Enne peatamist kasutage teenuse peatamiseks pausitoimingut.
Kõiki teenuseid ei saa peatada.
Kõik teenused ei tee peatamise korral sama toimingut. Mõned teenused teenivad jätkuvalt olemasolevaid kliente, kuid uusi kliente nad vastu ei võta. Teised lõpetavad teenuse olemasolevatele klientidele ja uusi kliente vastu ei võta.
näide
Järgmine näide näitab, kuidas kasutada käsku sc paus:
sc paus tapisrv
sc qc
Küsige teenuse konfiguratsiooniteavet.
Süntaks
sc [Serveri nimi] qc [Teenuse nimi] [Puhvri suurus]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
BufferSize
Määrake puhvri suurus (baitides). Vaikeväärtus on 1024 baiti.
/?
kuvab käsuviibal abi.
kommenteerida
Operatsiooniga qc kuvatakse teenuse kohta järgmine teave: SERVICE_NAME (teenuse alamvõtme nimi registris), TYPE, ERROR_CONTROL, BINARY_PATH_NAME, LOAD_ORDER_GROUP, TA, DISPLAY_NAME, DEPENDENCIES ja SERVICE_START_NAME.
Administraator saab kasutada SC-d iga teenuse binaarse nime määramiseks ja selle välja selgitamiseks, kas see jagab protsessi teiste teenustega, ja tippige käsureale järgmised käsud:
sc qc teenuse nimi
SC aitab Microsofti halduskonsooli (MMC) teenuseid sobitada süsteemimonitori protsessidega. Kui binaarne nimi on Services.exe, jagab teenus protsessi „Service Controller”.
Services.exe käivitab kõik teenused. Süsteemiressursside säästmiseks kirjutatakse mitmed Windowsi jaoks välja töötatud Win32 teenused jagatud Services.exe protsessidena. Neid teenuseid ei ole jaotises „System Monitor” ega „Task Manager” eraldi protsessidena loetletud. Svchost.exe on sama, see on peamine teenuseprotsess, mida jagavad paljud operatsiooniteenused.
Kuna kolmanda osapoole Win32 teenuseid saab konfigureerida ka jagatud protsessidena, on iga Win32 teenuse jaoks protsessi loomine võimatu. SC-d saab kasutada nende teenuste konfiguratsiooniteabe hankimiseks. Kui aga teenus ei jaga oma protsessi teiste teenustega, kuvatakse selle protsess teenuse töötamise ajal jaotises „System Monitor”.
Kuna SC pakub teenuse kohta üksikasjalikumat ja täpsemat teavet võrreldes Windowsis sisalduva Services.exe-ga, on see teenuse arendajatele kasulikum. Services.exe saab määrata, kas teenus töötab, peatatakse või peatatakse. Ehkki nendest tööriistadest piisab tõrgeteta töötava silutud programmi jaoks, võib nende arendatava teenuse kohta pakutav teave olla eksitav. Näiteks kuvatakse käivitatav teenus käivitatuna, hoolimata sellest, kas see tegelikult töötab või mitte.
SC kutsub kõiki Windowsi teenuse juhtimise rakenduse programmeerimisliidese (API) funktsioone. Määrake need funktsioonid parameetriteks, määrates need käsureal.
SC abil saate päringu teenuse oleku kohta ja hankida olekustruktuuri väljale salvestatud väärtuse. Services.exe ei saa pakkuda teenuse täielikku olekut, kuid SC kuvab teenuse täpset olekut, samuti viimast kontrollpunkti numbrit ja ootenuppu. Kontrollpunkti saate kasutada silumisvahendina, sest see näitab, kui kaugele lähtestamine läheb, enne kui programm lõpetab reageerimise. SC-d saab kasutada ka kaugarvuti nime määramiseks, et hõlbustada teenuse API funktsioonide helistamist või kaugarvuti teenuse oleku struktuuri vaatamist.
näide
Järgmine näide näitab, kuidas kasutada käsku sc qc:
sc qc '' minu serveri uudiste teenus
sc qc rpcss 248
sc q kirjeldus
Kuva teenuse kirjeldus string.
Süntaks
sc [ServerName] q-kirjeldus [ServiceName] [BufferSize]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
BufferSize
Määrake puhvri suurus (baitides). Vaikeväärtus on 1024 baiti.
/?
kuvab käsuviibal abi.
näide
Järgmine näide näitab, kuidas kasutada käsku sc qdescription:
sc qkirjeldus rpcss
sc qkirjeldus rpcss 138
sc qfailure
näitab toimingut, mis tuleb teha, kui määratud teenus ebaõnnestub.
Süntaks
sc [Serveri nimi] qfailure [Teenuse nimi] [Puhvri suurus]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
BufferSize
Määrake puhvri suurus (baitides). Vaikeväärtus on 1024 baiti.
/?
kuvab käsuviibal abi.
kommenteerida
Toiming qfailure kuvab teenuse kohta järgmist teavet: SERVICE_NAME (teenuse alamvõtme nimi registris), RESET_PERIOD, REBOOT_MESSAGE, COMMAND_LINE ja FAILURE_ACTIONS.
näide
Järgmine näide näitab, kuidas kasutada käsku sc qfailure:
sc qfailure rpcss
sc qfailure rpcss 20
sc päring
Hankige ja kuvage teavet määratud teenuse, draivi, teenuse tüübi või draivi tüübi kohta.
Süntaks
sc [ServerName] päring [ServiceName] [type = kõik] [type = own] [state = aktiivne] [bufsize = BufferSize] [ri = ResumeIndex] [group = GroupName]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname. Seda päringuparameetrit ei kasutata koos teiste päringuparameetritega (välja arvatud ServerName).
tüüp = teenus
Täpsustage, mida tuleb loetleda. Vaiketüüp on teenus. Väärtuse kirjeldus
draiver määrab ainult need draiverid, mida tuleb loendada.
teenus määrab ainult teenused, mida tuleb loetleda.
kõik määrab draiverid ja serverid, mida tuleb loendada.
tüüp = oma
Määrake loendatava teenuse tüüp või draiver. Väärtuse kirjeldus
Oma teenus töötab oma protsessis. Ärge jagage käivitatavaid faile teiste teenustega. See on vaikeseade.
Jagamisteenus töötab ühise protsessina. See jagab käivitatavat faili teiste teenustega.
Suhtlusteenus saab suhelda töölauaga ja saada kasutaja sisendeid. Interaktiivseid teenuseid tuleb käitada LocalSystemi konto alt.
kerneli draiver
filesys failisüsteemi draiver.
olek = aktiivne
Määrab loendamiseks kasutatud teenuse algseisundi. Vaikeseisund on aktiivne. Väärtuse kirjeldus
aktiivne määrab kõik aktiivsed teenused.
mitteaktiivne määrab kõik peatatud või peatatud teenused.
kõik määrab kõik teenused.
bufsize = BufferSize
Määrake loenduspuhvri suurus baitides. Vaikimisi suurus on 1024 baiti. Kui päringult tagastatud kuvatulemus ületab 1024 baiti, suurendage loenduspuhvri suurust.
ri = ResumeIndex
Täpsustage loendite alustamise või jätkamise indeksite arv. Vaikeväärtus on 0. Kui päringu tagastatud teave ületab vaikepuhvri kuvatava suuruse, kasutage seda parameetrit koos parameetriga bufsize =.
rühm = Grupi nimi
Määrake loendatud teenuserühm. Vaikimisi seade on kõik rühmad.
/?
kuvab käsuviibal abi.
kommenteerida
Kui parameetri ja selle väärtuse vahel pole tühikut (näiteks tüüp = oma, mitte tüüp = oma), nurjub toiming.
Päringuoperatsioon kuvab teenuse kohta järgmist teavet: SERVICE_NAME (teenuse alamvõtme nimi registris), TYPE, STATE (ka olek pole saadaval), WIN32_EXIT_B, SERVICE_EXIT_B, CHECKPOINT ja WAIT_HINT.
Mõnel juhul saab parameetrit 'type =' kasutada kaks korda. Parameetri 'type =' esimene esinemine määrab, kas teenuseid, draive või kõiki päringuid teha. Parameetri 'type =' teine esinemine määrab tüübi, mida saab 'loomise' toiminguga veelgi kitsendada.
Kui päringukäsu kuvatud tulemus ületab loenduspuhvri suurust, kuvatakse järgmisega sarnane teade:
Enum: Andmed on ületatud. Indeksis 79 taaskäivitamiseks on vaja 1822 baiti
Ülejäänud päringuteabe kuvamiseks käivitage päring uuesti, määrake bufsize = baitide arvule ja ri = määratud indeksile. Näiteks järgmise käsu tippimine käsureale kuvab ülejäänud väljundi:
sc päring bufsize = 1822 ri = 79
näide
Järgmine näide näitab, kuidas sc-päringut kasutada:
sc päring
sc päringu messenger
sc päringu tüüp = draiver
sc päringu tüüp = teenus
sc päringu olek = kõik
sc päringu bufsize = 50
sc päring ri = 14
sc päringu tüüp = teenuse tüüp = suhtle
sc päringu tüüp = draiverite rühm = ndis
sc queryex
Hankige ja kuvage laiendatud teavet teenuste, draivide, teenusetüüpide või kettatüüpide kohta.
Süntaks
sc [ServerName] queryex [type = service] [type = share] [state = passiivne] [bufsize = BufferSize] [ri = ResumeIndex] [group = GroupName]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname. Seda queryexi parameetrit ei kasutata koos muude queryexi parameetritega peale ServerName.
tüüp = draiver
Täpsustage, mida tuleb loetleda. Vaiketüüp on teenus. Väärtuse kirjeldus
draiver määrab ainult need draiverid, mida tuleb loendada.
teenus määrab ainult teenused, mida tuleb loetleda.
kõik määrab draiverid ja serverid, mida tuleb loendada.
tüüp = rec
Määrake loendatava teenuse tüüp või draiver. Väärtuse kirjeldus
Oma teenus töötab oma protsessis. Ärge jagage käivitatavaid faile teiste teenustega. See on vaikeseade.
Jagamisteenus töötab ühise protsessina. See jagab käivitatavat faili teiste teenustega.
Suhtlusteenus saab suhelda töölauaga ja saada kasutaja sisendeid. Interaktiivseid teenuseid tuleb käitada LocalSystemi konto alt.
kerneli draiver
filesys failisüsteemi draiver.
olek = kõik
Määrab loendamiseks kasutatud teenuse algseisundi. Vaikeseisund on aktiivne. Väärtuse kirjeldus
aktiivne määrab kõik aktiivsed teenused.
mitteaktiivne määrab kõik peatatud või peatatud teenused.
kõik määrab kõik teenused.
bufsize = BufferSize
Määrake loenduspuhvri suurus baitides. Vaikimisi suurus on 1024 baiti.
ri = ResumeIndex
Täpsustage loendite alustamise või jätkamise indeksite arv. Vaikeväärtus on 0.
rühm = Grupi nimi
Määrake loendatud teenuserühm. Vaikimisi seade on kõik rühmad.
/?
kuvab käsuviibal abi.
kommenteerida
Kui parameetri ja selle väärtuse vahel pole tühikut (näiteks tüüp = oma, mitte tüüp = oma), nurjub toiming.
Operatsioon queryex kuvab teenuse kohta järgmist teavet: SERVICE_NAME (teenuse alamvõtme nimi registris), TYPE, STATE (ka olek pole saadaval), WIN32_EXIT_B, SERVICE_EXIT_B, CHECKPOINT, WAIT_HINT, PID ja FLAGS.
Mõnel juhul saab parameetrit 'type =' kasutada kaks korda. Parameetri 'type =' esimene esinemine määrab, kas teenuseid, draive või kõiki päringuid teha. Parameetri 'type =' teine esinemine määrab tüübi, mida 'loomise' toiming veelgi kitsendab.
Kui käsu queryex kuvatav tulemus ületab loenduspuhvri suurust, kuvatakse järgmisega sarnane teade:
Enum: andmed on ületatud, indeksil 75 taaskäivitamiseks on vaja 2130 baiti
Päringuexx ülejäänud teabe kuvamiseks käivitage queryex uuesti, määrake bufsize = baitide arvuks ja ri = indeksi määramiseks. Näiteks järgmise käsu tippimine käsureale kuvab ülejäänud väljundi:
sc queryex bufsize = 2130 ri = 75
näide
Järgmine näide näitab, kuidas kasutada sc queryex käsku:
sc queryex messenger
sc queryex group = ''
sc päringulukk
Päringu ja kuvage andmebaasi „Service Control Manager” lukustusteave.
Süntaks
sc [ServerName] päringulukk
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
/?
kuvab käsuviibal abi.
sc sdset
Teenuse turbekirjuri määramiseks kasutage 'Service Descriptor Definition Language' (SDDL).
Süntaks
sc [ServerName] sdset ServiceName ServiceSecurityDescriptor
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
ServiceSecurityDescriptor
Määrake teenuse kirjeldaja SDDL-is.
/?
kuvab käsuviibal abi.
kommenteerida
Lisateavet SDDL-i kohta leiate MSDN-i veebiteabebaasi jaotisest „Turvakirjeldaja määratluse keel”. (http://www.microsoft.com/)
sc sdshow
Teenuse turbekirjuri kuvamiseks kasutage SDDL-i.
Süntaks
sc [Serveri nimi] sdshow Teenuse nimi
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
/?
kuvab käsuviibal abi.
kommenteerida
Lisateavet SDDL-i kohta leiate MSDN-i veebiteabebaasi jaotisest „Turvakirjeldaja määratluse keel”. (http://www.microsoft.com/)
näide
sc sdshow rpcss
sc algus
Käivitage töötav teenus.
Süntaks
sc [Serveri nimi] käivita teenuse nimi [ServiceArguments]
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
Teenuseargumendid
Määrake käivitatavale teenusele edastatud teenuse parameetrid.
/?
kuvab käsuviibal abi.
näide
Järgmine näide näitab, kuidas kasutada käsku sc start:
sc algus tapisrv
sc peatus
Saatke teenusele STOP-kontrollitaotlus.
Süntaks
sc [Serveri nimi] peatage teenuse nimi
parameetrid
Serveri nimi
Määrake kaugserveri nimi, kus teenus asub. Nimi peab kasutama UNC-vormingut ('' 'myserver'). Selles arvutis SC.exe käivitamiseks ignoreerige seda parameetrit.
Teenuse nimi
Määrake teenuse nimi, mille tagastab toiming getkeyname.
/?
kuvab käsuviibal abi.
kommenteerida
Kõiki teenuseid ei saa peatada.
näide
Järgmine näide näitab, kuidas kasutada käsku sc stop:
sc stop tapisrv
See artikkel on üle kantud ajaveebist 94cool blogi aiablogi, algne link on http://www.cnblogs.com/94cool/archive/2010/04/12/1710261.html. Kui peate uuesti printima, pöörduge palun algse autori poole üksi