উইন্ডোজ পরিষেবাটি আনইনস্টল করার জন্য কীভাবে বাধ্য করা যায়


173

আমি ইনস্টল ইউটি.এল.সি ব্যবহার করে একটি উইন্ডোজ পরিষেবা ইনস্টল করেছি।

কোডটি আপডেট করার পরে আমি সার্ভারটি ইনস্টল করতে আবার ইনস্টল ইউটি.এক্স.ই.কে ব্যবহার করেছি ডাব্লু / ও প্রথমে মূল সংস্করণটি আনইনস্টল করে।

আমি এখন পরিষেবাটি আনইনস্টল করার চেষ্টা করার পরে ইনস্টলইটিল.এক্সই আনইনস্টলটি সফলভাবে শেষ করে, তবে পরিষেবাটি এখনও উপস্থিত হয়।

আমি যদি এর বৈশিষ্ট্যগুলি পরিবর্তন করার চেষ্টা করি তবে আমি 'পরিষেবাটি মোছার জন্য চিহ্নিত করা হয়েছে' বার্তাটি পেয়েছি।

আমি কীভাবে মুছে ফেলতে বাধ্য করতে পারি (অগ্রাধিকারের সাথে ডাব্লু / ও সার্ভার পুনরায় চালু করা)?


যদি পরিষেবাটি ঝুলন্ত থাকে এবং মুছে ফেলা কাজ না করে তা
জানুন কীভাবে

উত্তর:


469

একটি জিনিস যা অতীতে আমাকে ধরে ফেলেছিল তা হ'ল যদি আপনার কাছে পরিষেবা দর্শক চালু থাকে তবে পরিষেবাগুলি সম্পূর্ণরূপে মুছে ফেলা থেকে বিরত রাখে, তাই আগেই এটি বন্ধ করুন


70
আমি দৃly়ভাবে বিশ্বাস করতে পারি যে দর্শকের উন্মুক্ত থাকার কারণে পরিষেবাটি সরানো যায় - কত বোকা!
ড্রিমন

1
এটি মাইক্রোসফ্ট থেকে এত বোকা, কিন্তু এটি সত্যই কাজ করে। কিছু অব্যক্ত কারণে, পরিষেবা দর্শকদের উন্মুক্ত থাকা কখনও কখনও তাদের সঠিকভাবে মুছে ফেলা থেকে বিরত রাখে।
ivantod

1
আমি মনে করি যে এই উত্তরটির মতো একই রকম শত শত মন্তব্য রয়েছে। আমি এই বোকা ইস্যুটির সাথে সবেমাত্র 30 মিনিট হারিয়েছি ...
পিয়েরোজ

2
দেখে মনে হচ্ছে সিসইন্টার্নালস প্রসেস এক্সপ্লোরারও পরিষেবাগুলিকে লক করে (এবং সম্ভবত টাস্ক ম্যানেজারও) তাই আপনিও সেগুলি বন্ধ করে দিয়েছেন তা নিশ্চিত করুন!
ড্যানিও

3
এছাড়াও সিএমডি প্রম্পট ব্যবহার নিশ্চিত করুন। পাওয়ারশেল কোনও ত্রুটি দেখায় না, তবে তা মুছে দেয় না।
ব্রুনো ফারিয়া

145

আপনাকে আপনার মেশিনটি পুনরায় চালু করতে হবে না। উচ্চতর মোডে সেন্টিমিডি বা পাওয়ারশেল শুরু করুন।

sc.exe queryex <SERVICE_NAME>

তারপরে আপনি কিছু তথ্য পাবেন। একটি পিআইডি নম্বর প্রদর্শিত হবে।

taskkill /pid <SERVICE_PID> /f

যেখানে / চ জোর করে থামাতে হয়।

এখন আপনি আপনার পরিষেবা ইনস্টল বা চালু করতে পারেন।


2
বিলুপ্তভাবে কাজ করেছেন যেখানে একটি রিবুট ব্যতীত অন্য সমস্ত কিছু ব্যর্থ হয়েছে - ভাল খুশি!
ডেভএফ

