Win32_Service-Klasse

Die Win32_ServiceWMI-Klasse stellt einen Dienst auf einem Computersystem mit Windows dar.

Die folgende Syntax wurde aus MOF-Code (Managed Object Format, verwaltetes Objektformat) vereinfacht und enthält alle geerbten Eigenschaften. Eigenschaften und Methoden sind in alphabetischer Reihenfolge und nicht in MOF-Reihenfolge angeordnet.

Syntax

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

Member

Die Win32_Service-Klasse verfügt über folgende Membertypen:

Methoden

Die Win32_Service-Klasse verfügt über diese Methoden.

Methode BESCHREIBUNG
Veränderung Ändert einen Dienst.
ChangeStartMode Ändert den Startmodus eines Diensts.
Erstellen Erstellt einen neuen Dienst.
Löschen Löscht einen vorhandenen Dienst.
GetSecurityDescriptor Gibt den Sicherheitsdeskriptor zurück, der den Zugriff auf den Dienst steuert.
InterrogateService Fordert an, dass ein Dienst seinen Status an den Dienst-Manager aktualisiert.
PauseService Versucht, einen Dienst in den angehaltenen Zustand zu versetzen.
ResumeService Versucht, einen Dienst im fortgesetzten Zustand zu platzieren.
SetSecurityDescriptor Schreibt eine aktualisierte Version des Sicherheitsdeskriptors, der den Zugriff auf den Dienst steuert.
Startservice Versucht, einen Dienst in den Startzustand zu versetzen.
StopService Versetzt einen Dienst in den Status Beendet.
UserControlService Versucht, einen benutzerdefinierten Steuerelementcode an einen Dienst zu senden.

 

Eigenschaften

Die Win32_Service-Klasse verfügt über diese Eigenschaften.

AcceptPause

Datentyp: boolean

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS|dwControlsAccepted| SERVICE_ACCEPT_PAUSE_CONTINUE"), DisplayName ("Dienst akzeptiert Pause")

Gibt an, ob der Dienst angehalten werden kann.

Diese Eigenschaft wird von Win32_BaseService geerbt.

AcceptStop

Datentyp: boolean

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS|dwControlsAccepted| SERVICE_ACCEPT_STOP"), DisplayName ("Service akzeptiert Stop")

Gibt an, ob der Dienst beendet werden kann.

Diese Eigenschaft wird von Win32_BaseService geerbt.

Caption

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: MaxLen (64), DisplayName ("Caption")

Kurzbeschreibung des Diensts – eine einzeilige Zeichenfolge.

Diese Eigenschaft wird von CIM_ManagedSystemElement geerbt.

Prüfpunkt

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS|dwCheckPoint"), DisplayName ("Check Point Count")

Wert, der vom Dienst in regelmäßigen Abständen erhöht wird, um seinen Fortschritt während eines langen Start-, Stopp-, Pausen- oder Fortsetzungsvorgangs zu melden. Beispielsweise erhöht der Dienst diesen Wert, wenn er beim Starten jeden Schritt seiner Initialisierung abschließt. Das Benutzeroberflächenprogramm, das den Vorgang für den Dienst aufruft, verwendet diesen Wert, um den Fortschritt des Diensts während eines längeren Vorgangs nachzuverfolgen. Dieser Wert ist ungültig und sollte null sein, wenn der Dienst keinen Start-, Stopp-, Pausen- oder Fortsetzungsvorgang aussteht.

CreationClassName

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: CIM_Key, DisplayName ("Klassenname")

Name der ersten konkreten Klasse, die in der Vererbungskette angezeigt wird, die bei der Erstellung eines instance verwendet wird. Bei Verwendung mit den anderen Schlüsseleigenschaften der -Klasse ermöglicht diese Eigenschaft die eindeutige Identifizierung aller Instanzen dieser Klasse und ihrer Unterklassen.

Diese Eigenschaft wird von CIM_Service geerbt.

DelayedAutoStart

Datentyp: boolean

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_DELAYED_AUTO_START_INFO|fDelayedAutostart"), DisplayName ("Verzögerter automatischer Start")

True gibt an, dass der Dienst gestartet wird, nachdem andere Dienste für den automatischen Start und eine kurze Verzögerung gestartet wurden.

Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008 und Windows Vista: Diese Eigenschaft wird vor Windows Server 2016 und Windows 10 .

