Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

आप Windows सेवाओं को न केवल services.msc स्नैप-इन या sc.exe कमांड लाइन टूल से, बल्कि PowerShell का उपयोग करके भी प्रबंधित कर सकते हैं। इस लेख में हम PowerShell के साथ Windows सेवाओं को प्रबंधित करने के विभिन्न परिदृश्यों पर विचार करेंगे।

Windows सेवाओं को प्रबंधित करने के लिए उपयोग किए जाने वाले PowerShell Cmdlets

Windows सेवाओं की स्थिति देखने और उन्हें प्रबंधित करने के लिए आठ बुनियादी सर्विस cmdlets हैं। सर्विस प्रबंधन cmdlets की पूरी सूची प्राप्त करने के लिए, यह कमांड चलाएं:

Get-Help \*-Service

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

  • Get-Service — स्थानीय या रिमोट कंप्यूटर पर रनिंग या स्टॉप्ड दोनों स्थितियों में सेवाओं को प्राप्त करने की अनुमति देता है;
  • New-Service – एक सर्विस बनाता है। cmdlet रजिस्ट्री में और सर्विस डेटाबेस में Windows सर्विस के लिए एक नई एंट्री बनाता है;
  • Restart-Service – एक सर्विस रीस्टार्ट करता है। cmdlet Windows सर्विस कंट्रोलर के माध्यम से रीस्टार्ट संदेश भेजता है;
  • Resume-Service – एक सर्विस रिज्यूम करता है। cmdlet Windows सर्विस मैनेजर को रिज्यूम संदेश भेजता है;
  • Set-Service — स्थानीय या रिमोट सर्विस की सेटिंग्स बदलता है, जिसमें इसकी स्थिति, विवरण, प्रदर्शित नाम या स्टार्टअप मोड शामिल है। आप इस cmdlet का उपयोग सर्विस शुरू, रोक या सस्पेंड करने के लिए भी कर सकते हैं;
  • Start-Service – एक सर्विस शुरू करता है;
  • Stop-Service – एक सर्विस रोकता है (cmdlet Windows सर्विस मैनेजर को रोकने का संदेश भेजता है);
  • Suspend-Service – एक सर्विस सस्पेंड करता है। एक सस्पेंडेड सर्विस अभी भी चल रही है, लेकिन जब तक इसे रिज्यूम नहीं किया जाता (उदाहरण के लिए, Resume-Service cmdlet के साथ), यह कुछ नहीं करती।

आप Get-Help के साथ किसी विशेष cmdlet का विस्तृत विवरण और उपयोग के उदाहरण प्राप्त कर सकते हैं:

Get-Help Start-Service

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

Get-Service के साथ Windows सर्विस स्थिति कैसे जांचें?

आप Get-Service cmdlet का उपयोग करके स्थानीय या रिमोट कंप्यूटर पर सेवाओं की सूची और उनकी स्थिति (Running/Stopped) प्राप्त कर सकते हैं। -Name पैरामीटर आपको नाम से सेवाओं का चयन करने की अनुमति देता है। सर्विस नाम को वाइल्डकार्ड कैरेक्टर * का उपयोग करके निर्दिष्ट किया जा सकता है।

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

यदि आप सटीक सर्विस नाम नहीं जानते हैं, तो आप इसे इसके प्रदर्शित नाम का उपयोग करके -DisplayName पैरामीटर के साथ ढूंढ सकते हैं। आप मानों की सूची और वाइल्डकार्ड का उपयोग कर सकते हैं।

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

Get-Service cmdlet का उपयोग -ComputerName पैरामीटर के साथ रिमोट कंप्यूटर पर सर्विस स्थिति प्राप्त करने के लिए करें। आप एक साथ कई रिमोट कंप्यूटर पर सर्विस स्थिति क्वेरी कर सकते हैं उनके नाम कॉमा से अलग करके निर्दिष्ट करके। उदाहरण के लिए, नीचे दिखाया गया कमांड रिमोट कंप्यूटर ny-prnt1 और ny-prnt2 पर Spooler सर्विस स्थिति प्राप्त करता है।

