Condividi tramite


Metodo Delete della classe Win32_Service (Servizi Desktop remoto)

Il metodo di classe DeleteWMI elimina un servizio esistente.

Questo argomento usa la sintassi MOF (Managed Object Format). Per altre informazioni sull'uso di questo metodo, vedere Chiamata di un metodo.

Sintassi

uint32 Delete();

Parametri

Questo metodo non presenta parametri.

Valore restituito

Restituisce uno dei valori elencati nell'elenco seguente o qualsiasi altro valore per indicare un errore. Per altri codici di errore, vedere Costanti di errore WMI o WbemErrorEnum. Per i valori HRESULT generali, vedere Codici di errore di sistema.

0

La richiesta è stata accettata.

1

La richiesta non è supportata.

2

L'utente non ha avuto l'accesso necessario.

3

Impossibile arrestare il servizio perché altri servizi in esecuzione dipendono dal servizio.

4

Il codice di controllo richiesto non è valido o non è accettabile per il servizio.

5

Impossibile inviare il codice di controllo richiesto al servizio perché lo stato del servizio (Win32_BaseService. Proprietà state ) è uguale a 0, 1 o 2.

6

Il servizio non è stato avviato.

7

Il servizio non ha risposto in tempo utile alla richiesta di avvio.

8

Errore sconosciuto durante l'avvio del servizio.

9

Non è stato trovato il percorso della directory del file eseguibile del servizio.

10

Il servizio è già in esecuzione.

11

Il database a cui aggiungere il nuovo servizio è bloccato.

12

Una dipendenza da questo servizio si basa su è stata rimossa dal sistema.

13

Impossibile trovare un servizio dipendente necessario.

14

Il servizio è stato disabilitato dal sistema.

15

Il servizio non dispone delle credenziali di autenticazione corrette per l'esecuzione nel sistema.

16

Questo servizio viene rimosso dal sistema.

17

Il servizio non ha alcun thread di esecuzione.

18

Il servizio ha dipendenze circolari all'avvio.

19

Un servizio è in esecuzione con lo stesso nome.

20

Il nome del servizio ha caratteri non validi.

21

I parametri non validi sono stati passati al servizio.

22

L'account in cui viene eseguito questo servizio non è valido o non dispone delle autorizzazioni per l'esecuzione del servizio.

23

Il servizio esiste già nel database dei servizi disponibili dal sistema.

24

Il servizio è attualmente sospeso nel sistema.

Commenti

Quando l'organizzazione cambia, è possibile decidere di rimuovere determinati servizi da determinati computer. I servizi interni e di terze parti possono essere rimossi tramite WMI, mentre i servizi del sistema operativo possono essere rimossi tramite Sysocmgr.exe.

Quando si prepara a rimuovere i servizi, tenere presenti le informazioni seguenti:

  • I servizi devono essere arrestati prima di rimuoverli. Se il servizio viene eseguito quando si esegue il comando di eliminazione, il servizio viene contrassegnato per l'eliminazione, ma continua a essere eseguito finché non viene arrestato e tutti gli handle aperti vengono chiusi.

    Se il servizio non viene mai arrestato, tale servizio non verrà mai eliminato.

  • La rimozione di un servizio non rimuove il file eseguibile del servizio.

    La rimozione di un servizio tramite WMI elimina le voci del Registro di sistema correlate in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Di conseguenza, il servizio non è più installato e non è disponibile tramite lo snap-in Servizi. Tuttavia, WMI non elimina il file eseguibile, ovvero è possibile reinstallare facilmente il servizio. Per eliminare il file eseguibile, è necessario recuperare il nome del percorso e quindi eliminare il file.

  • La rimozione di un servizio Windows 2000 di base (ad esempio DHCP) tramite WMI elimina le voci del Registro di sistema per tale servizio, ma non rimuove il collegamento dal menu Strumenti di amministrazione o rimuove il servizio dalla Creazione guidata componenti di Windows. Ciò può confondere chiunque tenta di determinare come è stato configurato il computer.

    Ad esempio, se si rimuove il servizio DHCP usando uno script WMI, il servizio DHCP non è più elencato nello snap-in Servizi. Tuttavia, un collegamento non funzionante alla console DHCP rimane nel menu Strumenti di amministrazione e, se si avvia La creazione guidata componente di Windows, indica che il servizio DHCP è installato.

    A causa di questo, è sempre consigliabile usare Sysocmgr.exe per rimuovere i servizi Windows 2000 a livello di codice.

Esempio

L'esempio di codice VBScript seguente descrive come eliminare un servizio.

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

L'esempio di codice Perl seguente descrive come eliminare un servizio.

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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Spazio dei nomi
Root\CIMv2\TerminalServices
MOF
TSCfgWmi.mof
DLL
TSCfgWmi.dll

Vedi anche

Win32_Service

Classi del sistema operativo

Win32_TerminalService

Attività WMI: Servizi