Beschreibung

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: DisplayName ("Description")

Eine Beschreibung des Objekts.

Diese Eigenschaft wird von CIM_ManagedSystemElement geerbt.

DesktopInteract

Datentyp: boolean

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| QUERY_SERVICE_CONFIG|dwServiceType| SERVICE_INTERACTIVE_PROCESS"), DisplayName ("Interagiert mit Desktop")

Gibt an, ob der Dienst Fenster auf dem Desktop erstellen oder mit ihnen kommunizieren kann und somit in irgendeiner Weise mit einem Benutzer interagieren kann. Interaktive Dienste müssen unter dem Lokalen Systemkonto ausgeführt werden. Die meisten Dienste sind nicht interaktiv; Das heißt, sie kommunizieren in keiner Weise mit dem Benutzer.

Diese Eigenschaft wird von Win32_BaseService geerbt.

DisplayName

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| QUERY_SERVICE_CONFIG|lpDisplayName"), DisplayName ("Anzeigename")

Name des Diensts, wie im Snap-In Dienste angezeigt. Die maximale Länge der Zeichenfolge beträgt 256 Zeichen. Beachten Sie, dass der Anzeigename und der Dienstname (der in der Registrierung gespeichert ist) nicht immer identisch sind. Der DHCP-Clientdienst hat beispielsweise den Dienstnamen Dhcp, aber den Anzeigenamen DHCP-Client. Der Name wird im Dienststeuerungs-Manager beibehalten. Bei DisplayName-Vergleichen wird jedoch immer die Groß-/Kleinschreibung nicht beachtet.

Einschränkung: Akzeptiert denselben Wert wie die Name-Eigenschaft .

Beispiel: "Atdisk"

Diese Eigenschaft wird von Win32_BaseService geerbt.

ErrorControl

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| QUERY_SERVICE_CONFIG|dwErrorControl"), DisplayName ("Schweregrad des Startfehlers")

Schweregrad des Fehlers, wenn dieser Dienst während des Startvorgangs nicht gestartet werden kann. Der Wert gibt die Aktion des Startprogramms an, wenn ein Fehler auftritt. Alle Fehler werden vom Computersystem protokolliert.

Ignorieren ("Ignorieren")

Der Benutzer wird nicht benachrichtigt.

Normal ("Normal")

Der Benutzer wird benachrichtigt. In der Regel ist dies ein Meldungsfeld, das den Benutzer über das Problem benachrichtigt.

Schwer ("Schwer")

Das System wird mit der letzten bekannten, fehlerfreien Konfiguration neu gestartet.

Kritisch ("Kritisch")

Das System versucht, mit einer fehlerfreien Konfiguration zu neu starten. Wenn der Dienst ein zweites Mal nicht gestartet werden kann, schlägt der Start fehl.

Unbekannt ("Unbekannt")

Der Schweregrad des Fehlers ist unbekannt.

Diese Eigenschaft wird von Win32_BaseService geerbt.

ExitCode

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS|dwWin32ExitCode"), DisplayName ("Exitcode")

Windows-Fehlercode, der Fehler definiert, die beim Starten oder Beenden des Diensts auftreten. Diese Eigenschaft wird auf ERROR_SERVICE_SPECIFIC_ERROR (1066) festgelegt, wenn der Fehler in Bezug auf den Dienst eindeutig ist, der durch diese Klasse repräsentiert wird, und Informationen zu dem Fehler stehen in der ServiceSpecificExitCode -Eigenschaft zur Verfügung. Der Dienst legt diesen Wert bei der Ausführung auf NO_ERROR und bei normaler Beendigung erneut fest.

Diese Eigenschaft wird von Win32_BaseService geerbt.

InstallDate

Datentyp: datetime

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Installationsdatum")

Datumsobjekt wird installiert. Diese Eigenschaft erfordert keinen Wert, um anzugeben, dass das Objekt installiert ist.

Diese Eigenschaft wird von CIM_ManagedSystemElement geerbt.

Name

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Qualifizierer: Schlüssel

Eindeutiger Bezeichner des Diensts, der einen Hinweis auf die verwaltete Funktionalität bietet. Diese Funktionalität wird in der Description-Eigenschaft des -Objekts beschrieben.

Diese Eigenschaft wird von CIM_ManagedSystemElement geerbt.

