डाउनलोड

अनज़िप करके चलाएँ, या इंस्टॉल करें

संस्करण 0.5.0। आर्काइव को इंस्टॉलर नहीं चाहिए और वे रजिस्ट्री में कुछ नहीं लिखते, और देखने के लिए व्यवस्थापक अधिकार नहीं चाहिए। इसके बजाय एक हस्ताक्षरित इंस्टॉलर दोनों प्रोग्राम पूरी मशीन पर लगा देता है। GPL-3.0 के तहत मुफ़्त और ओपन सोर्स।

रिलीज़ में क्या है

फ़ाइलयह क्या है
BetterWindowsServices-win-x64.zipविंडो: BetterWindowsServices.exe, एक अपने-आप में पूर्ण निष्पादन योग्य फ़ाइल जिसके अंदर उसका अपना .NET रनटाइम है
bws-cli-win-x64.zipकमांड लाइन: bws.exe, एक अपने-आप में पूर्ण निष्पादन योग्य फ़ाइल, स्क्रिप्ट, शेड्यूल किए गए टास्क और CI के लिए
BetterWindowsServices-win-x64.msiइंस्टॉलर: दोनों प्रोग्राम Program Files में, मशीन के हर खाते के लिए, विंडो Start मेनू में और bws मशीन के PATH में

एक लें या दोनों। ये एक ही इंजन के दो क्लाइंट हैं और किसी को दूसरे की ज़रूरत नहीं। सर्वर पर कमांड लाइन दोनों में छोटी है और वह सब करती है जो विंडो करती है।

इंस्टॉलर में ठीक वही है जो दोनों आर्काइव में है। यह msiexec /i BetterWindowsServices-win-x64.msi /qn से चुपचाप इंस्टॉल होता है, नया संस्करण पुराने के ऊपर इंस्टॉल हो जाता है, और यह चल रही किसी चीज़ को बंद नहीं करता, इसलिए अपग्रेड से पहले विंडो और चल रहे किसी भी bws को बंद कर दें, क्योंकि चलती छोड़ी गई प्रति त्रुटि के साथ रुक सकती है। Settings, Apps से अनइंस्टॉल करने पर प्रोग्राम, Start मेनू की प्रविष्टि और PATH की प्रविष्टि हट जाती हैं, और आपकी अपनी फ़ाइलें वैसी ही रहती हैं।

निष्पादन योग्य फ़ाइलों पर Authenticode हस्ताक्षर है, इसलिए Windows अज्ञात प्रकाशक की चेतावनी देने के बजाय प्रकाशक का नाम बताता है।

आवश्यकताएँ

  • Windows 10 संस्करण 1809 या बाद का, या Windows Server 2019 या बाद का। सिर्फ़ 64-बिट। 32-बिट प्रक्रिया पुनर्निर्देशित पथ और रजिस्ट्री कुंजियाँ पढ़ती है, जिनसे चुपचाप गलत नतीजे निकलते।
  • .NET इंस्टॉल करने की ज़रूरत नहीं। दोनों निष्पादन योग्य फ़ाइलें अपना .NET रनटाइम साथ रखती हैं।
  • कुछ भी बदलने के लिए व्यवस्थापक अधिकार चाहिए। पढ़ना, खोजना, स्नैपशॉट और diff इनके बिना भी चलते हैं, कम प्रविष्टियाँ दिखती हैं और टूल सबसे ऊपर यह बता देता है, यह दिखावा करने के बजाय कि सूची पूरी मशीन की है।

विंडो अपनी एक फ़ाइल रखती है, यानी वह लेआउट जिसमें आपने सूची छोड़ी थी, %APPDATA%\BetterWindowsServices के अंतर्गत। स्नैपशॉट वहाँ जाता है जहाँ आप bws snapshot create को रखने को कहें, और न कहें तो वर्तमान डायरेक्टरी में।

प्रोग्राम अंग्रेज़ी में बोलता है। विंडो एक भाषा फ़ाइल पढ़ती है, languages\gui.<code>.json, जो उसके बगल में रखी होती है और Windows की भाषा से चुनी जाती है, बिना किसी सेटिंग के। इसलिए अनुवाद एक ऐसा योगदान है जिसे बिना दोबारा बिल्ड किए जोड़ा जा सकता है। CONTRIBUTING.md बताता है कैसे।

एंटीवायरस और EDR

यह टूल वही करता है जो एक व्यवस्थापक सेवाओं के साथ करता है, और उसमें से कुछ वही है जिस पर सुरक्षा सॉफ़्टवेयर नज़र रखता है।

यह सेवाएँ रोकता और शुरू करता है, किसी सेवा के पीछे की प्रक्रिया खत्म कर सकता है, और हर सेवा का security descriptor और ज़रूरी विशेषाधिकार पढ़ता है। जो EDR svchost.exe को खत्म करने वाली प्रक्रिया को चिह्नित करता है वह अपना काम कर रहा है, और यहाँ ज़बरदस्ती रोकना ठीक वैसा ही दिख सकता है।

यह जो नहीं करता, ताकि आप दावे को जाँच सकें: यह किसी प्रक्रिया में कुछ इंजेक्ट नहीं करता, कुछ पैक या ऑब्फ़स्केट नहीं करता, कोई सेवा या ड्राइवर इंस्टॉल नहीं करता और कुछ चलता नहीं छोड़ता, और कोई नेटवर्क कनेक्शन नहीं खोलता। यह GPL-3.0 के तहत ओपन सोर्स है और आप दोनों निष्पादन योग्य फ़ाइलें खुद बना सकते हैं।

यदि आपकी नीति को अपवाद चाहिए, तो फ़ोल्डर के बजाय दोनों निष्पादन योग्य फ़ाइलों को फ़ाइल के रूप में अपवाद बनाएँ। जिस एक चीज़ को टूल जितनी ही सावधानी से संभालना चाहिए वह स्नैपशॉट फ़ाइल है: वह पूरी मशीन का वर्णन करती है।

सोर्स से बिल्ड करना

.NET 10 SDK, Windows पर।

git clone https://github.com/donislawdev/BetterWindowsServices
cd BetterWindowsServices
dotnet build BetterWindowsServices.slnx -c Release
dotnet test BetterWindowsServices.slnx -c Release

कुछ टेस्ट उस मशीन का असली सेवा नियंत्रण प्रबंधक पढ़ते हैं जिस पर वे चलते हैं और इस टूल की बात की तुलना sc.exe की बात से करते हैं। वे केवल-पढ़ने वाले हैं। रिलीज़ में जो एकल-फ़ाइल निष्पादन योग्य फ़ाइलें हैं वे ये दो पब्लिश हैं, हर एक एक फ़ाइल जिसके अंदर रनटाइम है:

dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

ये bws.exe और BetterWindowsServices.exe के रूप में हर प्रोजेक्ट के bin/Release/.../win-x64/publish/ के अंतर्गत बनती हैं। उनके बगल की .pdb फ़ाइलें डीबगिंग सिंबल हैं, और चलने के लिए उनकी किसी को ज़रूरत नहीं।

इसे चलाने की लागत

804 सेवाओं वाली एक मशीन पर मापा गया। आपके आँकड़े अलग होंगे, क्योंकि सेवाओं की संख्या, डिस्क और प्रोसेसर तीनों इन्हें बदलते हैं।

सेकंड का लगभग पाँचवाँ हिस्सा

bws list को पूरी मशीन पढ़ने में।

लगभग 19 MB

उसी मशीन पर कमांड लाइन के लिए।