Vídminníst mízh servísom i sluzhby víndovsí. Windows uchun qanday xizmatlar kerak va qaysi biri o'chirilishi mumkin. Qo'lda robot rejimiga o'tish mumkin bo'lgan Windows xizmatlari

Koristuvachiv ish stoli (mahalliy va masofaviy), ammo ba'zi xizmatlar uchun ayblash mumkin - konsol bilan o'zaro ta'sir (koristuvachni mahalliy sifatida ro'yxatdan o'tkazish yoki xizmatni boshlashda 0 raqami bilan sessiya) mstscíz / konsol kaliti bilan).

Xizmatlar uchun rejimlardan foydalanish:

  • ishga tushirishdan oldin devor bilan o'ralgan;
  • qo'lda ishga tushirish (elektr ta'minoti uchun);
  • kompyuter band bo'lganda har soatda avtomatik ishga tushirish;
  • avtomatik (turli) ishga tushirish (Windows Vista va Windows Server 2008 da kiritilgan);
  • obov'yazkova xizmati/haydovchi (avtomatik ishga tushirish va mumkin emasligi (korystuvach uchun) ishga tushirish xizmati).

Fon rejimi

Windows xizmatlarini ishga tushirish, to'xtatish va o'zgartirish

Xizmatlar va ularning atributlari MMC konsolida o'zgartirilishi mumkin:

Operatsion tizimlarning turli versiyalarida bir xizmat va boshqa kun bo'lishi mumkin. Deyaki dasturlari va dasturlari, xuddi o'rnatilayotgandek, ular o'zlarining xizmatlarini yaratishlari mumkin.

Microsoft Windows operatsion tizimi xizmatlari ro'yxati

Im'ya, nimani ko'rish kerak men xizmat qilaman Funksiyalar Tavsif
DHCP mijozi dhcp Ushbu kompyuter uchun IP manzillar va DNS yozuvlarini ro'yxatga olish va yangilash. Zupinena xizmati sifatida kompyuter dinamik IP manzillarni va DNS yangilanishlarini qabul qila olmaydi.
DNS mijozi dnscache DNS mijoz xizmati (dnscache) DNS (domen nomlari tizimi) nomlarini keshlaydi va ularni kompyuter nomidan tashqarida qayd qiladi. Xizmat sifatida u yangilandi, DNS nomlarini taqsimlash trivatime hisoblanadi. Biroq, DNS nomlari natijalari keshda saqlanmaydi va kompyuter nomlari ro'yxatga olinmaydi.
Filial operatsiyalari koordinatori uchun KtmRm KtmRm MSDTC va Kernel Transaction Manager (KTM) o'rtasidagi tranzaktsiyalarni muvofiqlashtiradi.
ReadyBoost EMDMgmt ReadyBoost Qo'shimcha ReadyBoost texnologiyasi yordamida tizim unumdorligini oshirishni qo'llab-quvvatlash.
Superfetch SysMain Superfetch Tizimning unumdorligini qo'llab-quvvatlaydi va yaxshilaydi.
Windows audio Audiosrv Windows uchun ovozli robotlar yordamida kurasiya. Ushbu xizmat ovozli bo'lsa ham, audio uskunalar va effektlar to'g'ri qayta ishlanmaydi.
Windows karta maydoni idsvc Bezpechuu nadyynu mozhlivyst stvennija, cheruvannya va rozkrittya raqamli svydchen.
Avtomatik yangilash WUAUSERV Variantni yoqing va o'rnating Windows yangilash. Agar xizmat o'chirilgan bo'lsa, unda qaysi kompyuterda qobiliyatni yutib bo'lmaydi avtomatik yangilash yoki Windows Update veb-sayti.
Haftalik protseduralarni olib tashlash (RPC) RPCS So'nggi nuqtalar va boshqa RPC xizmatlari o'rnatilganligiga ishonch hosil qiling.

Microsoft dasturlari tomonidan yaratilgan xizmatlar ro'yxati

Dasturlar va boshqa turdagi dasturlar tomonidan yaratilgan xizmatlarni qo'llang

Im'ya, nimani ko'rish kerak men xizmat qilaman Funksiyalar Tavsif
ESET HTTP serveri EhttpSrv antivirus zakhist ESET HTTP Server komponenti

Mijoz dasturini xizmat sifatida ishga tushira olasizmi? Teri konsoli dasturi xizmat sifatida ishga tusha olmaydi, lekin grafik interfeysga ega dasturlar, qoida tariqasida, bunday ishlamaydi. Ammo xizmat sifatida qo'shimchani ishga tushirish va asl nomi bilan dasturda bizga yordam berish mumkin. So'rmaydigan xizmat menejeri.

NSSM - bu haqiqiy dasturiy ta'minot xavfsizligi kod bilan bu barcha operatsion tizimlarni qo'llab-quvvatlaydi Microsoft Windows 2000 dan boshlab va tugatish. NSSM o'rnatishga ta'sir qilmaydi, uni olish va uni ochish uchun etarli. Tarqatish 32 va 64 bitli operatsion tizimlar uchun versiyalarni o'z ichiga oladi. Dasturni nssm.cc saytidan olishingiz mumkin, on Narazi Qolgan barqaror versiya 2.21.1, shuning uchun men qo'ng'iroq qilaman.

NSSM kuchini namoyish qilish uchun keling, Notepadni xizmat sifatida ishga tushirishga harakat qilaylik.

Xizmatni yaratish

Ular uchun xizmat yaratish uchun bloknot biz buyruq konsolini ishga tushiramiz, NSSM ochilgan papkaga o'tamiz (64 bitli Windows uchun) va NSSM grafik o'rnatuvchisi oynasini ochadigan nssm install notepad buyrug'ini kiritamiz. Xizmatni yaratish uchun "Yo'l" maydoniga faylga yo'lni kiriting va "Xizmatni o'rnatish" tugmasini bosing. Dodatkovo Options maydonida siz xizmatni ishga tushirish uchun kerakli kalitlarni kiritishingiz mumkin.

Shuningdek, yangi xizmatni yaratish bosqichida siz qo'shimcha parametrlarni belgilashingiz mumkin.