PathName

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| QUERY_SERVICE_CONFIG|lpBinaryPathName"), DisplayName ("Dateipfadname")

Vollqualifizierter Pfad zur Dienst-Binärdatei, die den Dienst implementiert.

Beispiel: "\SystemRoot\System32\drivers\afd.sys"

Diese Eigenschaft wird von Win32_BaseService geerbt.

Processid

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS_PROCESS|dwProcessId"), DisplayName ("Prozess-ID")

Prozessbezeichner des Diensts.

Beispiel: 324

ServiceSpecificExitCode

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS|dwServiceSpecificExitCode"), DisplayName ("Serverspezifischer Exitcode")

Dienstspezifischer Fehlercode für Fehler, die auftreten, während der Dienst entweder gestartet oder beendet wird. Die Exitcodes werden durch den dienst definiert, der von dieser Klasse dargestellt wird. Dieser Wert wird nur festgelegt, wenn der ExitCode-EigenschaftswertERROR_SERVICE_SPECIFIC_ERROR (1066) ist.

Diese Eigenschaft wird von Win32_BaseService geerbt.

Servicetype

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| QUERY_SERVICE_CONFIG|dwServiceType"), DisplayName ("Diensttyp")

Der für aufrufende Prozesse bereitgestellte Diensttyp.

Die Werte sind:

Kerneltreiber ("Kerneltreiber")

Dateisystemtreiber ("Dateisystemtreiber")

Adapter ("Adapter")

Erkennungstreiber ("Erkennungstreiber")

Eigener Prozess ("Eigener Prozess")

Freigabeprozess ("Freigabeprozess")

Interaktiver Prozess ("Interaktiver Prozess")

Diese Eigenschaft wird von Win32_BaseService geerbt.

Started

Datentyp: Boolesch

Zugriffstyp: Schreibgeschützt

Qualifizierer: DisplayName ("Started")

Gibt an, ob der Dienst gestartet wurde.

Diese Eigenschaft wird von CIM_Service geerbt.

StartMode

Datentyp: Zeichenfolge

Zugriffstyp: Schreibgeschützt

Qualifizierer: DisplayName ("Startmodus")

Startmodus des Windows-Basisdiensts.

Start ("Boot")

Gerätetreiber, der vom Betriebssystemladeprogramm gestartet wurde (gilt nur für Treiberdienste).

System ("System")

Der Gerätetreiber wurde vom Initialisierungsprozess des Betriebssystems gestartet. Dieses Wert ist nur für Treiberdienste gültig.

Auto ("Auto")

Der Dienst soll während des Systemstarts automatisch vom Dienstkontroll-Manager gestartet werden. Automatische Dienste werden auch dann gestartet, wenn sich ein Benutzer nicht anmeldet.

Manuell ("Manuell")

Dienst, der vom Dienststeuerungs-Manager gestartet werden soll, wenn ein Prozess die StartService-Methode aufruft. Diese Dienste werden erst gestartet, wenn sich ein Benutzer anmeldet und startet.

Deaktiviert ("Deaktiviert")

Dienst, der erst gestartet werden kann, wenn sein StartMode in Auto oder Manuell geändert wurde.

Diese Eigenschaft wird von CIM_Service geerbt.

StartName

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| QUERY_SERVICE_CONFIG|lpServiceStartName"), DisplayName ("Name des Startkontos")

Kontoname, unter dem ein Dienst ausgeführt wird. Je nach Diensttyp kann der Kontoname im Format "Domänenname\Benutzername" oder im UPN-Format ("Username@DomainName") vorliegen. Der Dienstprozess wird mit einem dieser beiden Formulare protokolliert, wenn er ausgeführt wird. Wenn das Konto zur integrierten Domäne gehört, kann ".\Username" angegeben werden. Bei Treibern auf Kernel- oder Systemebene enthält StartName den Namen des Treiberobjekts (d. h. "\FileSystem\Rdr" oder "\Driver\Xns"), das das E/A-System zum Laden des Gerätetreibers verwendet. Wenn NULL angegeben ist, wird der Treiber mit einem Standardobjektnamen ausgeführt, der vom E/A-System basierend auf dem Dienstnamen erstellt wird.

Beispiel: "DWDOM\Admin"

Diese Eigenschaft wird von Win32_BaseService geerbt.

State

Datentyp: string

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS|dwCurrentState "), DisplayName ("State")

