Proprietà SWbemSecurity.ImpersonationLevel

La proprietà ImpersonationLevel è un intero che definisce il livello di rappresentazione COM assegnato a questo oggetto. Questa impostazione determina se i processi di proprietà di Strumentazione gestione Windows (WMI) possono rilevare o usare le credenziali di sicurezza durante l'esecuzione di chiamate ad altri processi. Per altre informazioni sui livelli di rappresentazione, vedere Impostazione Client_Application_Process Sicurezza.

Se non si imposta il livello di rappresentazione in modo specifico in un moniker o impostando la proprietà SWBemSecurity.ImpersonationLevel in un oggetto a protezione diretta, WMI imposta il livello di rappresentazione predefinito sul valore specificato nella chiave del Registro di sistema di rappresentazione predefinita. Se questa impostazione non è sufficiente, il provider non esegue il servizio della richiesta e la chiamata all'API WMI può non riuscire con un codice di errore di wbemErrAccessDenied (2147749891/0x80041003).

Per una spiegazione di questa sintassi, vedere Convenzioni di documento per l'API scripting.

Si tratta di una proprietà di lettura/scrittura.

Sintassi

SWbemSecurity.ImpersonationLevel As Integer

Valore proprietà

Commenti

Come livello di rappresentazione DCOM, questa proprietà può essere impostata su uno dei valori seguenti:

Valore Descrizione
Anonimo Nasconde le credenziali del chiamante. WMI non supporta effettivamente questo livello di rappresentazione; se uno script specifica impersonationLevel=Anonymous, WMI aggiornerà in modo automatico il livello di rappresentazione a Identificare. Questo è in alcuni modi un esercizio senza significato, tuttavia, perché gli script che usano il livello Di identificazione potrebbero non riuscire.
Identificare Consente agli oggetti di eseguire query sulle credenziali del chiamante. Gli script che usano questo livello di rappresentazione potrebbero non riuscire; il livello Di identificazione consente in genere di non eseguire più di controllare gli elenchi di controllo di accesso. Non sarà possibile eseguire script su computer remoti usando Identificazione.
Impersonate Consente agli oggetti di usare le credenziali del chiamante. È consigliabile usare questo livello di rappresentazione con script WMI. Quando si esegue questa operazione, lo script WMI userà le credenziali utente; di conseguenza, sarà in grado di eseguire tutte le attività che è possibile eseguire.
Delegato Consente agli oggetti di consentire ad altri oggetti di usare le credenziali del chiamante. La delega consente a uno script di usare le credenziali in un computer remoto e quindi consente al computer remoto di usare le credenziali in un altro computer remoto. Anche se è possibile usare questo livello di rappresentazione all'interno di script WMI, è consigliabile farlo solo se necessario perché potrebbe rappresentare un rischio di sicurezza.
Non è possibile usare il livello di rappresentazione delegato a meno che tutti gli account utente e gli account computer coinvolti nella transazione siano stati contrassegnati come Attendibili per la delega in Active Directory. Ciò consente di ridurre al minimo i rischi di sicurezza. Anche se un computer remoto può usare le credenziali, può farlo solo se entrambi i computer coinvolti nella transazione sono attendibili per la delega.

Come indicato, la rappresentazione anonima nasconde le credenziali e Identifica consente a un oggetto remoto di eseguire query sulle credenziali, ma l'oggetto remoto non può rappresentare il contesto di sicurezza. In altre parole, anche se l'oggetto remoto sa chi sei, non può "finta" essere tu. Gli script WMI che accedono ai computer remoti usando una di queste due impostazioni avranno in genere esito negativo. La maggior parte degli script eseguiti nel computer locale usando una di queste due impostazioni avrà esito negativo.

La rappresentazione consente al servizio WMI remoto di usare il contesto di sicurezza per eseguire l'operazione richiesta. Una richiesta WMI remota che usa l'impostazione Rappresentazione ha in genere esito positivo, purché le credenziali dispongano di privilegi sufficienti per eseguire l'operazione prevista. In altre parole, non è possibile usare WMI per eseguire un'azione (in remoto o in caso contrario) che non si dispone dell'autorizzazione per eseguire all'esterno di WMI.

L'impostazione di impersonationLevel su Delegate consente al servizio WMI remoto di passare le credenziali ad altri oggetti ed è in genere considerato un rischio di sicurezza.

È possibile impostare il livello di rappresentazione di un oggetto SWbemServices, SWbemObject,SWbemObjectSet, SWbemObjectPath e SwbemLocator impostando la proprietà ImpersonationLevel sul valore desiderato. Nell'esempio seguente viene illustrato come impostare il livello di rappresentazione per un oggetto SWbemObject :

objinstance.Security_.ImpersonationLevel = _
    wbemImpersonationLevelImpersonate

È anche possibile specificare i livelli di rappresentazione come parte di un moniker. Nell'esempio seguente viene impostato il livello di autenticazione e il livello di rappresentazione e viene recuperata un'istanza di Win32_Service.

Set objinst = GetObject("WinMgmts:{impersonationLevel=impersonate,"& _
                         "authenticationLevel=pktPrivacy}"& _
                         "!root/cimv2:Win32_service='ALERTER'")

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemSecurity
IID
IID_ISWbemSecurity

Vedi anche

SWbemSecurity

Impostazione della sicurezza Client_Application_Process

WbemImpersonationLevelEnum