"O'chirish" yorlig'ida qo'ng'iroq qilish va vaqt tugashi usullari qo'llaniladi, chunki ular ishning normal tugashi yoki dasturning favqulodda jiringlashi paytida ta'mirlanadi. Agar NSSM ovozli buyruqni o'chirib qo'ysa (masalan, robot dasturi tugallanganda), xodimlar darajasi bo'yicha qo'shimchalarni boshqarish ovozi yoqiladi. Agar dastur ishlamasa, u holda NSSM dasturning barcha jarayonlari va kichik jarayonlarini yakunlashi mumkin.

Usogo ê chotiri robotli dasturni yakunlash bosqichlari va vikoristlarning badbo'y hididan tahorat olish uchun quyidagi tartibda:

NSSM ning birinchi bosqichida uni yaratish va tuzatish mumkin ctrl+c. Bu konsol qo'shimchalari yoki skriptlar uchun yaxshi amaliyotdir, lekin zastosovuetsya emas grafik qo'shimchalar;
Keyin NSSM dastur tomonidan yaratilgan barcha oynalarni taniydi va dasturdan chiqishni boshlaydigan WM_CLOSE ni bekor qiladi;
NSSM ning uchinchi bosqichi dastur tomonidan yaratilgan barcha oqimlarni sanab o'tadi va uni WM_QUIT bekor qiladi, go'yo u olib tashlanadigandek, dastur ipni chaqirishi mumkin;
Qolgan NSSM so'rovi sifatida siz dastur ishini primus bilan yakunlagan holda TerminateProcess() usulini chaqirishingiz mumkin.

Ba'zi yoki barcha usullarni yoqish mumkin, ammo turli dasturlar uchun robot dasturlarini to'g'ri bajarish uchun turli usullardan foydalanish tavsiya etiladi.

Tahorat uchun NSSM xizmatini qayta ishga tushirishga majbur bo'ladi. "Chiqish harakatlari" yorlig'ida siz dasturning g'ayritabiiy yakunlanishining avtomatik vaqtini o'zgartirishingiz, shuningdek, dastur avtomatik ravishda qayta ishga tushirilgunga qadar kechikishni belgilashingiz mumkin.

"Kirish/chiqish (I/U)" yorlig'ida siz fayl ko'rsatmalaridan dasturning kirish / chiqishini qayta yo'naltirishni o'rnatishingiz mumkin.

"Atrof-muhit" yorlig'ida siz keskinlashtirishga yangi o'zgarishlarni o'rnatishingiz yoki uni qayta ko'rib chiqishingiz mumkin.

Bundan tashqari, siz grafik qobiqdan foydalana olmaysiz va darhol quyidagi buyruq bilan konsolda xizmat yaratasiz:

nssm o'rnating notepad C:\Windows\system32\notepad.exe

Xizmatni boshqarish

NSSM yordami uchun xizmatni yaratgandan so'ng, keling, Xizmatlar qo'shimchasiga o'tamiz va biz bloknot xizmatini bilib olamiz. Aslini olganda, bu boshqa xizmatlarga xalaqit bermayotganga o'xshaydi, biz ham ishga tushirish, boshlash yoki ishga tushirish rejimini o'zgartirishimiz mumkin. Biroq, nssm.exe yuklab olinadigan fayl sifatida ko'rsatilganligini unutmang.

Va agar biz Vazifa menejeriga o'tadigan bo'lsak, unda biz quyidagi rasmni ko'ramiz: asosiy (batkivskiy) jarayon NSSM ishlayotganligi sababli, bloknot xizmati ikkinchi bola jarayoni sifatida ishlamoqda va ikkinchi bolada Notepad qo'shimchasi ishlamoqda. jarayon.

Masofaviy xizmat

Xizmatni o'chirish uchun nssm remove notepad buyrug'ini kiriting va uning o'chirilganligini tasdiqlang. Va nssm olib tashlash bloknotini tasdiqlash buyrug'ini kiritib, siz tasdiqlamasdan qilishingiz mumkin.

Interaktiv rejimda xizmatni ishga tushirish

Koristuvach dasturining xizmat ko'rsatish sohasidagi asosiy vazifasi shundan iboratki, dastur ishga tushirilgandan so'ng u qo'shimcha ishini koristuvacha tomonidan davom ettirish uchun ishlatilishi mumkin - masalan, tugmani bosing yoki buyruqni kiriting. . Kim uchun yangisiga kirish kerak bo'lsa, uni qo'lga kiritish unchalik oson emas.

Xizmatni interaktiv rejimda ishga tushirish uchun Xizmatlar asbobidagi "Tizimga kirish" yorlig'ida "Ish stoli bilan o'zaro ishlashga ruxsat berish" katagiga belgi qo'yishingiz kerak.

Va keyin ishga tushiring diva Interaktiv rejimda ishlaydigan xizmat uchun tizim seansni izolyatsiya qilish chegarasini o'rnatadi (sessiya 0). Interaktiv xizmatlarni aniqlash xizmati (ui0detect) yordami uchun butun sessiya davomida ko'proq vaqt sarflashingiz mumkin, bu esa kompyuterda interaktiv xizmatlarning ishga tushirilishini va xabarnoma turini bildiradi. Windows 7\Server 2008 da bu xizmat qulf ortida yoqilgan, Windows 8\Server 2012 da u o'chirilgan va Xizmatning grafik uskunasida ko'rinmaydi (men buni bilmayman). Bundan tashqari, agar siz hali ham maxfiy xizmatni bilsangiz va uni ishga tushirishga harakat qilsangiz, kechirim haqidagi ma'lumotni olib tashlang.

O'ng tomonda, ishga tushirishga kompyuterda interaktiv xizmatlarni ishga tushirishga ruxsat berish uchun. Shuning uchun, ro'yxatga olish kitobi muharriri HKLM\System\CurrentControlSet\Control\Windows bo'limida nomlar bilan DWORD parametri ma'lum. Interaktiv xizmatlar yo'q va uning qiymatini o'rnating 0 .

Shundan so'ng PowerShell konsoli ko'rsatiladi, xizmat buyruq bilan ishga tushiriladi:

Start-Service -Ui0detect nomi

Displey xizmati ishlayotganligini tekshirib, bloknot xizmatini qayta ishga tushiring va oxirida o'qni olib tashlang. Biz "Bildirishnomaga qarang" bandini tanlaymiz

va bizning dasturimiz ishlaydigan nol sessiyada iste'mol qilinadi. Dali robimo u bilan zarur qadamlar va orqaga buriling.

