Compartir a través de


Método Delete de la clase Win32_Service (proveedores WMI CIMWin32)

El método Eliminarclase WMI elimina un servicio existente.

En este tema se usa la sintaxis de Managed Object Format (MOF). Para obtener más información sobre el uso de este método, vea Llamar a un método.

Sintaxis

uint32 Delete();

Parámetros

Este método no tiene parámetros.

Valor devuelto

Devuelve uno de los valores enumerados en la lista siguiente o cualquier otro valor para indicar un error. Para obtener códigos de error adicionales, consulte Constantes de error WMI o WbemErrorEnum. Para obtener valores HRESULT generales, consulte Códigos de error del sistema.

0

Se aceptó la solicitud.

1

No se admite la solicitud.

2

El usuario no tenía el acceso necesario.

3

No se puede detener el servicio porque otros servicios que se están ejecutando dependen de él.

4

El código de control solicitado no es válido o no es aceptable para el servicio.

5

El código de control solicitado no se puede enviar al servicio porque el estado del servicio (Win32_BaseService. Propiedad de estado ) es igual a 0, 1 o 2.

6

El servicio no se ha iniciado.

7

El servicio no respondió a tiempo a la solicitud de inicio.

8

Error desconocido al iniciar el servicio.

9

No se encontró la ruta de acceso del directorio al archivo ejecutable del servicio.

10

El servicio ya se está ejecutando.

11

La base de datos para agregar un nuevo servicio está bloqueada.

12

Una dependencia en la que se basa este servicio se ha quitado del sistema.

13

El servicio no pudo encontrar el servicio necesario de un servicio dependiente.

14

El servicio se ha deshabilitado del sistema.

15

El servicio no tiene la autenticación correcta para ejecutarse en el sistema.

16

Este servicio se está quitando del sistema.

17

El servicio no tiene ningún subproceso de ejecución.

18

El servicio tiene dependencias circulares cuando se inicia.

19

Un servicio se ejecuta con el mismo nombre.

20

El nombre del servicio tiene caracteres no válidos.

21

Se han pasado parámetros no válidos al servicio.

22

La cuenta con la que se ejecuta este servicio no es válida o carece de los permisos para ejecutar el servicio.

23

El servicio existe en la base de datos de servicios disponibles del sistema.

24

El servicio se encuentra en pausa actualmente en el sistema.

Comentarios

A medida que cambia la organización, puede decidir quitar determinados servicios de determinados equipos. Los servicios internos y de terceros se pueden quitar mediante WMI, mientras que los servicios del sistema operativo se pueden quitar mediante Sysocmgr.exe.

Al preparar la eliminación de servicios, tenga en cuenta la siguiente información:

  • Los servicios deben detenerse antes de quitarlos. Si el servicio se está ejecutando al emitir el comando delete, el servicio se marca para su eliminación, pero continúa ejecutándose hasta que se detiene y se cierran todos los identificadores abiertos.

    Si el servicio nunca se detiene, ese servicio nunca se eliminará.

  • Al quitar un servicio no se quita el archivo ejecutable del servicio.

    Al quitar un servicio mediante WMI, se eliminan las entradas del Registro relacionadas en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Como resultado, el servicio ya no está instalado y no está disponible a través del complemento Servicios. Sin embargo, WMI no elimina el archivo ejecutable, lo que significa que podría reinstalar fácilmente el servicio. Para eliminar el archivo ejecutable, debe recuperar el nombre de la ruta de acceso y, a continuación, eliminar el archivo.

  • Al quitar un servicio base de Windows 2000 (por ejemplo, DHCP) mediante WMI se eliminan las entradas del Registro de ese servicio, pero no se quita el acceso directo del menú Herramientas administrativas o se quita el servicio del Asistente para componentes de Windows. Esto puede confundir a cualquier persona que intente determinar cómo se ha configurado el equipo.

    Por ejemplo, si quita el servicio DHCP mediante un script WMI, el servicio DHCP ya no aparece en el complemento Servicios. Sin embargo, un acceso directo no funcional a la consola DHCP permanece en el menú Herramientas administrativas y, si inicia el Asistente para componentes de Windows, indica que el servicio DHCP está instalado.

    Por este motivo, siempre debes usar Sysocmgr.exe para quitar mediante programación los servicios de Windows 2000.

Ejemplos

En el ejemplo de código de VBScript siguiente se describe cómo eliminar un servicio.

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

En el ejemplo de código Perl siguiente se describe cómo eliminar un servicio.

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";
}

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
Root\CIMV2
MOF
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

Clases de sistema operativo

Win32_Service

Tareas de WMI: servicios