Aktueller Status des Basisdiensts.

Die Werte sind:

Beendet ("Beendet")

Start ausstehend ("Start ausstehend")

Ausstehend beenden ("Ausstehend")

Wird ausgeführt ("Wird ausgeführt")

Weiter ausstehend ("Weiter ausstehend")

Anhalten ausstehend ("Anhalten ausstehend")

Angehalten ("Angehalten")

Unbekannt ("Unbekannt")

Windows Server 2008 und Windows Vista: Diese Eigenschaft ist vor Windows 7 und Windows Server 2008 R2 schreibgeschützt.

Diese Eigenschaft wird von Win32_BaseService geerbt.

Status

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: MaxLen (10), DisplayName ("Status")

Aktuelle status des Objekts. Es können verschiedene betriebsbezogene und nicht operative Status definiert werden. Zu den Betriebsstatus gehören: "OK", "Heruntergestuft" und "Pred Fail" (ein Element, z. B. eine SMART-fähige Festplatte, funktioniert möglicherweise ordnungsgemäß, sagt aber in naher Zukunft einen Fehler voraus). Zu den nicht betriebsbereiten Status gehören: "Fehler", "Wird gestartet", "Wird beendet" und "Dienst". Letzteres, "Dienst", kann beim Spiegel-Resilvering eines Datenträgers, beim Erneutladen einer Benutzerberechtigungsliste oder bei anderen administrativen Aufgaben gelten. Nicht alle derartigen Arbeiten sind online, aber das verwaltete Element ist weder "OK" noch in einem der anderen Zustände.

Diese Eigenschaft wird von CIM_ManagedSystemElement geerbt.

Die Werte sind:

OK ("OK")

Fehler ("Fehler")

Degraded ("Degraded")

Unbekannt ("Unbekannt")

Pred Fail ("Pred Fail")

Wird gestartet ("Wird gestartet")

Beenden ("Wird beendet")

Dienst ("Dienst")

Gestresst ("Gestresst")

NonRecover ("NonRecover")

Kein Kontakt ("Kein Kontakt")

Lost Comm ("Lost Comm")

SystemCreationClassName

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: Propagiert ("CIM_System. CreationClassName"), CIM_Key, DisplayName ("Systemklassenname")

Geben Sie den Namen des Systems ein, das diesen Dienst hostet.

Diese Eigenschaft wird von CIM_Service geerbt.

Systemname

Datentyp: string

Zugriffstyp: Schreibgeschützt

Qualifizierer: Propagiert ("CIM_System. Name"), CIM_Key, DisplayName ("Systemname")

Name des Systems, das diesen Dienst hostet.

Diese Eigenschaft wird von CIM_Service geerbt.

TagId

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| QUERY_SERVICE_CONFIG|dwTagId"), DisplayName ("Tag-ID")

Eindeutiger Tagwert für diesen Dienst in der Gruppe. Der Wert 0 (null) gibt an, dass der Dienst über kein Tag verfügt. Ein Tag kann verwendet werden, um den Dienststart innerhalb einer Ladereihenfolgegruppe zu bestellen, indem ein Tagreihenfolgevektor in der Registrierung unter angegeben wird:

HKEY_LOCAL_MACHINE\System\Currentcontrolset\Steuerung\    GroupOrderList

Tags werden nur für Startdienste vom Kerneltreiber und Dateisystemtreiber ausgewertet, die über start- oder Systemstartmodi verfügen.

Diese Eigenschaft wird von Win32_BaseService geerbt.

WaitHint

Datentyp: uint32

Zugriffstyp: Schreibgeschützt

Qualifizierer: MappingStrings ("Win32API| Dienststrukturen| SERVICE_STATUS|dwWaitHint"), DisplayName ("Geschätzte Wartezeit")

Geschätzte Zeit in Millisekunden für einen ausstehenden Start-, Stopp-, Pausen- oder Fortsetzungsvorgang. Nachdem die angegebene Zeit verstrichen ist, führt der Dienst den nächsten Aufruf der SetServiceStatus-Methode mit einem inkrementierten CheckPoint-Wert oder einer Änderung in CurrentState durch. Wenn die von WaitHint angegebene Zeitspanne verstrichen ist und CheckPoint nicht erhöht wurde oder CurrentState sich nicht geändert hat, geht der Dienststeuerungs-Manager oder das Dienststeuerungsprogramm davon aus, dass ein Fehler aufgetreten ist.