Bu Windows xizmatlari ko'rinishidagi dasturlarni ishga tushirish uchun yechimning o'qi. Eng chiroyli emas, lekin xuddi shu nom


Windows NT xizmati (Windows NT xizmati) Windows NT operatsion tizimi bilan interfeysni birlashtirish uchun maxsus jarayondir. Xizmatlar ikki turga bo'linadi - xizmatni boshqarish menejeri (SCM) yordamida operatsion tizim bilan o'zaro ta'sir qiluvchi Win32 xizmatlari va drayver protokoli ortida ishlaydigan drayver. Windows qo'shimchalari NT. Ushbu maqolada Win32 xizmatlari haqida ko'proq gaplashamiz.

Xizmat to'xtab qoldi

Xizmatning eng muhim vakolatlaridan biri bu interaktivlikdir. Odatiy xizmat - kerak emas ajoyib koristuvach ichida ishlash fon rejimi. Xizmatning xususiyatiga ko'ra, u quyidagi turdagi qo'shimchalarni amalga oshirish uchun eng mos keladi:

  • Mijoz-server arxitekturasidagi serverlar (masalan, MS SQL, MS Exchange Server)
  • Windows NT xizmatlari (Server, Workstation);
  • Server (funktsionallik nuqtai nazaridan) alohida dasturlarning komponentlari (masalan, barcha monitoring dasturlari).

Xizmatlarning asosiy vakolatlari

Oddiy Win32 dasturida xizmat uchta asosiy hokimiyat tomonidan nazorat qilinadi. Keling, ularni ko'rib chiqaylik.

Birinchidan, robot xizmatini to'g'ri to'xtatish (to'xtatib turish)ning maqsadga muvofiqligi. Koristuvach yoki standart mexanizmlarni qo'lga kiritadigan boshqa qo'shimcha xizmat ko'rsatish stantsiyasini o'zgartirishi mumkin - vv zí stanu vykonannya stan pauzi yoki navit zupiniti vvini robotga tarjima qilish. Men hayotimni o'zgartirishdan oldin xizmat qilganimda, men yangi holatga, masalan, qarz olish uchun zarur bo'lgan o'tishni amalga oshirishim mumkin bo'lgan alohida e'tiborni qabul qilaman.

Boshqacha qilib aytganda, koristni ro'yxatdan o'tkazishdan oldin xizmatni ishga tushirish imkoniyati, natijada ro'yxatdan o'tgan koristuvachasiz ishlash imkoniyatidir. Qanday bo'lmasin, xizmat operatsion tizimning boshida avtomatik ravishda ishga tushirilishi mumkin va siz tizimga kirishdan oldin robotning ishlashiga ruxsat bering.

Í, nareshti, yetarlicha non-peck kontekstida ishlash imkoniyati. Windows NT xavfsizlik konteksti jarayon uchun turli tizim ob'ektlari va ma'lumotlariga kirish huquqlari to'plamini belgilaydi. Har doim tizimda ro'yxatdan o'tgan koristuvach xavfsizligi kontekstida ishlaydigan Win32 dasturi nuqtai nazaridan, xizmat uchun xavfsizlik konteksti keyingi bosqichga tayinlanishi mumkin. Tse, xizmat uchun masofa ortidagi tizim ob'ektlariga kirish huquqlari to'plamini belgilashingiz va shu bilan birga uning faoliyat sohasini o'rab olishingiz mumkinligini anglatadi. Yuzlab xizmatlar mahalliy tizim deb ataladigan maxsus turdagi xavfsizlik kontekstidan foydalanadi. Ushbu kontekstda ishlaydigan xizmat mahalliy kompyuter resurslariga hech qanday huquqqa ega emas. Birlashtirilgan operatsiyalarning hech biri Mahalliy tizim ruxsatnomalari bilan ishlatilmaydi, lekin ularning konteksti sezgir bo'lishi mumkin mahalliy kompyuter va boshqa merezhí kompyuterlari tomonidan tanib bo'lmaydi.

Xizmatning boshqa dasturlar bilan o'zaro ta'siri

Bu dastur bo'ladimi, agar sizda biron bir huquq bo'lsa, xizmatingiz bilan o'zaro aloqada bo'lishingiz mumkin. Vza'modíya, pershu cherga, o'zgartirishni xizmat ko'rsatish stantsiyasiga o'tkazish, uchta stantsiyadan biriga o'tkazilishi - pratsyuche (Start), pauza (Pauza), zapinennya (Pauza), bu zupinka SCMni qo'shimcha etkazib berish uchun. Uchta turni so'rang - xizmatlar turlari haqida xabar berish (ularning stantsiyalarini o'rnatish), xizmat konfiguratsiyasini o'zgartirish yoki u haqidagi ma'lumotlarni o'chirishni so'rash va xizmatlarni o'zgartirish uchun dasturlarni so'rash.

Xizmatni boshqarish uchun avval Win32 API OpenService yordamchi funksiyasiga tutqichni ushlab turishingiz kerak. StartService funksiyasi xizmatni ishga tushiradi. Agar siz xizmatni o'zgartirishingiz kerak bo'lsa, sizdan ControlService funksiyasini bosishingiz so'raladi.

Xizmat ma'lumotlar bazasi

Teri xizmati haqidagi ma'lumotlar registrda - HKLM\SYSTEM\CurrentControlSet\Services\ServiceName kaliti ostida saqlanadi. Bunday vidomostilar mavjud:

  • Xizmat turi. Vkazuê tsmu qo'shimchasida faqat bitta xizmat (eksklyuziv) yoki qo'shimcha kílka da í̈x amalga oshiriladiganlar bo'yicha. Eksklyuziv xizmat har qanday xavfsizlik kontekstida qo'llanilishi mumkin. Bitta dasturning o'rtasida joylashgan Dekilka xizmatlari faqat LocalSystem kontekstida ishlashi mumkin.
  • ishga tushirish turi. Avtomatik - xizmat tizim ishga tushganda boshlanadi. Vimoguda - xizmat koristuvach tomonidan qo'lda ishga tushiriladi. O'chirilgan - xizmatni ishga tushirib bo'lmaydi.
  • Belgilangan modul nomi (EXE fayli).
  • Boshqa xizmatlarga buyurtma berishni boshlang. Ba'zi hollarda, to'g'ri xizmat ishlashi uchun bir yoki bir nechta boshqa xizmatlarni ishga tushirish kerak. Ro'yxatga olish kitobi bundan oldin ishga tushirilgan xizmatlar haqida ma'lumot olishini xohlaysizmi?
  • Xizmat xavfsizligi konteksti (men bu parolni saqlayman). Rag'batlantirish ortida xavfsizlik konteksti LocalSystem-ga o'rnatiladi.