36
এটি আমার পক্ষে কাজ করে না - আমার পরিষেবার জন্য পিড 0 ফিরে এসেছে এবং এটি আমাকে একটি জটিল সিস্টেম প্রক্রিয়া মুছতে দেয় না let
প্লাজমা 147

4
এ + দুর্দান্ত। উপরের স্কটি ডিলিট ব্যবহার করুন।
12

7
পিআইডি 0 হিসাবে আসার সাথে সাথে কাজ করে নি, এটি আমার সমস্যার সমাধান করেছে - (এসসি) মুছে ফেলা সার্ভিস 1072
ওয়েব-ই

3
একেবারে সহায়ক! আমার ক্ষেত্রে, একটি রিবুট কম কাজ কিছুই। এমনকি রেজিস্ট্রিতে পরিষেবা ডিরেক্টরি মোছা হচ্ছে না! এক gotcha যদিও: আপনি PowerShell ব্যবহারে কাজ করছি এমন: sc.exe queryex <SERVICENAME>। কারণ এটির scজন্য একটি Set-Contentনামও রয়েছে, আপনি যখন এটি ব্যবহার করবেন তখন নিঃশব্দে ব্যর্থ হবে।
ইফেদী ওকনকো নভো

97

ভাল, আপনি যেকোন উইন্ডোজ পরিষেবাটি শক্তভাবে মুছে ফেলার জন্য SC.EXE ব্যবহার করতে পারেন যদি আন-ইনস্টলটি কোনও সুযোগ সরিয়ে না দেয়।

sc delete <Service_Name>

পরিষেবাদি এমএমসি থেকে জোর করে পরিষেবাগুলি মুছে ফেলার জন্য "এমএস টেকনো ব্লগিং" সম্পর্কে আরও পড়ুন


5
এর জন্য ধন্যবাদ. মনে রাখবেন যে "পরিষেবার নাম" যদি "প্রদর্শন নাম" এর মতো না হয় তবে আপনি পরিষেবার বৈশিষ্ট্যগুলিতে "পরিষেবার নাম" পেতে পারেন।
গুইসিম

8
sc deleteযদি পরিষেবাটিতে কোনও হ্যান্ডেল খোলা থাকে তবে "পরিষেবা মোছার জন্য চিহ্নিত করা হয়েছে" এরও প্রতিবেদন করবে।
ম্যাট

@ গুইসিম এর জন্য ধন্যবাদ, আমি সন্দেহ করি যে অনেকে আমার মতো ডিসপ্লে নামটি রাখবেন!
নিক0lai

চেষ্টা করেও এই বার্তাটি পেয়েছে: [এসসি] ডিলিট সার্ভিস ফেইলড 1072: নির্দিষ্ট পরিষেবাটি মোছার জন্য চিহ্নিত করা হয়েছে।
অ্যান্ড্রু ডব্লিউ। ফিলিপস

37

আমি জানি এটি সাহায্য করবে না, তবে এটি ভবিষ্যতে কাউকে সহায়তা করতে পারে।

আমার ঠিক একই সমস্যা হয়েছে, পরিষেবাদি ম্যানেজারকে বন্ধ করে এবং পুনরায় খোলার ফলে উভয়ই রেজিস্ট্রি থেকে এন্ট্রি সরিয়ে নিয়েছে এবং পরিষেবাটি আনইনস্টল সম্পূর্ণ করেছে।

এর আগে, পরিষেবা পরিচালককে রিফ্রেশ করা কোনও সহায়তা করেনি।


1
চিমিং করার জন্য ধন্যবাদ। আমার অভিজ্ঞতাটি ঠিক যেমনটি আপনি বর্ণনা করেছিলেন ঠিক তেমনই হয়েছিল।
পিকে

10
sc delete sericeName

এটি করার আগে পরিষেবাটি বন্ধ হয়ে গেছে তা নিশ্চিত করুন। আমি এই কাজটি বেশিরভাগ সময় দেখেছি। এমন অনেক সময় আছে যেখানে আমি উইন্ডোজ কোনও কিছুতে আটকে থাকতে দেখেছি এবং এটি পুনরায় বুট করার জন্য জোর দেয়।


