Win32_Service clase
La Win32_Serviceclase WMI representa un servicio en un sistema informático que ejecuta Windows.
La siguiente sintaxis se simplifica desde el código de Managed Object Format (MOF) e incluye todas las propiedades heredadas. Las propiedades y los métodos están en orden alfabético, no en orden MOF.
Sintaxis
[Dynamic, Provider("CIMWin32"), SupportsUpdate, UUID("{8502C4D9-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Services"), AMENDMENT]
class Win32_Service : Win32_BaseService
{
boolean AcceptPause;
boolean AcceptStop;
string Caption;
uint32 CheckPoint;
string CreationClassName;
boolean DelayedAutoStart;
string Description;
boolean DesktopInteract;
string DisplayName;
string ErrorControl;
uint32 ExitCode;
datetime InstallDate;
string Name;
string PathName;
uint32 ProcessId;
uint32 ServiceSpecificExitCode;
string ServiceType;
boolean Started;
string StartMode;
string StartName;
string State;
string Status;
string SystemCreationClassName;
string SystemName;
uint32 TagId;
uint32 WaitHint;
};
Miembros
La clase Win32_Service tiene estos tipos de miembros:
Métodos
La clase Win32_Service tiene estos métodos.
Método | Descripción |
---|---|
Cambio | Modifica un servicio. |
ChangeStartMode | Modifica el modo de inicio de un servicio. |
Crear | Crea un nuevo servicio. |
Eliminar | Elimina un servicio existente. |
GetSecurityDescriptor | Devuelve el descriptor de seguridad que controla el acceso al servicio. |
InterrogateService | Solicita que un servicio actualice su estado al administrador de servicios. |
PauseService | Intenta colocar un servicio en el estado en pausa. |
ResumeService | Intenta colocar un servicio en el estado reanudado. |
SetSecurityDescriptor | Escribe una versión actualizada del descriptor de seguridad que controla el acceso al servicio. |
StartService | Intenta colocar un servicio en el estado de inicio. |
StopService | Coloca un servicio en el estado detenido. |
UserControlService | Intenta enviar un código de control definido por el usuario a un servicio. |
Propiedades
La clase Win32_Service tiene estas propiedades.
-
AcceptPause
-
-
Tipo de datos: booleano
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS|dwControlsAccepted| SERVICE_ACCEPT_PAUSE_CONTINUE"), DisplayName ("Service Accepts Pause")
Indica si el servicio se puede pausar.
Esta propiedad se hereda de Win32_BaseService.
-
-
AcceptStop
-
-
Tipo de datos: booleano
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS|dwControlsAccepted| SERVICE_ACCEPT_STOP"), DisplayName ("Service Accepts Stop")
Indica si se puede detener el servicio.
Esta propiedad se hereda de Win32_BaseService.
-
-
Caption
-
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: MaxLen (64), DisplayName ("Caption")
Descripción breve del servicio: una cadena de una línea.
Esta propiedad se hereda de CIM_ManagedSystemElement.
-
-
Checkpoint
-
-
Tipo de datos: uint32
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS|dwCheckPoint"), DisplayName ("Check Point Count")
Valor que el servicio incrementa periódicamente para notificar su progreso durante una operación de inicio largo, detención, pausa o continuación. Por ejemplo, el servicio incrementa este valor a medida que completa cada paso de su inicialización cuando se inicia. El programa de interfaz de usuario que invoca la operación en el servicio usa este valor para realizar un seguimiento del progreso del servicio durante una operación larga. Este valor no es válido y debe ser cero cuando el servicio no tiene una operación de inicio, detención, pausa o continuación pendiente.
-
-
CreationClassName
-
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: CIM_Key, DisplayName ("Nombre de clase")
Nombre de la primera clase concreta que aparece en la cadena de herencia utilizada en la creación de una instancia. Cuando se usa con las demás propiedades clave de la clase , esta propiedad permite identificar de forma única todas las instancias de esta clase y sus subclases.
Esta propiedad se hereda de CIM_Service.
-
-
DelayedAutoStart
-
-
Tipo de datos: booleano
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_DELAYED_AUTO_START_INFO|fDelayedAutostart"), DisplayName ("Inicio automático retrasado")
Si es True, el servicio se inicia después de que se inicien otros servicios de inicio automático más un breve retraso.
Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008 y Windows Vista: esta propiedad no se admite antes de Windows Server 2016 y Windows 10 .
-
-
Descripción
-
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: DisplayName ("Descripción")
Descripción del objeto .
Esta propiedad se hereda de CIM_ManagedSystemElement.
-
-
DesktopInteract
-
-
Tipo de datos: booleano
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | QUERY_SERVICE_CONFIG|dwServiceType| SERVICE_INTERACTIVE_PROCESS"), DisplayName ("Interactúa con el escritorio")
Indica si el servicio puede crear o comunicarse con ventanas en el escritorio e interactuar de alguna manera con un usuario. Los servicios interactivos deben ejecutarse en la cuenta del sistema local. La mayoría de los servicios no son interactivos; es decir, no se comunican con el usuario de ninguna manera.
Esta propiedad se hereda de Win32_BaseService.
-
-
DisplayName
-
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | QUERY_SERVICE_CONFIG|lpDisplayName"), DisplayName ("Nombre para mostrar")
Nombre del servicio como se ve en el complemento Servicios. Esta cadena tiene una longitud máxima de 256 caracteres. Tenga en cuenta que el nombre para mostrar y el nombre del servicio (que se almacena en el Registro) no siempre son los mismos. Por ejemplo, el servicio cliente DHCP tiene el nombre de servicio Dhcp, pero el nombre para mostrar cliente DHCP. El nombre se conserva entre mayúsculas y minúsculas en service Control Manager. Sin embargo, las comparaciones displayName siempre no distinguen mayúsculas de minúsculas.
Restricción: acepta el mismo valor que la propiedad Name .
Ejemplo: "Atdisk"
Esta propiedad se hereda de Win32_BaseService.
-
-
ErrorControl
-
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | QUERY_SERVICE_CONFIG|dwErrorControl"), DisplayName ("Gravedad del error de inicio")
Gravedad del error si este servicio no se inicia durante el inicio. El valor indica la acción realizada por el programa de inicio si se produce un error. El sistema registra todos los errores.
-
-
Omitir ("Omitir")
-
No se notifica al usuario.
-
Normal ("Normal")
-
Se notifica al usuario. Normalmente, se trata de un cuadro de mensaje que muestra la notificación al usuario del problema.
-
Grave ("Grave")
-
El sistema se reinicia con la última configuración válida conocida.
-
Crítico ("Crítico")
-
El sistema intenta reiniciarse con una configuración válida. Si el servicio no se inicia una segunda vez, se produce un error de inicio.
-
Desconocido ("Desconocido")
-
Se desconoce la gravedad del error.
Esta propiedad se hereda de Win32_BaseService.
ExitCode
-
Tipo de datos: uint32
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS|dwWin32ExitCode"), DisplayName ("Código de salida")
Código de error de Windows que define los errores detectados al iniciar o detener el servicio. Esta propiedad se establece en ERROR_SERVICE_SPECIFIC_ERROR (1066) si el error es exclusivo del servicio representado por esta clase y hay información disponible sobre el error en la propiedad ServiceSpecificExitCode . El servicio establece este valor en NO_ERROR cuando se ejecuta y de nuevo tras la finalización normal.
Esta propiedad se hereda de Win32_BaseService.
InstallDate
-
Tipo de datos: datetime
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Fecha de instalación")
El objeto Date está instalado. Esta propiedad no requiere un valor para indicar que el objeto está instalado.
Esta propiedad se hereda de CIM_ManagedSystemElement.
Nombre
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: Clave
Identificador único del servicio que proporciona una indicación de la funcionalidad administrada. Esta funcionalidad se describe en la propiedad Description del objeto .
Esta propiedad se hereda de CIM_ManagedSystemElement.
PathName
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | QUERY_SERVICE_CONFIG|lpBinaryPathName"), DisplayName ("Nombre de ruta de acceso de archivo")
Ruta de acceso completa al archivo binario del servicio que implementa el servicio.
Ejemplo: "\SystemRoot\System32\drivers\afd.sys"
Esta propiedad se hereda de Win32_BaseService.
ProcessId
-
Tipo de datos: uint32
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS_PROCESS|dwProcessId"), DisplayName ("Id. de proceso")
Identificador de proceso del servicio.
Ejemplo: 324
ServiceSpecificExitCode
-
Tipo de datos: uint32
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS|dwServiceSpecificExitCode"), DisplayName ("Código de salida específico del servidor")
Código de error específico del servicio para los errores que se producen mientras el servicio se está iniciando o deteniendo. Los códigos de salida se definen mediante el servicio representado por esta clase. Este valor solo se establece cuando el valor de la propiedad ExitCode es ERROR_SERVICE_SPECIFIC_ERROR (1066).
Esta propiedad se hereda de Win32_BaseService.
ServiceType
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | QUERY_SERVICE_CONFIG|dwServiceType"), DisplayName ("Tipo de servicio")
Tipo de servicio proporcionado a los procesos de llamada.
Los valores son:
Controlador kernel ("Controlador de kernel")
Controlador del sistema de archivos ("Controlador del sistema de archivos")
Adaptador ("Adaptador")
Controlador Recognizer ("Controlador recognizer")
Propio proceso ("Propio proceso")
Proceso de recurso compartido ("Proceso de uso compartido")
Proceso interactivo ("Proceso interactivo")
Esta propiedad se hereda de Win32_BaseService.
Introducción
-
Tipo de datos: booleano
-
Tipo de acceso: solo lectura
-
Calificadores: DisplayName ("Started")
Indica si se ha iniciado o no el servicio.
Esta propiedad se hereda de CIM_Service.
StartMode
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: DisplayName ("Modo de inicio")
Modo de inicio del servicio base de Windows.
Arranque ("Arranque")
Controlador de dispositivo iniciado por el cargador del sistema operativo (válido solo para los servicios de controlador).
Sistema ("Sistema")
Controlador de dispositivo iniciado por el proceso de inicialización del sistema operativo. Este valor solamente es válido para servicios de controladores.
Automático ("Automático")
Servicio que el administrador de control de servicios iniciará automáticamente durante el inicio del sistema. Los servicios automáticos se inician incluso si un usuario no inicia sesión.
Manual ("Manual")
Servicio que va a iniciar el Administrador de control de servicios cuando un proceso llama al método StartService . Estos servicios no se inician a menos que un usuario inicie sesión y los inicie.
Deshabilitado ("Deshabilitado")
Servicio que no se puede iniciar hasta que se cambie su StartMode a Automático o Manual.
Esta propiedad se hereda de CIM_Service.
StartName
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | QUERY_SERVICE_CONFIG|lpServiceStartName"), DisplayName ("Nombre de la cuenta de inicio")
Nombre de cuenta con el que se ejecuta un servicio. Según el tipo de servicio, el nombre de la cuenta puede tener el formato "DomainName\Username" o el formato UPN ("Username@DomainName"). El proceso de servicio se registra mediante uno de estos dos formularios cuando se ejecuta. Si la cuenta pertenece al dominio integrado, se puede especificar ".\Username". Para los controladores de nivel de sistema o kernel, StartName contiene el nombre del objeto de controlador (es decir, "\FileSystem\Rdr" o "\Driver\Xns") que el sistema de E/S usa para cargar el controlador de dispositivo. Además, si se especifica NULL , el controlador se ejecuta con un nombre de objeto predeterminado creado por el sistema de E/S basado en el nombre del servicio.
Ejemplo: "DWDOM\Administración"
Esta propiedad se hereda de Win32_BaseService.
State
-
Tipo de datos: cadena
-
Tipo de acceso: lectura/escritura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS|dwCurrentState "), DisplayName ("State")
Estado actual del servicio base.
Los valores son:
Detenido ("Detenido")
Start Pending ("Start Pending")
Detener pendiente ("Detener pendiente")
En ejecución ("En ejecución")
Continuar pendiente ("Continuar pendiente")
Pausa pendiente ("Pausa pendiente")
En pausa ("En pausa")
Desconocido ("Desconocido")
Windows Server 2008 y Windows Vista: Esta propiedad es de solo lectura antes de Windows 7 y Windows Server 2008 R2.
Esta propiedad se hereda de Win32_BaseService.
Estado
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: MaxLen (10), DisplayName ("Status")
Estado actual del objeto. Se pueden definir varios estados operativos y no operativos. Los estados operativos incluyen: "Ok", "Degradado" y "Pred Fail" (un elemento, como una unidad de disco duro habilitada para SMART, puede funcionar correctamente, pero predecir un error en un futuro próximo). Los estados no operativos incluyen: "Error", "Starting", "Stopping" y "Service". Este último, "Servicio", podría aplicarse durante la reestablecimiento de reflejo de un disco, la recarga de una lista de permisos de usuario u otro trabajo administrativo. No todo este trabajo está en línea, pero el elemento administrado no es "CORRECTO" ni en uno de los otros estados.
Esta propiedad se hereda de CIM_ManagedSystemElement.
Los valores son:
Ok ("OK")
Error ("Error")
Degradado ("Degradado")
Desconocido ("Desconocido")
Pred Fail ("Pred Fail ")
Inicio ("Inicio")
Detención ("Detención ")
Servicio ("Servicio")
Estresado ("Estresado")
NonRecover ("NonRecover")
Sin contacto ("Sin contacto")
Lost Comm ("Lost Comm")
SystemCreationClassName
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: propagados ("CIM_System. CreationClassName"), CIM_Key, DisplayName ("Nombre de clase del sistema")
Escriba el nombre del sistema que hospeda este servicio.
Esta propiedad se hereda de CIM_Service.
SystemName
-
Tipo de datos: cadena
-
Tipo de acceso: solo lectura
-
Calificadores: propagados ("CIM_System. Nombre"), CIM_Key, DisplayName ("Nombre del sistema")
Nombre del sistema que hospeda este servicio.
Esta propiedad se hereda de CIM_Service.
TagId
-
Tipo de datos: uint32
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | QUERY_SERVICE_CONFIG|dwTagId"), DisplayName ("Id. de etiqueta")
Valor de etiqueta único para este servicio en el grupo. Un valor de 0 (cero) indica que el servicio no tiene una etiqueta . Una etiqueta se puede usar para ordenar el inicio del servicio dentro de un grupo de pedidos de carga especificando un vector de orden de etiqueta en el registro ubicado en:
HKEY_LOCAL_MACHINE\Sistema\Currentcontrolset\Control\ GroupOrderList
Las etiquetas solo se evalúan para los servicios de tipo de inicio controlador de kernel y controlador del sistema de archivos que tienen modos de inicio del sistema o arranque.
Esta propiedad se hereda de Win32_BaseService.
WaitHint
-
Tipo de datos: uint32
-
Tipo de acceso: solo lectura
-
Calificadores: MappingStrings ("Win32API| Estructuras de servicio | SERVICE_STATUS|dwWaitHint"), DisplayName ("Tiempo de espera estimado")
Tiempo estimado necesario, en milisegundos, para una operación de inicio, detención, pausa o continuación pendientes. Una vez transcurrido el tiempo especificado, el servicio realiza su siguiente llamada al método SetServiceStatus con un valor de CheckPoint incrementado o un cambio en CurrentState. Si la cantidad de tiempo especificada por WaitHint pasa y CheckPoint no se ha incrementado o CurrentState no ha cambiado, el administrador de control de servicio o el programa de control de servicio asume que se ha producido un error.
Comentarios
La clase Win32_Service se deriva de Win32_BaseService.
La forma en que administra un equipo específico depende en gran medida del rol que desempeña el equipo. Por ejemplo, por lo general, se supervisan diferentes aspectos de un servidor DNS que un servidor DHCP. Aunque ninguna propiedad única puede indicar si un equipo determinado es un servidor de bases de datos, un servidor de correo electrónico o un servidor multimedia, a menudo puede identificar el rol que desempeña un equipo mediante la identificación de los servicios instalados en él.
En organizaciones grandes, es probable que solo se instale uno de los principales servicios (como el correo electrónico) en un solo equipo. Sería inusual que un servidor de correo también funcione como servidor para los archivos del reproductor de tecnologías de Microsoft® Windows Media®. Por este motivo, identificar un servicio instalado en un equipo puede ayudar a identificar el rol del equipo en la red. Si el servicio microsoft® Exchange Server está instalado y en ejecución en un equipo, generalmente es seguro suponer que este equipo funciona como servidor de correo.
Puede usar la clase Win32_Service WMI para enumerar los servicios instalados en un equipo. Además, puede usar esta clase para determinar si esos servicios se están ejecutando actualmente y devolver cualquier otra información necesaria sobre ese servicio y cómo se ha configurado.
Una aplicación de servicio se ajusta a las reglas de interfaz del Administrador de control de servicios (SCM) y puede iniciarse automáticamente por un usuario al iniciar el sistema a través de la utilidad del panel de control Servicios o mediante una aplicación que usa las funciones de servicio incluidas en la API de Windows. Los servicios pueden iniciarse cuando no haya usuarios que inicien sesión en el equipo.
Un usuario que se conecta desde un equipo remoto debe tener habilitado el privilegio SC_MANAGER_CONNECT para poder enumerar esta clase. Para obtener más información, consulte Derechos de acceso y seguridad del servicio.
Ejemplos
La consulta PS-WMI que devuelve el servicio "Estado" en un grupo de dispositivos de ejemplo de PowerShell en la Galería de TechNet usa Win32_Service para crear una lista de dispositivos desde Active Directory y, a continuación, consultar cada dispositivo que responda con ping para que se ejecute un servicio específico.
El ejemplo de PowerShell de informes del servidor en la Galería de TechNet usa Win32_Service para recopilar información del servidor y publicar en Word documento.
En el ejemplo de código vbScript siguiente se muestran todos los servicios instalados actualmente.
for each Service in _
GetObject("winmgmts:").InstancesOf ("Win32_Service")
WScript.Echo ""
WScript.Echo Service.Name
description = Service.Description
if IsNull(description) then description = "<No description>"
pathName = Service.PathName
if IsNull(pathName) then pathName = "<No path>"
startName = Service.StartName
if IsNull(startName) then startName = "<None>"
WScript.Echo " Description: ", description
WScript.Echo " Executable: ", pathName
WScript.Echo " Status: ", Service.Status
WScript.Echo " State: ", Service.State
WScript.Echo " Start Mode: ", Service.StartMode
Wscript.Echo " Start Name: ", startName
next
En el ejemplo de código vbScript siguiente se describen los servicios en pausa, en ejecución y detenidos en el equipo especificado.
On Error Resume Next
StateString = "Paused,Running,Stopped"
StateArray = Split(StateString, ",", -1, 1)
ComputerName = InputBox("Enter the computer name", "List Service", "localhost")
For x = 0 to Ubound (StateArray)
Set Services = GetObject("winmgmts:\\" & ComputerName & "\Root\CIMv2").ExecQuery("SELECT * FROM Win32_Service where State='" & StateArray(x) & "'")
For Each Service in Services
SList = SList & Service.Name & VBlf
Next
WScript.Echo StateArray(x) & " Services: " & VBlf & SList
SList = ""
Next
El siguiente script de Perl muestra cómo recuperar una lista de servicios en ejecución de instancias de Win32_Service.
use strict;
use Win32::OLE;
my ( $ServiceSet, $Service );
eval { $ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
ExecQuery("SELECT * FROM Win32_Service WHERE State=\"Running\""); };
unless ($@)
{
print "\n";
foreach $Service (in $ServiceSet)
{
print $Service->{Name}, "\n";
if( $Service->{Description} )
{
print " $Service->{Description}\n";
}
else
{
print " <No description>\n";
}
print " Process ID: ", $Service->{ProcessId}, "\n";
print " Start Mode: ", $Service->{StartMode}, "\n";
print "\n";
}
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
En el ejemplo de c# siguiente se usa Microsoft.Management.Infrastructure para recuperar todos los servicios en ejecución en el equipo local.
static void QueryInstanceFunc()
{
CimSession session = CimSession.Create("localHost");
IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_Service");
foreach (CimInstance cimObj in queryInstance)
{
Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString());
Console.WriteLine(cimObj.CimInstanceProperties["State"].ToString());
Console.WriteLine(cimObj.CimInstanceProperties["Status"].ToString());
//Console.WriteLine(cimObj.CimInstanceProperties["NetworkAddress"].ToString());
Console.WriteLine();
}
Console.ReadLine();
}
En el ejemplo de código de C# siguiente se usa el espacio de nombres System.Management para recuperar todos los servicios en ejecución en el equipo local.
Nota
System.Management contiene las clases originales utilizadas para acceder a WMI; sin embargo, se consideran más lentos y, por lo general, no se escalan, así como sus homólogos de Microsoft.Management.Infrastructure .
using System.Management;
...
static void oldSchoolQueryInstanceFunc()
{
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Service");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementObject m in queryCollection)
{
Console.WriteLine("ServiceName : {0}", m["Name"]);
Console.WriteLine("State : {0}", m["State"]);
Console.WriteLine("Status : {0}", m["Status"]);
Console.WriteLine();
}
Console.ReadLine();
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Espacio de nombres |
Root\CIMV2 |
MOF |
|
Archivo DLL |
|
Consulte también