Muayyan xizmat haqidagi ma'lumotlarni o'chirish yoki xizmatning bir yoki bir nechta parametrlarini o'zgartirishi kerak bo'lgan dasturlar ro'yxatga olish kitobidagi xizmat ma'lumotlar bazasidagi ma'lumotlarni o'zgartirish uchun asosan javobgardir. Boshqa Win32 API funktsiyalari bo'yicha yordam so'rashingiz mumkin:

  • OpenSCManager, CreateService, OpenService, CloseServiceHandle - xizmatni yopish (ochish) uchun;
  • QueryServiceConfig, QueryServiceObjectSecurity, EnumDependentServices, EnumServicesStatus - xizmat haqida ma'lumot olish uchun;
  • ChangeServiceConfig, SetServiceObjectSecurity, LockServiceDatabase, UnlockServiceDatabase, QueryServiceLockStatus - xizmat konfiguratsiyasi ma'lumotlarini o'zgartirish.

Ichki biriktirma.

Tartibga ko'ra, qo'shimcha yuqori martabali hokimiyatda bo'lish aybdor, va o'zi - oddiy funktsional bilan funktsiyalari oddiy majmuini (C ++ jihatidan) jumladan. Keling, teriga qisqacha qaraylik.

asosiy funksiyasi

Ko'rinishidan, asosiy funktsiya har qanday Win32 konsol dasturiga kirish nuqtasidir. Xizmat ishga tushirilganda, funksiya uchun kod oldindan tuzatiladi. Boshlangandan keyin 30 soniya davomida asosiy funktsiya SCM dasturi o'rtasida aloqa o'rnatish uchun StartServiceCtrlDispatcher tilini chaqirish uchun javobgardir. Usí komuníkatsíí̈ mízh be-qanday xizmat nima dodatku Ushbu SCM StartServiceCtrlDispatcher funktsiyasining o'rtasida o'rnatiladi, chunki u dasturdagi barcha xizmatlar boshlangandan keyin ishni tugatadi.

ServiceMain funktsiyasi

Krim zagalnoprotsesnoy kirish nuqtasi, shuningdek, qo'shimchada amalga oshirilgan teri xizmatlarining kirish nuqtasidir. Xizmatga kirish nuqtalari bo'lib xizmat qiladigan funksiyalarning nomlari (oddiylik uchun biz ularning barchasini ServiceMain deb ataymiz) StartServiceCtrlDispatcher chaqiruviga soatiga bitta parametrda SCMga uzatiladi. ServiceMain viscon uchun teri xizmatini ishga tushirganingizda, suv oqimi hosil bo'ladi.

Otrimavshi keruvannya, ServiceMain birinchi navbatda xizmatdan oldin so'rovlar namunasini ro'yxatdan o'tkazishi mumkin, Handler funktsiyasi, qo'shimcha sifatida teri xizmati uchun o'zining. Ushbu ServiceMain-dan so'ng, xizmatni ishga tushirish uchun quyidagini eshiting - xotirani ko'ring, ma'lumotlarni qayta o'qing. Xizmat hali ishga tushmoqda va kundalik nosozliklar kuzatilmadi. Bildirishnomalar SetServiceStatus funksiyasidan qo'shimcha yordam uchundir. Oxirgi haftadan tashqari barcha haftalar SERVICE_START_PENDING parametriga, qolganlari esa SERVICE_RUNNING parametriga bog‘liq. Qo'ng'iroqlarning davriyligi xizmat ko'rsatuvchi provayder tomonidan belgilanadi, bu aqldan kelib chiqadigan ko'rinadi: ikki sud qo'ng'irog'i orasidagi vaqt oralig'ining vaqtinchalikligi SetServiceStatus SCMga o'tkazilgan dwWaitHint parametrining qiymatini bekor qilish uchun javobgar emas. birinchi ikkita qo'ng'iroq. Agar yo'q bo'lsa, SCM soatda chergov eslatmasini o'chirmasdan, xizmatni primus primus bilan boshlaydi. Bu jim yoki boshqa nosozliklar yuzaga kelgandan so'ng, xizmat ko'rsatish holatining boshida yo'qolishiga imkon beradi (xizmat interaktiv eshitilmaydi va uni avariyasiz ishga tushirish mumkin deb hisoblang). Zvichayna amaliyoti shundan iboratki, ishga tushirishning birinchi loyihasi tugagandan so'ng, SCM yangilanishi kerak.

Ishlovchi funksiyasi

Ko'proq taxmin qilganimdek, Handler - bu qayta qo'ng'iroq qilish funktsiyasining prototipi, xizmatdan oldin so'rov uchun so'rov, qo'shimcha uchun o'zining teri xizmati. Xizmat so'rash kerak bo'lganda ishlov beruvchi chaqiriladi (boshlash, to'xtatib turish, yangilash, boshlash, ogohlantirish Men in-line bo'laman) deb vykonuê nebhídní vídpovídno oldin zapí díí̈, keyin novídomlyaê yangi lager SCM.

Bitta so'rov ayniqsa muhimdir - robot tizimi (O'chirish) tugagandan so'ng qabul qilinishi kerak bo'lgan so'rov. Tsey vikontni deinitializatsiya qilish zarurati va u tugallanishi haqida signal so'raydi. Microsoft ta'kidlashicha, teri xizmatini bajarish uchun 20 soniya kerak bo'ladi, shundan so'ng u primus kabi eshitila boshlaydi. Namoyishchilar Umovning aqli g‘alaba qozonishini va primus pechining xizmati shu soat oxirigacha davom etishini ko‘rsatdi.

Xizmat xavfsizligi tizimi

Xizmatlar ustidan Be-yaka diya qo'shimchadan qo'shimcha huquqlarni talab qiladi. Barcha dasturlar SCMni blokirovka qilish, xizmatlarni qayta tiklash va ma'lumotlar bazasi blokirovkasini qayta tekshirish huquqiga ega. Faqatgina dasturlar tizimda yangi xizmatni ro'yxatdan o'tkazishi yoki xizmat ma'lumotlar bazasini bloklashi mumkin, chunki ular ma'muriy huquqlarga ega bo'lishi mumkin.