কেবলমাত্র একটি সংযোজন .. স্ক্রি ডিলিট কমান্ড চালাতে অ্যাক্সেস পেতে প্রশাসক হিসাবে আমার ডস প্রম্পট / .NET প্রম্পটটি চালাতে হয়েছিল .. ঠিক সেই ক্ষেত্রে যদি অন্য কেউ এই সমস্যাটিতে চলে।
ডেভ.আইডি

মুছে ফেলার আগে পরিষেবাটি বন্ধ ছিল তা নিশ্চিত করতে এসসি ডিলেট করার আগে "নেট স্টপ <সার্ভিসনাম>" চালান
আদি

এটি আমার অভিজ্ঞতাও ছিল, অবশেষে আমাকে এমন একগুঁয়ে পরিষেবাটি সরিয়ে ফেলার জন্য পুনরায় চালু করতে হয়েছিল যা কেবলমাত্র আংশিকভাবে আনইনস্টল করা হয়েছিল (এটি এখনও কোড 2 সহ স্ন্যাপটিতে প্রদর্শিত হয়েছিল)। রিবুট করা হ'ল যা শেষ পর্যন্ত এটিকে দূরে সরিয়ে দিয়েছে।
ডেলিওটগ

5

সেন্টিমিডি এবং পরিষেবাদি উইন্ডোটি খোলা থাকলে বন্ধ করুন, তারপরে ডান ক্লিক করে প্রশাসক হিসাবে রান নির্বাচন করে আবার সেন্টিমিডি শুরু করুন। যদি sc delete sericeNameকাজ না করে কিছু কাজ করে না।

http://weblogs.asp.net/avnerk/archive/2007/09/05/windows-services-services-msc-and-the-quot-this-service-is-marked-for-deletion-quot-error। aspx


4

দুর্ভাগ্যক্রমে, আপনাকে সার্ভারটি পুনরায় চালু করতে হবে। এটি "মুছে ফেলা" পরিষেবাটি সরানো উচিত।


12
না। আপনার পুনরায় আরম্ভের দরকার নেই। আমার সমাধান দেখুন :)
জোহান

2
আমি আসলে ব্যবহারকারীর 186749 এর সমাধান আরও ভাল পছন্দ করি। সুন্দর এবং পরিষ্কার।
ম্যাককে

3

এই উত্তরটি যদি কাউকে সহায়তা করে: যেমন এখানে পাওয়া গেছে , সিসিনটার্নালস অটোরানগুলি চালাতে আপনি নিজেকে অনেকটা সমস্যা বাঁচাতে পারেন প্রশাসনিক হিসাবে । কেবল "পরিষেবাদি" ট্যাবে যান এবং আপনার পরিষেবা মুছুন।

এটি এমন একটি মেশিনে আমার জন্য কৌশলটি করেছে যেখানে আমার রেজিস্ট্রি সম্পাদনা করার অনুমতি নেই any


3

আপনি নিজের পরিষেবার জন্য রেজিস্ট্রি কীটি নিজে নিজে মুছতে পারেন HKLM\SYSTEM\CurrentControlSet\Services, এর পরে আপনি পরিষেবা নিয়ন্ত্রণ পরিচালকের পরিষেবাটি দেখতে পাবেন না (পরিবর্তনটি দেখার জন্য রিফ্রেশ করতে হবে বা পুনরায় খোলা থাকা দরকার) এবং আপনি যথারীতি পরিষেবাটি পুনরায় ইনস্টল করতে পারেন।


উইন্ডোজ 2012 আর 2-তে, " বিবরণ পড়তে ব্যর্থ হয়েছে Error ত্রুটি কোড: 2 " এর জন্য পরিষেবাদি এমএমসি স্ন্যাপ-ইন (Services.MSC) প্রদর্শন করে display সত্ত্বেও অন্যান্য সমস্ত এমএমসি বন্ধ ছিল এবং অন্য কোনও ব্যবহারকারী লগইন হয়নি।
সংকেত 15

আমি দেখতে পাচ্ছি, কেবল উইন্ডোজ 8 এবং উইন্ডোজ 10 এ পরীক্ষা করা হয়েছে (এবং এটি কার্যকর হয়েছিল)।
ফার্নান্দো গঞ্জালেজ সানচেজ