Get-Service spooler –ComputerName ny-prnt1,ny-prnt2

Status Name DisplayName ------ ---- ----------- Running spooler Print Spooler Stopped spooler Print Spooler

सर्विस के सभी गुण प्रदर्शित करने के लिए, Select-Object cmdlet का उपयोग करें:

Get-Service spooler | Select-Object *

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

Select-Object cmdlet आपको सर्विस के विशिष्ट गुण प्राप्त करने की अनुमति देता है। उदाहरण के लिए, आप Spooler सर्विस का नाम, स्थिति और उपलब्ध विकल्प देखना चाहते हैं:

Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

Get-Service cmdlet में दो पैरामीटर हैं जो आपको सर्विस निर्भरता देखने की अनुमति देते हैं:

  • -DependentServices दिए गए सर्विस पर निर्भर सेवाओं को प्रदर्शित करने की अनुमति देता है
  • -RequiredServices उन सेवाओं को प्रदर्शित करता है जिन पर दी गई सर्विस निर्भर करती है

निम्न कमांड Spooler सर्विस शुरू करने के लिए आवश्यक सेवाओं को प्रदर्शित करता है:

Get-Service –Name Spooler -RequiredServices

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

निम्न कमांड उन सेवाओं को दिखाता है जो Spooler पर निर्भर करती हैं:

Get-Service –Name Spooler -DependentServices

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

यदि आप विशिष्ट स्थिति या पैरामीटर वाली सेवाओं को ढूंढना चाहते हैं, तो Where-Object cmdlet का उपयोग करें। उदाहरण के लिए, चल रही सेवाओं की सूची प्राप्त करें:

Get-Service | Where-Object {$_.status -eq 'running'}

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

मैन्युअल स्टार्टअप प्रकार वाली सेवाओं को प्रदर्शित करने के लिए, यह कमांड चलाएं:

Get-Service | Where-Object {$_.starttype -eq 'Manual'}

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

वर्तमान कंप्यूटर पर एक विशिष्ट Windows सर्विस मौजूद है या नहीं, यह जांचने के लिए निम्न PowerShell स्क्रिप्ट का उपयोग करें:

if (Get-Service "ServiceTest" -ErrorAction SilentlyContinue)
{
Write-host "ServiceTest exists"
}

PowerShell के साथ सर्विस कैसे रोकें, शुरू करें, या रीस्टार्ट करें?

आप Stop-Service cmdlet का उपयोग करके सर्विस रोक सकते हैं। Spooler रोकने के लिए, कमांड चलाएं:

Stop-Service -Name spooler

Stop-Service cmdlet निष्पादन के बाद कुछ भी प्रदर्शित नहीं करता। परिणाम देखने के लिए, -PassThru पैरामीटर का उपयोग करें।

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

कृपया ध्यान दें कि हर सर्विस को रोका नहीं जा सकता। यदि कोई निर्भर सर्विस हैं, तो आपको एक त्रुटि दिखाई देगी:

Cannot stop service because it has dependent services. It can only be stopped if force flag set.

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

सर्विस को जबरन रोकने के लिए, –Force पैरामीटर का उपयोग करें। आपको याद रखना चाहिए कि सभी निर्भर सेवाएं भी रुक जाएंगी:

Stop-Service samss –Force -Passthru

निम्न कमांड निर्दिष्ट सेवाओं (bits, spooler) को रोकेगी यदि वे "Running" स्थिति में हैं:

get-service bits,spooler | where {$_.status -eq 'running'} | stop-service –passthru

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

कभी-कभी सेवाएं "Stopping" स्थिति में हैंग हो जाती हैं और उन्हें जबरन किल करना पड़ता है।

Start-Service cmdlet रुकी हुई सर्विस शुरू करता है:

Start-Service -Name spooler -PassThru

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

यदि इसकी कोई निर्भर सर्विस रुकी हुई है तो सर्विस शुरू नहीं होगी। उन्हें ढूंढने और शुरू करने के लिए निम्न PowerShell वन-लाइनर का उपयोग करें:

get-service samss | Foreach { start-service $_.name -passthru; start-service $_.DependentServices -passthru}

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

Suspend-Service cmdlet सेवाओं को रोक सकता है यदि वे इस स्थिति का समर्थन करते हैं। यह जानने के लिए कि क्या सर्विस को सस्पेंड किया जा सकता है, Get-Service cmdlet का उपयोग CanPauseAndContinue गुण के साथ करें।

Get-Service samss | Format-List name, canpauseandcontinue

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

उन सभी सेवाओं की सूची प्रदर्शित करने के लिए जिन्हें रोका जा सकता है, यह कमांड चलाएं:

Get-Service | Where-Object {$_.canpauseandcontinue -eq "True"}

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

आइए SQLBrowser सर्विस को सस्पेंड करें:

Suspend-Service -Name SQLBrowser

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

सस्पेंडेड सर्विस को रिज्यूम करने के लिए, Resume-Service cmdlet का उपयोग करें:

Resume-Service -Name SQLBrowser

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

निम्न कमांड सभी सस्पेंडेड सेवाओं को रिज्यूम करेगी:

get-service | where-object {$_.Status -eq "Paused"} | resume-service

Restart-Service cmdlet एक सर्विस रीस्टार्ट करेगा:

Restart-Service -Name spooler

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

यह कमांड कंप्यूटर पर सभी रुकी हुई नेटवर्क सेवाओं को शुरू करती है:

get-service net* | where-object {$_.Status -eq "Stopped"} | restart-service

इन कमांड्स में -ComputerName पैरामीटर नहीं होता, लेकिन आप उन्हें Invoke-Command cmdlet या पाइप का उपयोग करके रिमोट कंप्यूटर पर चला सकते हैं।

उदाहरण के लिए, रिमोट कंप्यूटर ny-prnt1 पर प्रिंट स्पूलर रीस्टार्ट करने के लिए, कमांड चलाएं:
Get-Service Spooler -ComputerName ny-prnt1 | Start-Service

डिफ़ॉल्ट रूप से, केवल एडमिनिस्ट्रेटर Windows सेवाओं को शुरू/रोक सकते हैं, लेकिन आप गैर-एडमिन उपयोगकर्ताओं को विशिष्ट सर्विस पर शुरू/रोक/रीस्टार्ट अनुमति दे सकते हैं।

सर्विस सेटिंग्स बदलने के लिए Set-Service का उपयोग करना

Set-Service cmdlet आपको स्थानीय या रिमोट कंप्यूटर पर सर्विस के किसी भी पैरामीटर या सेटिंग को बदलने की अनुमति देता है। चूंकि सर्विस की स्थिति एक गुण है, आप इस cmdlet का उपयोग सर्विस शुरू, रोक या सस्पेंड करने के लिए कर सकते हैं। Set-Service में -StartupType पैरामीटर होता है जो सर्विस के स्टार्टअप प्रकार को बदलने की अनुमति देता है।

आइए Spooler स्टार्टअप प्रकार को ऑटोमैटिक में बदलें:

Set-Service spooler –startuptype automatic –passthru

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

आप मैन्युअल स्टार्टअप प्रकार सेट कर सकते हैं:

Set-Service spooler –startuptype manual –passthru

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

PowerShell के माध्यम से Windows सर्विस कैसे बनाएं या हटाएं?

New-Service – Windows में एक नई सर्विस बनाने के लिए एक cmdlet है। नई सर्विस के लिए नाम और निष्पादन योग्य फ़ाइल निर्दिष्ट करें (आप PowerShell स्क्रिप्ट को Windows सर्विस के रूप में भी चला सकते हैं)।

आइए TestSvc नाम से एक नई सर्विस बनाएं:

new-service -name TestSvc -binaryPathName "C:\WINDOWS\System32\svchost.exe -k netsvcs"

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

Get-WmiObject cmdlet का उपयोग करके सर्विस के स्टार्टअप प्रकार और विवरण के बारे में जानकारी प्राप्त करें।