Teri xizmati qanday qilib boshqa operatsiyani bajarish huquqiga ega ekanligini tavsiflovchi xavfsizlik tavsifiga ega bo'lishi mumkin. Bloklash uchun:

  • Barcha huquqlar o'zgarishi mumkin SERVICE_QUERY_CONFIG, SERVICE_QUERY_STATUS, SERVICE_ENUMERATE_DEPENDENTS, SERVICE_INTERROGATE va SERVICE_USER_DEFINED_CONTROL;
  • Koristuvachí, Power Users guruhiga va LocalSystem oblykovy yozuviga kirish uchun qo'shimcha ravishda SERVICE_START, SERVICE_PAUSE_CONTINUE va SERVICE_STOP huquqlariga ruxsat berish;
  • Koristuvachí scho, scho Ma'murlar va tizim operatorlari guruhlariga kiring, to'g'ri SERVICE_ALL_ACCESS-ni tanlang.

Xizmatlar va interaktivlik

Reklama maqsadlarida interaktiv xizmatlar LocalSystem xavfsizlik konteksti bilan cheklanishi mumkin. Bu Windows NT da monitor ekranida, masalan, "Ish stoli" kabi ob'ektni ko'rsatishning o'ziga xos xususiyatlari bilan bog'liq. oblikovogo rekord, Mahalliy tizimni ko'rish. O'sha scho ichida perevazhnіy bіlshostі vipadkіv tse obmezhennya Je uchun Nezvazhayuchi nesuttєvim lekin kontekstі BEZPEKA vіdmіnnomu achigan ishlatiladigan tsomu vikonuvalasya da Screen monіtora i haqida іnodі іsnuє neobhіdnіst stvoriti xizmati yak vivodila b іnformatsіyu LocalSystem, napriklad, vіddalenomu kompyuterda ishga tushirilishi dasturlari server prog topgan.

Kod parchasi. Men bunday imkoniyatni tasvirlayman.

Ushbu fragment uchun siz so'rov so'rashingiz, dasturning bir qismini RPC-ga qo'shishingiz kerak, xizmat monitor ekranida matnli bildirishnomalarni ko'rsatadi.

Butt xizmati (asosiy fragmentlar)

Keling, Windows NT xizmatini amalga oshiruvchi Z ++ tomonidan hisobotning asosiy qismlarini ko'rib chiqaylik. Aniqlik uchun kodning qismlari o'tkazib yuborilgan.

asosiy funksiyasi

Ko'rsatkichlarda asosiy funktsiyaning kodi.

ServiceMain funktsiyasi

Xususan, ServiceMain-ga joylashtirilgan kod ko'pincha keyingi operatsiyaning kechikishini kechiktirish mumkin bo'lmagan kodlardir, ayniqsa operatsion tizimda boy vazifa tufayli xatolik noto'g'ri bo'lsa. Agar operatsiya SetServiceStatus qo'ng'iroqlar oralig'i parametri soat oralig'iga ega bo'lganidan ko'ra ko'proq vaqt talab qiladigan bo'lsa, xizmat darhol yaqinlashib kelayotgan bildirishnomani yubora olmaydi, shundan so'ng SCM robotni chaqirishi kerak. Potentsial operatsiyalarning butsalari robotning funktsiyalarini katta taym-autlarda chaqirish yoki etarli darajada eskirishdan katta miqdordagi ma'lumotni bir martalik o'qish uchun ishlatilishi mumkin. Bundan tashqari, bunday bola soliq xizmati davrida mutlaqo turg'un emas, soliq uskunasidagi dasturning shardlari chakana sotuvchi uchun zarur bo'lgan katta pauzalar bilan birga keladi.

Muammoni hal qilish uchun SCM bilan o'zaro bog'liqlikdan barcha operatsiyalar ishga tushirish bosqichida talab qilinadigan suvda yotmaydigan sog'lom qozonda amalga oshirilishi kerak.

O'qishlar xizmatni to'g'ri boshlash uchun algoritmga ega, bu qo'shimcha oqimdir.

Ishlovchi funksiyasi

Ko'rsatkichlarda Handler funktsiyasining kodi va qo'shimcha oqimlar mavjud. "To'xtatish" va "O'chirish" so'rovlari uchun to'g'ri xizmat qo'ng'irog'i algoritmi xizmat boshlanishida ishga tushirilganiga o'xshaydi, farqi bilan SERVICE_START_PENDING parametri SetserviceStatus'dagi SERVICE_STOP_PENDING parametri bilan almashtiriladi, va SERVICE_RUNNING parametri SERVICE_RUNNING parametri bilan almashtiriladi.

Ideal holda, "To'xtatib turish" va "Davom etish" ichish uchun u ham qatorni yutib olish uchun keyingi qatordir. Dopitlivy chitach osongina yoga amalga oshirish mumkin, bu dumba ustida spiral.

Visnovok

Oxirida shuni ta'kidlashni istardimki, Windows NT 2000 ga o'tish bilan xizmatlarning rivojlanishi o'zgarishlarni tan olmadi. Xizmatlar, avvalgidek, muhim qismdan mahrum dasturiy ta'minot Windows platformasida chakana sotuvchilarga keng faoliyat sohasini taqdim etadi.