যা শেষ পর্যন্ত আমার সমস্যার সমাধান করেছে। আমি প্রকল্পে একটি পরিষেবা ইনস্টলার যুক্ত করতে ভুলে গিয়েছিলাম এবং ইনস্টলেশন পরে আমার পরিষেবাটি সরাতে পারিনি। আমি পরিষেবা রেগ ট্রি এর যে কোনও কিছুই মুছে ফেলার আগে রফতানি করার পরামর্শ দিচ্ছি। অনেক ধন্যবাদ!
ব্যবহারকারী 3772108

2

নিম্নলিখিতটি মেশিনটি পুনরায় চালু না করেই কাজ করবে:

  1. <আপনার পরিষেবার নাম> (কী এবং মান উভয়) এর জন্য রেজিস্ট্রি অনুসন্ধান করুন \ HKEY_LOCAL_MACHINE
  2. "উত্তরাধিকার" মানটি 0 তে সেট করুন

1

আপনি কি আনইনস্টল কল করার আগে পরিষেবাটি বন্ধ করার চেষ্টা করেছেন? আমার এলোমেলোভাবে এই সমস্যা ছিল। কিছুক্ষণ আমি আবার চালু না করে এটিকে সরাতে পারি। আমার অনুমান যে এটি এখনও চালু পরিষেবাটির সাথে সম্পর্কিত


1

আমি দেরি করে ফেলেছি, তবে একটি বিকল্প যুক্ত করতে চাই, যা দেখতে অদ্ভুত লাগবে, তবে আমি অন্য কোনও উপায় দেখিনি:

আমি প্রতি রাতে একটি সিআই প্রক্রিয়াতে আমার উইন্ডোজ পরিষেবাদি ইনস্টল করার সাথে সাথে আমার এমন কিছু জিনিস প্রয়োজন যা পুরো সময় কাজ করে এবং সম্পূর্ণ স্বয়ংক্রিয়ভাবে তৈরি। কোনও কারণে, পরিষেবাগুলি আনইনস্টল করার পরে দীর্ঘ সময় (5 মিনিট বা তার বেশি) জন্য সর্বদা মুছে ফেলার জন্য চিহ্নিত করা হয়েছিল। অতএব, পরিষেবাটি সত্যিই মুছে ফেলা হয়েছে (সরলীকৃত সংস্করণ) তা নিশ্চিত করতে আমি পুনরায় ইনস্টল ব্যাচ স্ক্রিপ্টটি বাড়িয়েছি:

REM Stop the service first
net stop My-Socket-Server

REM Same as installutil.exe, just implemented in the service
My.Socket.Server.exe /u

:loop1
    REM Easy way to wait for 5 seconds
    ping 192.0.2.2 -n 1 -w 5000 > nul
    sc delete My-Socket-Server
    echo %date% %time%: Trying to delete service.
    if errorlevel 1072 goto :loop1

REM Just for output purposes, typically I get that the service does not exist
sc query My-Socket-Server

REM Installing the new service, same as installutil.exe but in code
My.Socket.Server.exe /i

REM Start the new service
net start My-Socket-Server

আমি যেটা দেখতে পাচ্ছি, তা হল যে পরিষেবাটি শেষ পর্যন্ত না যাওয়া পর্যন্ত প্রায় 5 মিনিট (!) জন্য মুছে ফেলার জন্য চিহ্নিত করা হয়। অবশেষে, আমার আর কোনও ম্যানুয়াল হস্তক্ষেপের দরকার নেই। আমি ভবিষ্যতে স্ক্রিপ্টটি প্রসারিত করব যাতে একটি নির্দিষ্ট সময়ের পরে কিছু ঘটে (যেমন 30 মিনিটের পরে বিজ্ঞপ্তি)।


1

এটি আমার পক্ষে কাজ করেছে

$a = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq 'psexesvc'}
$a.Delete()

যদি এটি থেকে আপনার আউটপুট প্রদর্শিত হয় ReturnValue : 16, তবে কমান্ডটি " এই পরিষেবাটি সিস্টেম থেকে সরানো হচ্ছে " দিয়ে ব্যর্থ হয়েছে । মাইক্রোসফ্ট থেকে রিটার্নভ্যালুগুলির সম্পূর্ণ তালিকা এখানে
সিগন্যাল 15

