আপনি শুধুমাত্র services.msc snap-in বা sc.exe কমান্ড লাইন টুল থেকে নয়, PowerShell ব্যবহার করেও উইন্ডোজ পরিষেবাগুলি পরিচালনা করতে পারেন। এই প্রবন্ধে আমরা PowerShell-এর সাহায্যে Windows পরিষেবাগুলি পরিচালনার বিভিন্ন পরিস্থিতি বিবেচনা করব।
Windows পরিষেবাগুলি পরিচালনা করতে ব্যবহৃত PowerShell Cmdlets
Windows পরিষেবাগুলির অবস্থা দেখতে এবং সেগুলি পরিচালনা করার জন্য আটটি মৌলিক পরিষেবা cmdlet রয়েছে৷ পরিষেবা পরিচালনার cmdlet এর সম্পূর্ণ তালিকা পেতে, এই কমান্ডটি চালান:
Get-Help \*-Service
- গেট-সার্ভিস — চলমান বা বন্ধ অবস্থায় স্থানীয় বা দূরবর্তী কম্পিউটারে পরিষেবাগুলি পেতে অনুমতি দেয়;
- নতুন-পরিষেবা - একটি পরিষেবা তৈরি করে। cmdlet রেজিস্ট্রি এবং পরিষেবা ডাটাবেসে একটি Windows পরিষেবার জন্য একটি নতুন এন্ট্রি তৈরি করে;
- রিস্টার্ট-পরিষেবা - একটি পরিষেবা পুনরায় আরম্ভ করে। cmdlet উইন্ডোজ সার্ভিস কন্ট্রোলারের মাধ্যমে রিস্টার্ট মেসেজ পাঠায়;
- রিজুমে-পরিষেবা - একটি পরিষেবা পুনরায় শুরু করে। cmdlet উইন্ডোজ সার্ভিস ম্যানেজারকে একটি জীবনবৃত্তান্ত বার্তা পাঠায়;
- সেট-পরিষেবা — একটি স্থানীয় বা দূরবর্তী পরিষেবার সেটিংস পরিবর্তন করে, এর অবস্থা, বিবরণ, প্রদর্শিত নাম বা স্টার্টআপ মোড সহ। আপনি এই cmdlet একটি পরিষেবা শুরু, বন্ধ বা স্থগিত করতেও ব্যবহার করতে পারেন;
- স্টার্ট-সার্ভিস - একটি পরিষেবা শুরু করে;
- স্টপ-সার্ভিস – একটি পরিষেবা বন্ধ করে (cmdlet উইন্ডোজ সার্ভিস ম্যানেজারকে একটি স্টপিং বার্তা পাঠায়);
- সাসপেন্ড-পরিষেবা - একটি পরিষেবা স্থগিত করে। একটি স্থগিত পরিষেবা এখনও চলছে, কিন্তু এটি (উদাহরণস্বরূপ, Resume-Service cmdlet) ব্যবহার করে পুনরায় চালু না হওয়া পর্যন্ত এটি কিছু করে না।
আপনি Get-Help এর সাথে একটি নির্দিষ্ট cmdlet ব্যবহার করার একটি বিশদ বিবরণ এবং উদাহরণ পেতে পারেন:
Get-Help Start-Service
গেট-সার্ভিস দিয়ে কিভাবে উইন্ডোজ সার্ভিস স্ট্যাটাস চেক করবেন?
আপনি Get-Service ব্যবহার করে একটি স্থানীয় বা দূরবর্তী কম্পিউটারে পরিষেবাগুলির তালিকা এবং তাদের অবস্থা (চলমান/বন্ধ) পেতে পারেন cmdlet। –নাম পরামিতি নামের দ্বারা পরিষেবাগুলি নির্বাচন করার অনুমতি দেয়। ওয়াইল্ডকার্ড অক্ষর *
ব্যবহার করে পরিষেবার নাম নির্দিষ্ট করা যেতে পারে .
আপনি যদি সঠিক পরিষেবার নাম না জানেন, তাহলে আপনি এটির প্রদর্শিত নামটি ব্যবহার করে খুঁজে পেতে পারেন –DisplayName প্যারামিটার আপনি মান এবং ওয়াইল্ডকার্ডের তালিকা ব্যবহার করতে পারেন।
গেট-সার্ভিস ব্যবহার করুন -ComputerName সহ cmdlet একটি দূরবর্তী কম্পিউটারে পরিষেবার অবস্থা পেতে পরামিতি। আপনি একাধিক দূরবর্তী কম্পিউটারে কমা দ্বারা পৃথক করা তাদের নাম উল্লেখ করে একবারে পরিষেবার স্থিতি জিজ্ঞাসা করতে পারেন। উদাহরণস্বরূপ, নীচে দেখানো কমান্ডটি দূরবর্তী কম্পিউটার ny-prnt1 এবং ny-prnt2-এ স্পুলার পরিষেবার স্থিতি পায়।
Get-Service spooler –ComputerName ny-prnt1,ny-prnt2
Status Name DisplayName ------ ---- ----------- Running spooler Print Spooler Stopped spooler Print Spooler
একটি পরিষেবার সমস্ত বৈশিষ্ট্য প্রদর্শন করতে, নির্বাচন-বস্তু ব্যবহার করুন৷ cmdlet:
Get-Service spooler | Select-Object *
সিলেক্ট-অবজেক্ট cmdlet একটি পরিষেবার নির্দিষ্ট বৈশিষ্ট্য পেতে অনুমতি দেয়। উদাহরণস্বরূপ, আপনি স্পুলার পরিষেবার নাম, স্থিতি এবং উপলব্ধ বিকল্পগুলি দেখতে চান:
Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*
নির্বাচন করুন
গেট-সার্ভিস cmdlet-এর দুটি প্যারামিটার রয়েছে যা আপনাকে পরিষেবা নির্ভরতা দেখতে দেয়:
- -নির্ভর পরিষেবাগুলি প্রদত্ত পরিষেবার উপর নির্ভরশীল পরিষেবাগুলি প্রদর্শন করার অনুমতি দেয়
- -প্রয়োজনীয় পরিষেবাগুলি৷ প্রদত্ত পরিষেবার উপর নির্ভরশীল পরিষেবাগুলি প্রদর্শন করে
নিম্নলিখিত কমান্ডটি স্পুলার পরিষেবা শুরু করার জন্য প্রয়োজনীয় পরিষেবাগুলি প্রদর্শন করে:
Get-Service –Name Spooler -RequiredServices
নিম্নলিখিত কমান্ডটি স্পুলারের উপর নির্ভরশীল পরিষেবাগুলি দেখায়:
Get-Service –Name Spooler -DependentServices
আপনি যদি নির্দিষ্ট অবস্থা বা পরামিতি সহ পরিষেবাগুলি খুঁজে পেতে চান তবে কোথায়-অবজেক্ট ব্যবহার করুন cmdlet। উদাহরণ স্বরূপ, চলুন চলমান পরিষেবার তালিকাটি পান:
Get-Service | Where-Object {$_.status -eq 'running'}
ম্যানুয়াল স্টার্টআপ টাইপ সহ পরিষেবাগুলি প্রদর্শন করতে, এই কমান্ডটি চালান:
Get-Service | Where-Object {$_.starttype -eq 'Manual'}
একটি বর্তমান কম্পিউটারে একটি নির্দিষ্ট Windows পরিষেবা বিদ্যমান কিনা তা পরীক্ষা করতে নিম্নলিখিত PowerShell স্ক্রিপ্টটি ব্যবহার করুন:
if (Get-Service "ServiceTest" -ErrorAction SilentlyContinue)
{
Write-host "ServiceTest exists"
}
কিভাবে PowerShell দিয়ে পরিষেবা বন্ধ, শুরু বা পুনরায় চালু করবেন?
আপনি Stop-Service ব্যবহার করে একটি পরিষেবা বন্ধ করতে পারেন৷ cmdlet। স্পুলার বন্ধ করতে, কমান্ডটি চালান:
Stop-Service -Name spooler
স্টপ-সার্ভিস cmdlet কার্যকর করার পরে কিছু প্রদর্শন করে না। ফলাফল দেখতে, -PassThru ব্যবহার করুন প্যারামিটার।
দয়া করে মনে রাখবেন যে প্রতিটি পরিষেবা বন্ধ করা যাবে না। যদি কোনও নির্ভরশীল পরিষেবা থাকে তবে আপনি একটি ত্রুটি দেখতে পাবেন:
Cannot stop service because it has dependent services. It can only be stopped if force flag set.
একটি পরিষেবা বন্ধ করতে বাধ্য করতে, –ফোর্স ব্যবহার করুন৷ প্যারামিটার আপনার মনে রাখা উচিত যে সমস্ত নির্ভরশীল পরিষেবাগুলিও বন্ধ হয়ে যাবে:
Stop-Service samss –Force -Passthru
নিম্নলিখিত কমান্ডটি নির্দিষ্ট পরিষেবাগুলি (বিট, স্পুলার) বন্ধ করবে যদি তারা "চলমান" অবস্থায় থাকে:
get-service bits,spooler | where {$_.status -eq 'running'} | stop-service –passthru
কখনও কখনও পরিষেবাগুলি "স্টপিং" অবস্থায় বন্ধ হয়ে যায় এবং জোর করে হত্যা করতে হয়।
স্টার্ট-সার্ভিস cmdlet একটি বন্ধ পরিষেবা শুরু করে:
Start-Service -Name spooler -PassThru
একটি পরিষেবা শুরু হবে না, যদি এর কোনো নির্ভরশীল পরিষেবা বন্ধ করা হয়। সেগুলি খুঁজে পেতে এবং শুরু করতে নিম্নলিখিত PowerShell ওয়ান-লাইনার ব্যবহার করুন:
get-service samss | Foreach { start-service $_.name -passthru; start-service $_.DependentServices -passthru}
সাসপেন্ড-সার্ভিস cmdlet পরিষেবাগুলি থামাতে পারে যদি তারা এই অবস্থাটিকে সমর্থন করে। একটি পরিষেবা স্থগিত করা যেতে পারে কিনা তা জানতে, Get-Service ব্যবহার করুন৷ CanPauseAnd Continue সহ cmdlet সম্পত্তি।
Get-Service samss | Format-List name, canpauseandcontinue
পজ করা হতে পারে এমন সমস্ত পরিষেবার তালিকা প্রদর্শন করতে, এই কমান্ডটি চালান:
Get-Service | Where-Object {$_.canpauseandcontinue -eq "True"}
এসকিউএল ব্রাউজার পরিষেবা স্থগিত করা যাক:
Suspend-Service -Name SQLBrowser
একটি স্থগিত পরিষেবা পুনরায় শুরু করতে, পুনরায়-পরিষেবা ব্যবহার করুন৷ cmdlet:
Resume-Service -Name SQLBrowser
নিম্নলিখিত কমান্ডটি সমস্ত স্থগিত পরিষেবাগুলি পুনরায় চালু করবে:
get-service | where-object {$_.Status -eq "Paused"} | resume-service
রিস্টার্ট-পরিষেবা cmdlet একটি পরিষেবা পুনরায় চালু করবে:
Restart-Service -Name spooler
এই কমান্ডটি একটি কম্পিউটারে সমস্ত বন্ধ নেটওয়ার্ক পরিষেবাগুলি শুরু করে:
get-service net* | where-object {$_.Status -eq "Stopped"} | restart-service
এই কমান্ডগুলিতে –কম্পিউটার নাম নেই৷ প্যারামিটার, কিন্তু আপনি Invoke-Command cmdlet বা একটি পাইপ ব্যবহার করে একটি দূরবর্তী কম্পিউটারে এগুলি চালাতে পারেন৷
উদাহরণস্বরূপ, দূরবর্তী কম্পিউটার ny-prnt1-এ একটি প্রিন্ট স্পুলার পুনরায় চালু করতে, কমান্ডটি চালান:Get-Service Spooler -ComputerName ny-prnt1 | Start-Service
পরিষেবা সেটিংস পরিবর্তন করতে সেট-সার্ভিস ব্যবহার করা
সেট-পরিষেবা cmdlet আপনাকে স্থানীয় বা দূরবর্তী কম্পিউটারে পরিষেবার যে কোনো প্যারামিটার বা সেটিংস পরিবর্তন করতে দেয়। যেহেতু একটি পরিষেবার অবস্থা একটি সম্পত্তি, আপনি একটি পরিষেবা শুরু, বন্ধ বা স্থগিত করতে এই cmdlet ব্যবহার করতে পারেন৷ সেট-পরিষেবা -StartupType আছে প্যারামিটার যা একটি পরিষেবার স্টার্টআপ প্রকার পরিবর্তন করতে দেয়।
স্পুলার স্টার্টআপের ধরনটি স্বয়ংক্রিয়ভাবে পরিবর্তন করা যাক:
Set-Service spooler –startuptype automatic –passthru
আপনি ম্যানুয়াল স্টার্টআপ টাইপ সেট করতে পারেন:
Set-Service spooler –startuptype manual –passthru
কিভাবে PowerShell এর মাধ্যমে একটি Windows পরিষেবা তৈরি বা মুছবেন?
নতুন-পরিষেবা - উইন্ডোজে একটি নতুন পরিষেবা তৈরি করার জন্য একটি cmdlet। নতুন পরিষেবার জন্য নাম এবং এক্সিকিউটেবল ফাইলটি নির্দিষ্ট করুন (আপনি Windows পরিষেবা হিসাবে একটি PowerShell স্ক্রিপ্টও চালাতে পারেন)।
আসুন TestSvc নামে একটি নতুন পরিষেবা তৈরি করি:
new-service -name TestSvc -binaryPathName "C:\WINDOWS\System32\svchost.exe -k netsvcs"
Get-WmiObject cmdlet ব্যবহার করে স্টার্টআপ প্রকার এবং পরিষেবার বিবরণ সম্পর্কে তথ্য পান৷
get-wmiobject win32_service -filter "name='testservice'"
আপনি নিম্নলিখিত কমান্ড ব্যবহার করে নতুন পরিষেবার সেটিংস পরিবর্তন করতে পারেন:
Set-Service -Name TestSvc -Description ‘My Service’ -StartupType Manual
একটি পরিষেবা মুছে ফেলতে, এই কমান্ডটি চালান:
(Get-WmiObject win32_service -Filter ″name=′TestSvc′″).delete()
উইন্ডোজ পরিষেবা চালায় এমন ব্যবহারকারীর অ্যাকাউন্ট পরিবর্তন করুন
আপনি একটি পরিষেবা শুরু করতে ব্যবহৃত ব্যবহারকারীর অ্যাকাউন্ট পরিবর্তন করতে PowerShell ব্যবহার করতে পারেন। TestSvc শুরু করতে ব্যবহৃত অ্যাকাউন্টের নাম পান:
get-wmiobject win32_service -filter "name='TestSvc'" | Select name,startname
নির্বাচন করুন
একটি Windows পরিষেবার জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ড পরিবর্তন করতে, নিম্নলিখিত কমান্ডগুলি চালান:
$svc = get-wmiobject win32_service -filter "name='TestSvc'"
$svc.GetMethodParameters("change")
পরিবর্তন() পদ্ধতির পরামিতিগুলির তালিকা প্রদর্শিত হয়। StartName এবং StartPassword প্যারামিটারগুলি কোথায় আছে তা গণনা করুন:তারা 20 th এ অবস্থিত এবং 21 st স্থান যথাক্রমে।
$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 অ্যাকাউন্টের নাম লিখতে পারেন (এই ক্ষেত্রে অ্যাকাউন্টের পাসওয়ার্ড নির্দিষ্ট করা নেই)।
আপনি দেখতে পাচ্ছেন, পাওয়ারশেল উইন্ডোজ পরিষেবাগুলি পরিচালনা করা সহজ করে তোলে। আপনি পরিষেবাগুলি তৈরি করতে, বন্ধ করতে, শুরু করতে বা পুনরায় শুরু করতে এবং তাদের বৈশিষ্ট্যগুলি পরিবর্তন করতে পারেন৷ বেশিরভাগ cmdlets দূরবর্তী কম্পিউটারে পরিষেবাগুলি পরিচালনা করার অনুমতি দেয়৷