// MessageBox Win32 API int ServerMessageBox(RPC_BINDING_HANDLE h, LPSTR lpszText, LPSTR lpszTitle, UINT fuStyle) ga o‘xshash funksiya (DWORD dwThreadId; HWINSTA hwinstaSave; HDesk".); hwinstaSave; HDesk". = "DesktopadSave" Get; hwinstax; HDesk; (); hdeskSave = GetThreadDesktop(dwThreadId); // "Oyna stantsiyasi" va "Ish stoli" // ob'ektlardan oldingi biri bo'lgan // xavfsizlik kontekstini o'zgartiring. RpcImpersonateClient(h); hwinstaUser), hdeskUser = OpenDesktop (“Default”, 0, FALSE, MAXIMUM_ALLOWED); RpcRevertToSelf(); urn 0; ) SetThreadDesktop(hdeskUser); // Standart matn maydonini ko‘rsatish. natija = MessageBox(NULL, lpszText, lpszTitle, fuStyle); 'Ha // "); Window station" va "Desktop". SetThreadDesktop(hdeskSave); SetProcessWindowStation(hwinstaSave); CloseDesktop(hdeskUser); CloseWindowStation(hwinstaUser); natijani qaytarish; ) void main() ( SERVICE_TABLE_ENTRY steTable = (SERVICE NAME), (SERVICE), , NULL) ); // SCM dan ulanishni o'rnating. So'rovlarni qabul qilish va jo'natish uchun // ushbu funktsiyalarning o'rtasidan foydalaning. StartServiceCtrlDispatcher(steTable); ) Winapi serveremain (dordetsc * psicgv versiyasi) (// darhol so'rovlovchini ro'yxatdan o'tkazing); SSTATUS.DWCONCOPOPTHACTION = SSTATUS.DWCONCOPOPTIONA; SSTATUS.DWSERVESPECUSPECUSPEKUSPEKUSPUS; dwServiceSpecus .dwServiceType = SERVICE_WIN32_OWN_PROCESS sStatus.dwWaitHint = 0 sStatus.dwWin32ExitCode = NOERROR // іnіtsіalіzatsії xizmat viklikaєtsya funktsіya InitService () sinhronіzatsії oqimi stvoryuєtsya Podiya .// Pіslya tsogo zapuskaєtsya robochem potіk, d uchun protsesі іnіtsіalіzatsії yilda ;, Shcho xizmat .// uchun la // Nimani sinxronlash // sub.xizmatni yaratadi start.InitService();SetEvent(hSendStartPending);if(WaitForSingleObject(hSendStartThread, 2000) != WAIT _OBJECT_0) (TerminateThread(hSendStartThread, 0); ) CloseHandle(hSendStartPending); CloseHandle(hSendStartThread); hWork = CreateEvent(NULL, TRUE, FALSE, NULL); hServiceThread = CreateThread(NULL, 0, ServiceFunc, 0, 0, &dwThreadId); sStatus.dwCurrentState = SERVICE_RUNNING; SetServiceStatus(hSS, &sStatus); ) // Bir soniya uchun SCM bildirishnomasini yuboradigan ip uchun funksiya // ishga tushirish jarayoni davom etayotgani haqida. Robot funksiyasi // hSendStartPending podasi tiklanganda tugaydi. DWORD WINAPI SendStartPending(LPVOID) ( sStatus.dwCheckPoint = 0; sStatus.dwCurrentState = SERVICE_START_PENDING; sStatus.dwWaitHint = 2000; // 1 soniya "kechiktirildi". Hatto 1 soniya davomida ham // ishga tushirilmadi. ), kuchli dwCheckPoint++;if(WaitForSingleObject(hSendStartPending, 1000)!=WAIT_TIMEOUT) tanaffus; ) sStatus.dwCheckPoint = 0; qaytish 0; ) // Xizmatni ishga tushiruvchi funksiya. Ma'lumotlarni o'qish // eslash va boshqalar. void InitService() (...) // Xizmat kodini tekshirish funksiyasi. DWORD WINAPI ServiceFunc(LPVOID) ( while (to'g'ri) (agar (!bPause) ( // Bu kod o'tkazilishi kerak bo'lgan joy, tsiklik operatsiyalar sifatida // vikonu eshitiladi... ) agar (WaitForSingleObject(hWork,), 1000)!=WAIT_TIMEOUT ) Break; ) qaytish 0; TRUE, FALSE, NULL), hSendStopThread = CreateThread(NULL, 0, SendStopPending, NULL, 0, & dwThreadId); ) SetEvent(hSendStopPending), CloseHandle(hServiceThread), CloseHandle(hWork); ServiceStatus(hSS, &sStatus); sindirish; case SERVICE_CONTROL_PAUSE: bPause = rost; sStatus.dwCurrentState = SERVICE_PAUSED; SetServiceStatus(hSS, &sStatus); sindirish; case SERVICE_CONTROL_CONTINUE: bPause=true; sStatus.dwCurrentState = SERVICE_RUNNING; SetServiceStatus(hSS, &sStatus); sindirish; case SERVICE_CONTROL_INTERROGATE: SetServiceStatus(hSS, &sStatus); sindirish; standart: SetServiceStatus(hSS, &sStatus); sindirish; ) ) // Xizmat qismi uchun SendStartPending // ga o‘xshash mavzu funksiyasi. DWORD WINAPI SendStopPending(LPVOID) ( sStatus.dwCheckPoint = 0; sStatus.dwCurrentState = SERVICE_STOP_PENDING; =WAIT_TIMEOUT) tanaffus;) sStatus.dwCheckPoint = 0; 0 qaytaring;)

Dasturni Windows xizmatida qanday ishga tushirish kerak



Mijoz dasturini xizmat sifatida ishga tushira olasizmi? Maqolaning birida oddiy operatsion tizimlar tomonidan Windows xizmatini yaratish usullari. Biroq, teri konsoli plaginini xizmat sifatida ishga tushirish mumkin emas, lekin grafik interfeysga ega dasturlar, qoida tariqasida, bunday ishlamaydi. Ammo xizmat sifatida qo'shimchani ishga tushirish va asl nomi bilan dasturda bizga yordam berish mumkin. So'rmaydigan xizmat menejeri.

NSSM - bu barcha operatsiyalarni qo'llab-quvvatlaydigan ochiq kodli haqiqiy dasturiy ta'minot xavfsizligi Microsoft tizimlari, Windows 2000 dan Windows 8 ga qadar. NSSM o'rnatishni talab qilmaydi, shunchaki yuklab oling va paketdan chiqaring. Tarqatish 32 va 64 bitli operatsion tizimlar uchun versiyalarni o'z ichiga oladi. Dasturni nssm.cc saytidan olishingiz mumkin, hozircha qolgan barqaror versiya 2.21.1, shuning uchun men g'alaba qozonaman.
NSSM kuchini namoyish qilish uchun keling, Windows Notepad-ni Windows 8.1 xizmati sifatida ishga tushirishga harakat qilaylik.

Xizmatni yaratish

Ular uchun xizmat yaratish uchun bloknot biz buyruq konsolini ishga tushiramiz, NSSM (64 bitli Windows uchun) ochilgan papkaga o'tamiz va buyruqni kiritamiz

Kod:

nssm o'rnatish bloknot

