Win32_Service 클래스의 Delete 메서드(원격 데스크톱 서비스)

WMI 삭제클래스 메서드는 기존 서비스를 삭제합니다.

이 항목에서는 MOF(Managed Object Format) 구문을 사용합니다. 이 메서드를 사용하는 방법에 대한 자세한 내용은 메서드 호출을 참조하세요.

구문

uint32 Delete();

매개 변수

이 메서드에는 매개 변수가 없습니다.

반환 값

다음 목록에 나열된 값 중 하나 또는 오류를 나타내는 다른 값을 반환합니다. 추가 오류 코드는 WMI 오류 상수 또는 WbemErrorEnum을 참조하세요. 일반적인 HRESULT 값은시스템 오류 코드를 참조하세요.

0

요청이 수락되었습니다.

1

요청이 지원되지 않습니다.

2

사용자에게 필요한 액세스 권한이 없습니다.

3

실행 중인 다른 서비스가 이 서비스에 종속되어 있어서 이 서비스를 중지할 수 없습니다.

4

요청한 제어 코드가 잘못되었거나 서비스에 사용할 수 없습니다.

5

요청된 제어 코드는 서비스 상태(Win32_BaseService 때문에 서비스로 보낼 수 없습니다. State 속성)은 0, 1 또는 2와 같습니다.

6

서비스가 시작되지 않았습니다.

7

서비스가 시작 요청에 시기 적절하게 응답하지 않았습니다.

8

서비스를 시작할 때 알 수 없는 오류입니다.

9

서비스 실행 파일의 디렉터리 경로를 찾을 수 없습니다.

10

서비스가 이미 실행되고 있습니다.

11

새 서비스를 추가할 데이터베이스가 잠겨 있습니다.

12

이 서비스가 사용하는 종속성이 시스템에서 제거되었습니다.

13

종속 서비스에서 필요한 서비스를 찾지 못했습니다.

14

서비스가 시스템에서 비활성화되었습니다.

15

서비스에 시스템에서 실행하기 위한 올바른 인증이 없습니다.

16

이 서비스는 시스템에서 제거되고 있습니다.

17

서비스에 실행 스레드가 없습니다.

18

서비스가 시작될 때 순환 종속성이 있습니다.

19

서비스가 동일한 이름으로 실행되고 있습니다.

20

서비스 이름에 잘못된 문자가 있습니다.

21

잘못된 매개 변수가 서비스에 전달되었습니다.

22

이 서비스가 실행되는 계정이 잘못되었거나 서비스를 실행할 수 있는 권한이 없습니다.

23

서비스가 시스템에서 사용할 수 있는 서비스 데이터베이스에 있습니다.

24

서비스가 현재 시스템에서 일시 중지되었습니다.

설명

organization 변경되면 특정 컴퓨터에서 특정 서비스를 제거하도록 결정할 수 있습니다. 사내 및 타사 서비스는 WMI를 사용하여 제거할 수 있지만 운영 체제 서비스는 Sysocmgr.exe 사용하여 제거할 수 있습니다.

서비스 제거를 준비할 때 다음 정보를 염두에 두어야 합니다.

  • 서비스를 제거하려면 먼저 서비스를 중지해야 합니다. delete 명령을 실행할 때 서비스가 실행 중인 경우 서비스는 삭제로 표시되지만, 서비스가 중지되고 열려 있는 모든 핸들이 닫히기 전까지 계속 실행됩니다.

    서비스가 중지되지 않으면 해당 서비스는 삭제되지 않습니다.

  • 서비스를 제거해도 서비스의 실행 파일은 제거되지 않습니다.

    WMI를 사용하여 서비스를 제거하면 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 아래의 관련 레지스트리 항목이 삭제됩니다. 따라서 서비스는 더 이상 설치되지 않으며 서비스 스냅인을 통해 사용할 수 없습니다. 그러나 WMI는 실행 파일을 삭제하지 않으므로 서비스를 쉽게 다시 설치할 수 있습니다. 실행 파일을 삭제하려면 경로 이름을 검색한 다음 파일을 삭제해야 합니다.

  • WMI를 사용하여 기본 Windows 2000 서비스(예: DHCP)를 제거하면 해당 서비스에 대한 레지스트리 항목이 삭제되지만 관리 도구 메뉴에서 바로 가기를 제거하거나 Windows 구성 요소 마법사에서 서비스를 제거하지는 않습니다. 이렇게 하면 컴퓨터가 어떻게 구성되었는지 확인하려는 모든 사용자가 혼동할 수 있습니다.

    예를 들어 WMI 스크립트를 사용하여 DHCP 서비스를 제거하는 경우 DHCP 서비스는 더 이상 서비스 스냅인에 나열되지 않습니다. 그러나 DHCP 콘솔에 대한 비기능 바로 가기는 관리 도구 메뉴에 남아 있으며 Windows 구성 요소 마법사를 시작하면 DHCP 서비스가 설치되었음을 나타냅니다.

    이 때문에 항상 Sysocmgr.exe 사용하여 Windows 2000 서비스를 프로그래밍 방식으로 제거해야 합니다.

예제

다음 VBScript 코드 샘플에서는 서비스를 삭제하는 방법을 설명합니다.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
 ("SELECT * FROM Win32_Service WHERE Name = 'DbService'")
For Each objService in colListOfServices
 objService.StopService()
 objService.Delete()
Next

다음 Perl 코드 샘플에서는 서비스를 삭제하는 방법을 설명합니다.

use strict;
use Win32::OLE;

my ($Service, $ServiceSet) ;
eval {$ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='MyService'");};
unless($@)
{
 foreach $Service (in $ServiceSet)
 {
  my $RetVal = $Service->Delete();
  if ($RetVal == 0)  
  {
   print "Service deleted \n"; 
  }
  else  
  {
   print "Delete failed: %d", $RetVal;
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista
지원되는 최소 서버
Windows Server 2008
네임스페이스
Root\CIMv2\TerminalServices
MOF
TSCfgWmi.mof
DLL
TSCfgWmi.dll

추가 정보

Win32_Service

운영 체제 클래스

Win32_TerminalService

WMI 작업: 서비스