Impostazione della sicurezza del processo dell'applicazione client
Le applicazioni client che chiamano interfacce WMI possono controllare i livelli di sicurezza dei processi. Tutte le applicazioni WMI accedono a WMI tramite COM ed è possibile chiamare la funzione COM CoInitializeSecurity per impostare la sicurezza per i processi. Le applicazioni che emettono chiamate asincrone a WMI e alle applicazioni che si registrano come consumer di eventi impostano i livelli di sicurezza nella chiamata a WMI.
Se non si effettua una chiamata esplicita a CoInitializeSecurity, COM lo chiama in modo implicito con i valori del Registro di sistema. Tuttavia, i valori del Registro di sistema possono avere impostazioni inferiori per la rappresentazione e l'autenticazione che non forniscono la sicurezza necessaria per WMI. Per altre informazioni, vedere Impostazione del livello di sicurezza del processo predefinito tramite C++.
L'accesso asincrono a WMI non è consigliato. Un callback asincrono consente a un utente non autenticato di fornire dati al sink. Ciò comporta rischi per la sicurezza per gli script e le applicazioni. Per eliminare i rischi, usare la comunicazione semisynchrono o sincrona o eseguire controlli di accesso appropriati nell'applicazione client. Per altre informazioni, vedere Chiamata di un metodo.
Le chiamate a uno qualsiasi dei proxy WMI (IWbemServices, IEnumWbemClassObject,IWbemCallResult o IWbemRefresher) usano un puntatore out-of-process. Per altre informazioni sulle impostazioni predefinite e sulle raccomandazioni, vedere Impostazione della sicurezza in IWbemServices e altri proxy.
La procedura seguente descrive i passaggi da eseguire per impostare la sicurezza per WMI nel processo dell'applicazione.
Per impostare la sicurezza per WMI nel processo dell'applicazione
- Determinare i livelli di sicurezza necessari per i sistemi operativi Windows in cui viene eseguita l'applicazione client.
- Chiamare la funzione COM CoInitializeSecurity per impostare la sicurezza predefinita per il processo in cui viene eseguita l'applicazione client. In questo modo viene dichiarato il livello di sicurezza richiesto da altre applicazioni per accedere al processo in cui viene eseguita l'applicazione.
- Se è necessario modificare la sicurezza in un singolo proxy, ad esempio in un'altra chiamata a IWbemServices, chiamare CoSetProxyBlanket.
- Se è necessario controllare l'hardware remoto o un oggetto di sistema che richiede più privilegi, usare la funzione AdjustTokenPrivileges per abilitare i privilegi necessari. Si noti che non è possibile abilitare un privilegio a cui il processo non è già stato assegnato. Per altre informazioni, vedere Controllo dell'accesso agli oggetti privati.
Per altre informazioni sull'impostazione del livello di sicurezza del processo predefinito, vedere Impostazione del livello di sicurezza del processo predefinito tramite C++ e Impostazione del livello di sicurezza del processo predefinito tramite VBScript.