get-wmiobject win32_service -filter "name='testservice'"

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

आप नई सर्विस की सेटिंग्स को निम्न कमांड का उपयोग करके बदल सकते हैं:

Set-Service -Name TestSvc -Description ‘My Service’ -StartupType Manual

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

सर्विस को हटाने के लिए, यह कमांड चलाएं:

(Get-WmiObject win32_service -Filter ″name=′TestSvc′″).delete()

Windows सर्विस चलाने वाले उपयोगकर्ता खाते को बदलें

आप PowerShell का उपयोग करके सर्विस शुरू करने के लिए उपयोग किए जाने वाले उपयोगकर्ता खाते को बदल सकते हैं। TestSvc शुरू करने के लिए उपयोग किए जाने वाले खाते का नाम प्राप्त करें:

get-wmiobject win32_service -filter "name='TestSvc'" | Select name,startname

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

Windows सर्विस के लिए उपयोगकर्ता नाम और पासवर्ड बदलने के लिए, निम्न कमांड चलाएं:

$svc = get-wmiobject win32_service -filter "name='TestSvc'"
$svc.GetMethodParameters("change")

Change() मेथड पैरामीटर्स की सूची प्रदर्शित होती है। गिनें कि StartName और StartPassword पैरामीटर कहां स्थित हैं: वे क्रमशः 20वें और 21वें स्थान पर हैं।

PowerShell के साथ Windows सेवाओं को कैसे प्रबंधित करें?

$svc | Invoke-WmiMethod -Name Change –ArgumentList @ ($null,$null,$null,$null,$null,$null,$null, $null,$null,$null,$null,$null,$null,$null,$null,$null, $null,$null,$null,"Administrator","!123Pa$$w0rd")

या आप gMSA खाते का नाम दर्ज कर सकते हैं (इस मामले में खाते का पासवर्ड निर्दिष्ट नहीं है)।

जैसा कि आप देख सकते हैं, PowerShell Windows सेवाओं को प्रबंधित करना आसान बनाता है। आप सेवाएं बना सकते हैं, रोक सकते हैं, शुरू कर सकते हैं या रिज्यूम कर सकते हैं, और उनके गुण बदल सकते हैं। अधिकांश cmdlets रिमोट कंप्यूटर पर सेवाओं को प्रबंधित करने की अनुमति देते हैं।

  1. विंडोज 10 पर पावरशेल 7.0 कैसे इंस्टॉल करें विंडोज 10 पर पावरशेल 7.0 कैसे इंस्टॉल करें

    डिफ़ॉल्ट रूप से पावरशेल हर विंडोज संस्करण में इंस्टॉल होता है - विंडोज 7 SP1 और विंडोज सर्वर 2008 R2 SP1 से शुरू होकर। वर्षों से माइक्रोसॉफ्ट ने पावरशेल के कई संस्करण जारी किए। विंडोज पावरशेल .NET फ्रेमवर्क पर बनाया गया था और केवल विंडोज सिस्टम पर काम करता था। लेकिन हाल ही में माइक्रोसॉफ्ट ने पावरशे

  1. विंडोज 11 पर पावरशेल अपडेट करने की चरण-दर-चरण गाइड विंडोज 11 पर पावरशेल अपडेट करने की चरण-दर-चरण गाइड

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

  1. विंडोज में टैग का उपयोग करके फाइल और फोल्डर संगठन में महारत हासिल करें विंडोज में टैग का उपयोग करके फाइल और फोल्डर संगठन में महारत हासिल करें

    सिस्टम से पुरानी फाइलों को खोजना ऐसा है, जैसे कोयले की खदान में काली बिल्ली ढूंढने की कोशिश करना। जैसे, मैंने पिछले साल दक्षिण अमेरिका में छुट्टियों की उन तस्वीरों को कहां सेव किया था? या मैंने 2018 में लिखी उस रिपोर्ट को क्या नाम दिया था? जबकि विंडोज 10 एक शक्तिशाली अंतर्निहित खोज के साथ आता है, व