NSSM grafik o'rnatuvchisining oynasi sifatida. Xizmatni yaratish uchun "Yo'l" maydoniga faylga yo'lni kiriting va "Xizmatni o'rnatish" tugmasini bosing. Bundan tashqari, "Options" maydoniga siz xizmatni ishga tushirish uchun zarur bo'lgan kalitlarni kiritishingiz mumkin.

Shuningdek, yangi xizmatni yaratish bosqichida siz qo'shimcha parametrlarni belgilashingiz mumkin.

O'chirish yorlig'ida qo'ng'iroq qilish va vaqt tugash usullari qo'llaniladi, chunki ular ishning normal tugashi yoki dasturning favqulodda jiringlashi paytida tiklanadi. Agar NSSM ovozli buyruqni o'chirib qo'ysa (masalan, robot dasturi tugallanganda), xodimlar darajasi bo'yicha qo'shimchalarni boshqarish ovozi yoqiladi. Agar dastur ishlamasa, u holda NSSM dasturning barcha jarayonlari va kichik jarayonlarini yakunlashi mumkin.

Usogo ê chotiri robotli dasturni yakunlash bosqichlari va vikoristlarning badbo'y hididan tahorat olish uchun quyidagi tartibda:

Birinchi bosqichda NSSM Ctrl+C buyrug'ini yaratish va yuborishga harakat qilmoqda. Bu konsol qo'shimchalari yoki skriptlar uchun yaxshi, lekin grafik qo'shimchalar uchun emas;
Keyin NSSM dastur tomonidan yaratilgan barcha oynalarni taniydi va dasturdan chiqishni boshlaydigan WM_CLOSE ni bekor qiladi;
NSSM ning uchinchi bosqichi dastur tomonidan yaratilgan barcha oqimlarni sanab o'tadi va uni WM_QUIT bekor qiladi, go'yo u olib tashlanadigandek, dastur ipni chaqirishi mumkin;
Qolgan NSSM so'rovi sifatida siz dastur ishini primus bilan yakunlagan holda TerminateProcess() usulini chaqirishingiz mumkin.

Ba'zi yoki barcha usullarni yoqish mumkin, ammo turli dasturlar uchun robot dasturlarini to'g'ri bajarish uchun turli usullardan foydalanish tavsiya etiladi.

Tahorat uchun NSSM xizmatini qayta ishga tushirishga majbur bo'ladi. Chiqish harakatlari yorlig'ida siz robot dasturi g'ayritabiiy tugallangan taqdirda avtomatik harakatni o'zgartirishingiz, shuningdek dasturni avtomatik ravishda qayta ishga tushirishdan oldin kechikishni belgilashingiz mumkin.

"Kirish/chiqish (I/U)" yorlig'ida siz fayl ko'rsatmalaridan dasturning kirish/chiqishiga qayta yo'naltirishni o'rnatishingiz mumkin.

"Atrof-muhit" yorlig'ida siz xizmat uchun yangi o'zgarishlarni o'rnatishingiz yoki shunga mos ravishda uni qayta ko'rib chiqishingiz mumkin.

Bundan tashqari, siz grafik qobiqdan foydalana olmaysiz va darhol quyidagi buyruq bilan konsolda xizmat yaratasiz:

Kod:

nssm "C:\Windows\system32\notepad.exe" bloknotini o'rnating.

Xizmatni boshqarish

NSSM yordami uchun xizmatni yaratgandan so'ng, keling, Xizmatlar qo'shimchasiga o'tamiz va biz bloknot xizmatini bilib olamiz. Aslini olganda, bu boshqa xizmatlarga xalaqit bermayotganga o'xshaydi, biz ham ishga tushirish, boshlash yoki ishga tushirish rejimini o'zgartirishimiz mumkin. Biroq, nssm.exe yuklab olinadigan fayl sifatida ko'rsatilganligini unutmang.

Va agar biz Vazifa menejeriga o'tadigan bo'lsak, unda biz quyidagi rasmni ko'ramiz: asosiy (batkivskiy) jarayon NSSM ishlayotganligi sababli, bloknot xizmati ikkinchi bola jarayoni sifatida ishlamoqda va ikkinchi bolada Notepad qo'shimchasi ishlamoqda. jarayon.

Dasturiy ta'minot tizimiga bir qarashda. Buning uchun biz Windows 7 kontekstidagi xizmatlar muhokamasiga murojaat qilishimiz tabiiy. Birinchi marta Windows 7 da mavjud xizmatlarni optimallashtirish usullari haqida gaplashamiz. Ushbu maqola yangi versiyalarga tayinlangan. Windows xususiyatlari 7 – Trigger Start Services. Avvalo, API ga tushamiz, uni xizmatlarning katta rasmi deb ataymiz.

Xizmat nima?