Bemerkungen

Die Win32_Service-Klasse wird von Win32_BaseService abgeleitet.

Die Art und Weise, wie Sie einen bestimmten Computer verwalten, hängt stark von der Rolle ab, die dieser Computer spielt. Beispielsweise überwachen Sie im Allgemeinen andere Aspekte eines DNS-Servers als ein DHCP-Server. Obwohl keine einzelne Eigenschaft Ihnen sagen kann, ob ein bestimmter Computer ein Datenbankserver, ein E-Mail-Server oder ein Multimediaserver ist, können Sie häufig die Rolle eines Computers identifizieren, indem Sie die darauf installierten Dienste identifizieren.

In großen Organisationen ist wahrscheinlich nur einer der wichtigsten Dienste (z. B. E-Mail) auf einem einzelnen Computer installiert. Es wäre ungewöhnlich, dass ein E-Mail-Server auch als Server für Microsoft® Windows Media® Technologies Player-Dateien ausgeführt wird. Aus diesem Fall kann die Identifizierung eines auf einem Computer installierten Diensts helfen, die Rolle des Computers im Netzwerk zu identifizieren. Wenn der Microsoft® Exchange Server-Dienst installiert ist und auf einem Computer ausgeführt wird, kann im Allgemeinen davon ausgegangen werden, dass dieser Computer als E-Mail-Server fungiert.

Sie können die WMI-klasse Win32_Service verwenden, um die auf einem Computer installierten Dienste aufzulisten. Darüber hinaus können Sie diese Klasse verwenden, um zu bestimmen, ob diese Dienste derzeit ausgeführt werden, und um alle anderen erforderlichen Informationen zu diesem Dienst und seiner Konfiguration zurückzugeben.

Eine Dienstanwendung entspricht den Schnittstellenregeln des Dienststeuerungs-Managers (Service Control Manager, SCM) und kann von einem Benutzer automatisch beim Systemstart über das Dienst-Systemsteuerungsprogramm oder durch eine Anwendung gestartet werden, die die in der Windows-API enthaltenen Dienstfunktionen verwendet. Dienste können gestartet werden, wenn keine Benutzer am Computer angemeldet sind.

Ein Benutzer, der von einem Remotecomputer aus eine Verbindung herstellt, muss die berechtigung SC_MANAGER_CONNECT aktiviert sein, um diese Klasse auflisten zu können. Weitere Informationen finden Sie unter Dienstsicherheit und Zugriffsrechte.

Beispiele

Die PS-WMI-Abfrage, die den Dienst "State" auf einer Gruppe von Geräten zurückgibt PowerShell-Beispiel im TechNet-Katalog verwendet Win32_Service , um eine Liste von Geräten aus Active Directory zu erstellen und dann jedes Gerät abzufragen, das mit Ping für einen bestimmten ausgeführten Dienst antwortet.

Das PowerShell-Beispiel für Serverberichte im TechNet-Katalog verwendet Win32_Service, um Serverinformationen zu sammeln und in Word Dokument zu veröffentlichen.

Im folgenden VBScript-Codebeispiel werden alle derzeit installierten Dienste angezeigt.

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

Im folgenden VBScript-Codebeispiel werden die angehaltenen, ausgeführten und beendeten Dienste auf dem angegebenen Computer beschrieben.

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

Das folgende Perl-Skript veranschaulicht, wie eine Liste der ausgeführten Dienste aus Instanzen von Win32_Service abgerufen wird.

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

Im folgenden c#-Beispiel wird Microsoft.Management.Infrastructure verwendet, um alle ausgeführten Dienste auf dem lokalen Computer abzurufen.

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();
        }
    

Im folgenden C#-Codebeispiel wird der System.Management-Namespace verwendet, um alle ausgeführten Dienste auf dem lokalen Computer abzurufen.

Hinweis

System.Management enthält die ursprünglichen Klassen, die für den Zugriff auf WMI verwendet wurden. Sie gelten jedoch als langsamer und skalieren im Allgemeinen nicht so gut wie ihre Microsoft.Management.Infrastructure-Entsprechungen .

 

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();


        }

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
WindowsServer 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Siehe auch

Win32_BaseService

Betriebssystemklassen

WMI-Aufgaben: Dienste