1

আপনি যদি পরিষেবাগুলিতে পরিষেবাটি বন্ধ করতে না পারেন তবে আপনি টাস্ক ম্যানেজারে আপনার উইন্ডোজ পরিষেবাটি বন্ধ করতে পারেন । এর পরে, আপনি পরিষেবাটি সরাতে পারেন।


0

পরিষেবা তালিকাটি রিফ্রেশ করে আমার জন্য সর্বদা তা করে। যদি পরিষেবাগুলির উইন্ডোটি খোলা থাকে তবে এটি কোনও কারণে এটির কিছু স্মৃতি উপস্থিত থাকবে। এফ 5 এবং আমি আবার ইনস্টল করছি!


0

এছাড়াও নিশ্চিত করুন যে নির্বাহী এখনও সক্রিয় হওয়ার কোনও নজির নেই (সম্ভবত যে কোনও কারণেই চলমান ছিল, যে কোনও কারণেই হোক না কেন, স্বাধীনভাবে পরিষেবাটি থেকে)।

আমি এমএমসি খুলেছিলাম এবং বন্ধ করে দিচ্ছিলাম এবং পিআইডি হত্যার জন্য খুঁজছিলাম - তবে প্রক্রিয়া এক্সপ্লোরারের দিকে তাকানোর সময় বিস্মৃত তফসিলী ব্যাচ থেকে প্রচুর প্রচলিত প্রক্রিয়া চলছিল। তাদের হত্যা। কাজ শেষ.


0

এই বিষয়ে ফোরামের প্রচুর প্রশ্ন রয়েছে।

উত্তরটি উইন্ডোজ এপি-তে পেয়েছি। পরিষেবাটি আনইনস্টল করার পরে আপনার কম্পিউটার পুনরায় চালু করার দরকার নেই। আপনাকে কল করতে হবে:

BOOL WINAPI CloseServiceHandle(
  SC_HANDLE hSCObject
);

এটি পরিষেবার হ্যান্ডেলটি বন্ধ করে দেয়। উইন্ডোজ 7 এ এটি আমার সমস্যার সমাধান করেছে। আমি করি:

  • পরিষেবা বন্ধ করুন
  • হাতল বন্ধ
  • পরিষেবা আনইনস্টল করুন
  • 3 সেকেন্ড অপেক্ষা করুন
  • ডিরেক্টরিতে নতুন ইপি অনুলিপি করুন
  • পরিষেবা ইনস্টল করুন
  • পরিসেবা আরম্ভ
  • হাতল বন্ধ

2
খোলা হ্যান্ডেল থাকা প্রোগ্রামটিতে না থাকলে আপনি কোথায় হ্যান্ডেলটি বন্ধ করবেন?
ম্যাট

0

টপশেল্ফ মিস্ বা অন্য কোনও কারণে কোনও পরিষেবা ব্যর্থ হলে আমি আমাদের অক্টোপাস ডিপ্লোয় উদাহরণগুলির জন্য কয়েকটি স্থান থেকে একসাথে আবদ্ধ নীচের পাওয়ারশেলটি ব্যবহার করি।

$ServiceName = 'MyNaughtyService'
$ServiceName | Stop-Service -ErrorAction SilentlyContinue
# We tried nicely, now KILL!!!
$ServiceNamePID = Get-Service | Where { $_.Name -eq $ServiceName} # If it was hung($_.Status -eq 'StopPending' -or $_.Status -eq 'Stopping') -and
$ServicePID = (Get-WmiObject Win32_Service | Where {$_.Name -eq $ServiceNamePID.Name}).ProcessID
Stop-Process $ServicePID -Force

0

এটি লক্ষণীয় যে এটি:

sc delete "ServiceName"

পাওয়ারশেলে কাজ করে না, স্কিরি পাওয়ারশেলের সেমিডলেট সেট-কন্টেন্টের একটি নাম alias আপনার করা দরকার:

sc.exe delete "ServiceName"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.