स्टार्टअप प्रकार "स्वचालित" के साथ सभी "बंद" सेवाओं को प्राप्त करने के लिए स्क्रिप्ट - विंडोज


0

इसलिए यदि किसी सेवा में "स्वचालित" या "मैनुअल" का स्टार्टअप प्रकार है, लेकिन वर्तमान में मुझे रोका गया है तो मैं उन मुद्दों को देखने के लिए एक कमांड चलाना चाहूंगा।

पावरशेल और सीएमडी में मैं एक या दूसरे को देख पा रहा हूं, लेकिन कोई आसान तरीका नहीं है जिससे मैं डेटा को फ़िल्टर कर पाऊं।

मैं मूल रूप से मुसीबत शूटिंग सेवाओं के लिए स्क्रिप्ट बनाने के लिए देख रहा हूं। यह निर्धारित करने में सक्षम होने जा रहा है कि क्या कोई सेवा है जो शुरू की जानी चाहिए (उनके स्टार्टअप प्रकार के आधार पर), लेकिन चल नहीं रहे हैं (रोका या निलंबित)।

मैं जिस मुद्दे पर चल रहा हूं वह यह है कि पावरशेल या सीएमडी गहराई से फ़िल्टर या परिणामों की पाइपिंग की अनुमति नहीं देता है। किसी को भी यह पता लगाने में मेरी मदद करने का एक तरीका है?

मैं इस मुद्दे को हल करने के बारे में कैसे जा सकता हूं?


एक वैकल्पिक दृष्टिकोण के रूप में, आप scसेवाओं के बारे में जानकारी प्राप्त करने और पाठ फ़िल्टरिंग का उपयोग करके उन्हें नियंत्रित करने के लिए उपयोग कर सकते हैं ।
AFH

जवाबों:


1
(get-service|?{ $_.Status -eq "Stopped" -and $_.StartType -eq "Automatic"})|
select DisplayName, StartType, Status

कोष्ठक के पीछे क्या विचार है? आपकी स्क्रिप्ट केवल यह जांचती है कि क्या रोका गया है जबकि प्रारंभिक प्रश्न भी निलंबित स्थिति को पकड़ना चाहता था। अगर हम मानते हैं कि अन्य राज्यों के लिए फ़िल्टरिंग हो सकता है! = रनिंग बेहतर हो सकता है।
सेठ

मुझे 2 या 3 के स्तर तक पाइप करते समय पाइपिंग भ्रम हो जाता है, इसलिए मुझे यह संभव हो जाता है कि जहां कहीं भी संभव हो, इसे छोटा करना एक आदत है। लेकिन इस मामले में यह कोई उद्देश्य नहीं है। '!' रनिंग 'पार्ट पर,' रनिंग 'कैसे?
एसएएम

1
साथ != Runningमैं मतलब -ne 'Running'सिर्फ उन अतिरिक्त वर्ण को बचाने के लिए चाहते थे! कोष्ठक के लिए अपने तर्क को समझाने के लिए धन्यवाद। :)
सेठ

1

इस प्रश्न को देखकर आप PowerShell के पुराने संस्करणों के लिए इसे ले सकते हैं:

Get-WmiObject -Class Win32_Service | Select-Object Name,State,StartMode | Where-Object {$_.State -ne "Running" -and $_.StartMode -eq "Auto"}

नए संस्करणों के साथ (कम से कम 5 शायद 3/4) आप भी इस्तेमाल कर सकते हैं (जो कि JC2k8 द्वारा सुझाया गया था):

Get-Service | Select-Object -Property Name,Status,StartType | Where-Object {$_.Status -eq "Stopped" -and $_.StartType -eq "Automatic"}

PowerShell के पुराने संस्करणों में Get-Servicecmdlet एक सदस्य की पेशकश नहीं करता है जिसके पास है StartType

PowerShell बहुत सारे फ़िल्टरिंग और पाइपिंग का समर्थन करता है। :)


उसी कड़ी के अनुसार आपको शायद निम्नलिखित कथन का उपयोग करना चाहिए (यदि आप Get-Service | Select-Object -Property Name,Status,StartType | where-object {$_.Status -eq "Stopped" -and $_.StartType -eq "Automatic"}
पॉवर्सशेल

आप सही हैं लेकिन उपरोक्त विधि पॉवरशेल के पुराने संस्करणों पर भी काम करती है। PowerShell 5.0 Windows 10 के साथ डिफ़ॉल्ट होगा। मुझे यकीन नहीं है कि Get-ServicePowerShell 3.0 / 4.0 पर कम से कम PowerShell 2.0 (Windows 7) में सदस्य के रूप में व्यवहार Get-Serviceनहीं किया StartTypeगया है।
सेठ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.