Xizmat - ce ichki mexanizm, operatsiya xonasida vbudovaniya Windows tizimi. Yadroning oqim kontekstida mustaqil ravishda ishlaydigan maxsus dasturlar bilan xizmatlardan foydalanishingiz mumkin. Xizmatlar maxsus dasturlar ko'rinishida faollashtiriladi, ular koristuvacha mavjudligidan qat'i nazar, tizim yoqilgan (qo'lga olingan) paytdan va u o'chirilgunga qadar ishlash uchun sozlanishi mumkin. Tobto xizmatlari pratsyuvati mumkin, navit akscho koristuvach tizimiga vykonav vkhíd emas.

Orqa fonda ishlaydigan va uyg'otish jarayoniga xalaqit bermaydigan vazifalarni bajarish orqali xizmatlarni yaxshiroq ishga tushirish siz uchun muhim. Windows xizmatlari masofaviy protsedura qo'ng'irog'i (RPC), Printer Spooler'dan boshlab va Tarmoq joylashuvini bilishgacha bo'lgan barcha turdagi fon faoliyati uchun javobgardir.

Windows-ning boyligi yordamida xizmatlar soni ko'paydi va bir vaqtning o'zida xizmatlar soni ko'paydi. Rostini aytsam, Windows fon xizmatlari juda og'riqli - operatsion tizim Buyurtma hech qanday xizmatlarsiz yetkazib beriladi. Bundan tashqari, mustaqil dasturiy ta'minot ishlab chiqaruvchilari (ISV) va bu dasturlar yanada ko'proq xizmatlarni taqdim etadi. Masalan, dasturiy ta'minotni yangilash xizmatlari. Shu bilan birga, xizmat xodimlari ishga qabul qilish jarayonida o'ta muhim va zarur bo'lib, o'sha soatda, agar sing koristuvach tizimga kirmasa, boshqa ayblar qo'yiladi va boshqalari ishga tushirishni talab qilmaydi. ular deyiladi. Nima bo'lishidan qat'iy nazar, agar siz hozirda ishlayotgan xizmatlar ro'yxatiga qarasangiz, anonim ob'ektlarni qidiring, chunki 24x7 sxemasida ishlashga hojat yo'q.

Xizmatlarning nimasi yomon, kuniga 7 kun doba uchun 24 yil nima ishlaydi?

24x7 rejimida ishlaydigan xizmatlar bilan bog'liq bir nechta muammolar mavjud. Avvalo, mashq qilish mumkin (fon rejimini bosing), nega uni yangi usulda iste'mol qilmaslik kerak? Har qanday ishga tushirish jarayoni (xizmatlarni o'z ichiga olgan holda) qimmat xotira va protsessor resurslaridan foydalansa, u boshqa xizmat dasturlari uchun ishlatilishi mumkin. Bir vaqtning o'zida ishlayotgan barcha xizmatlarni tiklaganingizda, yoqimsiz hid xotirada, tutqichlarda, oqimlarda va protsessordan foydalanishda to'planadi. Bu barcha "vitrat" ​​resurslari kompyuterning umumiy unumdorligini pasaytiradi va kompyuter zaif va kuchli bo'lgan zararni engish uchun. Bundan oldin, ko'plab xizmatlarning parchalari avtomatik ishga tushirish uchun o'rnatildi (tizimning boshlanishida bir soat davomida ta'mirlash), ular zawantazhennya kompyuterning bir soati uchun hidlanadi.

Boshqacha qilib aytganda, resurslarni iste'mol qilish elektr energiyasini tejash bilan bevosita ko'rsatiladi. Chim ko'proq bema'nilik protsessorda kompyuter ko'proq quvvat tejaydi. Bu noutbuklar uchun muhim bo'lishi mumkin va bir necha yil davomida batareyalar bilan bir soatlik ish o'tishi mumkin.

Uchinchidan, samarasiz dasturiy ta'minotning keyingi ishlashi xotiraga olib kelishi va tizimning umumiy beqarorligi. Robot dasturlari, nareshti, kompyuterda halokatdan oldin Tse vede.

Nareshti, go'yo xizmat 24x7 sxema bo'yicha ishlaydi va go'yo uyda xizmat yaxshi bo'lganidek (bu mashhur teri dasturlarida paydo bo'lishi mumkin - masalan, PDF o'quvchi), bu hujum uchun katta sirt hosil qiladi. Buzg'unchi dastur juda mashhur bo'lganlar haqida ma'lumot olishi, 24x7 rejimida ishlaydigan xizmatni o'rnatishi va kompyuterga kirishni rad etish uchun buzg'unchiliklarni sinab ko'rishi mumkin.

Vrakhovuchi barcha yuqorida, siz juda ko'p chakana sotuvchilari doimiy ish uchun o'z xizmat qilish nega hayron mumkin, hidi yana bir imkoniyat bo'lishi mumkin go'yo. Windows 7 ga qadar xizmatlarni ishga tushirish uchun bir nechta variant mavjud edi:

  • Nogironlar (Vimkneno) xizmatni qayta yoqing va eskirgan xizmatlarni ishga tushirish va ishga tushirishni oldini oling - bu koristuvach xizmatni o'chirish panelidan yoki buyruq satridan qo'lda yoqishda aybdor ekanligini anglatadi.
  • Qo'llanma xizmatni iste'mol qilish uchun (boshqa xizmatlarning bog'liqliklariga ulanish uchun) yoki quyida ko'rsatilganidek, qo'shimcha API dasturlari bilan xizmatga qo'ng'iroq qilganda ishga tushiring
  • Avtomatik tizimga kirishda xizmatni ishga tushiring
  • Avtomatik kechikish- Windows Vista-da paydo bo'lgan ishga tushirishning yangi turi, uning yordami uchun xizmat o'sha dastlabki operatsiyalarni ishga tushirish tugagandan so'ng ishga tushiriladi, bu tizimni ishga tushirishni tezlashtiradi.

Afsuski, ko'pgina ISV-lar (shu jumladan Microsoft-ning o'zi) o'z xizmatlarini Avtomatik (Avtomatlashtirilgan) yoki Avtomatik kechikishli ishga tushirishga (Avtomatik kechikish) sozlashda davom etmoqda, bu barcha eng oddiy echimlar uchun namunadir. Xizmat oddiygina 24x7 ishlaydi va har doim mavjud, agar kerak bo'lsa, depozitlarni qayta tekshirish yoki xizmat ishlayotgan bo'lsa.

Muhim xizmatlarning anonim ilovalarini o'rnatish mumkin, bu sezilarli darajada kamroq resurslarga olib kelishi va 24x7 rejimida ishlamasdan xavfsizroq bo'lishi mumkin. Masalan, yangilanish xizmati haqida o'ylab ko'ring, go'yo u dastur uchun yangi yangilanishlar mavjudligini tekshirayotgandek. Agar kompyuter merezhí ga ulanmasa, u IP-manzilga ega bo'lmasa, unda nima uchun u ishlashi kerak? Agar siz hech narsa qila olmasangiz, unda siz endi ishchi dasturdan mahrum qilishingiz kerak, shuning uchun hech narsa qilmaysizmi? Siyosatchilarni boshqarish xizmati, o'zgarish vaqtida qanday g'alaba qozonish haqida o'ylab ko'ring guruh siyosati yoki kompyuter domenga ulangan bo'lsa yoki kompyuter mening uyimga ulangan bo'lsa, xizmat hali ham amalda bo'ladi.

Triggerda ishga tushirish orqali xizmatlarning paydo bo'lishi

Virishennya vyschevkazanyh muammolar polygaê da videnny xizmati zí Stan barqaror ish» Rejalashtirilgan ishlar yoki trigger tomonidan ishga tushiriladigan xizmatlar kabi fon faoliyatining boshqa turlari. Ushbu maqola Windows 7 Trigger Start Services bilan bog'liq. Windows 7 rejalashtirilgan vazifalar haqida siz ko'p narsalarni aytishingiz mumkin, ular kelgusi maqolalarda buziladi.

Printerlar