Architettura di Controllo dell'account utente

Il diagramma seguente illustra in dettaglio l'architettura di Controllo dell'account utente.

Diagramma che descrive l'architettura di Controllo dell'account utente.

Utente

  • L'utente esegue un'operazione che richiede privilegi: se l'operazione modifica il file system o il Registro di sistema, viene chiamata la virtualizzazione. Tutte le altre operazioni chiamano ShellExecute.
  • ShellExecute: ShellExecute chiama CreateProcess. ShellExecute cerca l'errore ERROR_ELEVATION_REQUIRED da CreateProcess. Se riceve l'errore, ShellExecute chiama il servizio Application Information per tentare di eseguire l'attività richiesta con il prompt con privilegi elevati.
  • CreateProcess: se l'applicazione richiede l'elevazione, CreateProcess rifiuta la chiamata con ERROR_ELEVATION_REQUIRED.

System

  • Servizio Application Information:

    • Un servizio di sistema che consente di avviare app che richiedono uno o più privilegi elevati o diritti utente per l'esecuzione.
    • Il servizio Application Information consente di avviare tali app creando un nuovo processo per l'applicazione con il token di accesso completo di un utente amministratore quando è richiesta l'elevazione.
    • A seconda dei criteri configurati, l'utente potrebbe fornire il consenso.
  • Elevazione di un'installazione di ActiveX:

    • Se ActiveX non è installato, il sistema controlla il livello del dispositivo di scorrimento di Controllo dell'account utente.
    • Se ActiveX è installato, viene selezionata l'impostazione Controllo account utente: passare al desktop protetto quando viene richiesta l'elevazione Criteri di gruppo impostazione.
  • Controllare il livello del dispositivo di scorrimento controllo dell'account utente: Controllo dell'account utente ha un dispositivo di scorrimento da selezionare tra quattro livelli di notifica:

    • Invia sempre una notifica :
      • Notifica quando i programmi provano a installare il software o apportano modifiche al computer.
      • Notifica quando si apportano modifiche alle impostazioni di Windows.
      • Bloccare altre attività fino a quando non si risponde.
      • Consigliato se si installano spesso nuovi software o si visitano siti Web sconosciuti.
    • Invia una notifica solo quando i programmi tentano di apportare modifiche al computer :
      • Notifica quando i programmi provano a installare il software o apportano modifiche al computer.
      • Non inviare notifiche quando si apportano modifiche alle impostazioni di Windows.
      • Bloccare altre attività fino a quando non si risponde.
      • Consigliato se non si installano spesso app o si visitano siti Web sconosciuti.
    • Invia una notifica solo quando i programmi tentano di apportare modifiche al computer (non dim my desktop):
      • Notifica quando i programmi provano a installare il software o apportano modifiche al computer.
      • Non inviare notifiche quando si apportano modifiche alle impostazioni di Windows.
      • Non bloccare altre attività fino a quando non si risponde.
      • Non consigliato. Scegliere questa opzione solo se il desktop sul computer richiede molto tempo.
    • Non inviare mai una notifica (disabilita richieste di Controllo dell'account utente):
      • Non inviare notifiche quando i programmi tentano di installare software o apportare modifiche al computer.
      • Non inviare notifiche quando si apportano modifiche alle impostazioni di Windows.
      • Non bloccare altre attività fino a quando non si risponde.
      • Non consigliato a causa di problemi di sicurezza.
  • Desktop protetto abilitato: controllo dell'account utente: passare al desktop protetto quando viene richiesta l'impostazione dei criteri di elevazione dei privilegi :

    • Se il desktop protetto è abilitato, tutte le richieste di elevazione dei privilegi vengono inviate al desktop sicuro indipendentemente dalle impostazioni dei criteri di comportamento delle richieste per gli amministratori e gli utenti standard.
    • Se il desktop sicuro non è abilitato, tutte le richieste di elevazione dei privilegi vengono inviate al desktop dell'utente interattivo e vengono usate le impostazioni per utente per amministratori e utenti standard.
  • CreateProcess:

    • CreateProcess chiama il rilevamento di AppCompat, Fusion e Installer per valutare se l'app richiede l'elevazione.
    • Il file viene quindi controllato per determinare il livello di esecuzione richiesto, che viene archiviato nel manifesto dell'applicazione per il file.
    • CreateProcess ha esito negativo se il livello di esecuzione richiesto specificato nel manifesto non corrisponde al token di accesso e restituisce un errore (ERROR_ELEVATION_REQUIRED) a ShellExecute.
  • AppCompat:

    • Il database AppCompat archivia le informazioni nelle voci di correzione della compatibilità dell'applicazione per un'applicazione.
  • Fusione:

    • Il database Fusion archivia le informazioni dai manifesti dell'applicazione che descrivono le applicazioni.
    • Lo schema del manifesto viene aggiornato per aggiungere un nuovo campo a livello di esecuzione richiesto.
  • Rilevamento del programma di installazione:

    • Il rilevamento del programma di installazione rileva i file di installazione e consente di impedire l'esecuzione delle installazioni senza la conoscenza e il consenso dell'utente.

Chicco

  • Virtualizzazione: la tecnologia di virtualizzazione garantisce che le app non conformi non vengano eseguite o non riescano automaticamente in modo che la causa non possa essere determinata. Controllo dell'account utente fornisce anche la virtualizzazione dei file e del Registro di sistema e la registrazione per le applicazioni che scrivono in aree protette.
  • File system e registro: la virtualizzazione dei file e del Registro di sistema per utente reindirizza le richieste di scrittura di file e registro per computer a posizioni equivalenti per utente. Le richieste di lettura vengono reindirizzate prima al percorso virtualizzato per utente e al secondo percorso per computer.

Il dispositivo di scorrimento non disattiva mai completamente Controllo dell'account utente. Se lo si imposta su Non inviare mai una notifica, verrà:

  • Mantenere in esecuzione il servizio Controllo dell'account utente
  • Fare in modo che tutte le richieste di elevazione dei privilegi avviate dagli amministratori vengano approvate automaticamente senza visualizzare un prompt di Controllo dell'account utente
  • Nega automaticamente tutte le richieste di elevazione dei privilegi per gli utenti standard

Importante

Per disabilitare completamente Il controllo dell'account utente, è necessario disabilitare il criterio Controllo account utente: Eseguire tutti gli amministratori in modalità approvazione Amministrazione. Alcune app piattaforma UWP (Universal Windows Platform) potrebbero non funzionare quando Controllo dell'account utente è disabilitato.

Virtualizzazione

Poiché gli amministratori di sistema negli ambienti aziendali tentano di proteggere i sistemi, molte applicazioni line-of-business (LOB) sono progettate per usare solo un token di accesso utente standard. Di conseguenza, non è necessario sostituire la maggior parte delle app quando controllo dell'account utente è attivato.

Windows include la tecnologia di virtualizzazione dei file e del Registro di sistema per le app che non sono conformi al controllo dell'account utente e che richiedono un token di accesso di un amministratore per l'esecuzione corretta. Quando un'app amministrativa non conforme al controllo dell'account utente tenta di scrivere in una cartella protetta, ad esempio Programmi, Controllo dell'account utente offre all'app la propria visualizzazione virtualizzata della risorsa che sta tentando di modificare. La copia virtualizzata viene mantenuta nel profilo dell'utente. Questa strategia crea una copia separata del file virtualizzato per ogni utente che esegue l'app non conforme.

La maggior parte delle attività delle app funziona correttamente usando le funzionalità di virtualizzazione. Anche se la virtualizzazione consente l'esecuzione della maggior parte delle applicazioni, si tratta di una correzione a breve termine e non di una soluzione a lungo termine. Gli sviluppatori di app devono modificare le app in modo che siano conformi il prima possibile, anziché basarsi sulla virtualizzazione di file, cartelle e Registro di sistema.

La virtualizzazione non è un'opzione negli scenari seguenti:

  • La virtualizzazione non si applica alle app con privilegi elevati ed eseguite con un token di accesso amministrativo completo
  • La virtualizzazione supporta solo app a 32 bit. Le app a 64 bit nonlevate ricevono un messaggio di accesso negato quando tentano di acquisire un handle (un identificatore univoco) per un oggetto Windows. Le app native di Windows a 64 bit devono essere compatibili con Controllo dell'account utente e scrivere dati nelle posizioni corrette
  • La virtualizzazione è disabilitata se l'app include un manifesto dell'app con un attributo del livello di esecuzione richiesto

Livelli di esecuzione della richiesta

Un manifesto dell'app è un file XML che descrive e identifica gli assembly side-by-side condivisi e privati a cui un'app deve essere associata in fase di esecuzione. Il manifesto dell'app include voci per motivi di compatibilità delle app di Controllo dell'account utente. Le app amministrative che includono una voce nel manifesto dell'app richiedono all'utente l'autorizzazione per accedere al token di accesso dell'utente. Sebbene non contengano una voce nel manifesto dell'app, la maggior parte delle app amministrative può essere eseguita senza modifiche usando correzioni di compatibilità delle app. Le correzioni per la compatibilità delle app sono voci di database che consentono alle applicazioni non conformi al controllo dell'account utente di funzionare correttamente.

Tutte le app conformi a Controllo dell'account utente devono avere un livello di esecuzione richiesto aggiunto al manifesto dell'applicazione. Se l'applicazione richiede l'accesso amministrativo al sistema, contrassegnare l'app con un livello di esecuzione richiesto di require administrator garantisce che il sistema identifichi il programma come app amministrativa ed esegue i passaggi di elevazione necessari. I livelli di esecuzione richiesti specificano i privilegi necessari per un'app.

Tecnologia di rilevamento del programma di installazione

I programmi di installazione sono app progettate per distribuire software. La maggior parte dei programmi di installazione scrive nelle directory di sistema e nelle chiavi del Registro di sistema. Queste posizioni di sistema protette sono in genere scrivibili solo da un amministratore nella tecnologia di rilevamento del programma di installazione, il che significa che gli utenti standard non hanno accesso sufficiente per installare i programmi. Windows rileva in modo euristico i programmi di installazione e richiede le credenziali di amministratore o l'approvazione dell'utente amministratore per l'esecuzione con privilegi di accesso. Windows rileva anche in modo euristico gli aggiornamenti e i programmi che disinstalla le applicazioni. Uno degli obiettivi di progettazione di Controllo dell'account utente è impedire l'esecuzione delle installazioni senza la conoscenza e il consenso dell'utente, perché i programmi di installazione scrivono in aree protette del file system e del Registro di sistema.

Il rilevamento del programma di installazione si applica solo a:

  • File eseguibili a 32 bit
  • Applicazioni senza un attributo del livello di esecuzione richiesto
  • Processi interattivi in esecuzione come utente standard con controllo dell'account utente abilitato

Prima di creare un processo a 32 bit, vengono controllati gli attributi seguenti per determinare se si tratta di un programma di installazione:

  • Il nome file include parole chiave come "install", "setup" o "update".
  • I campi Risorsa controllo versioni contengono le parole chiave seguenti: Fornitore, Nome società, Nome prodotto, Descrizione file, Nome file originale, Nome interno ed Esporta nome.
  • Le parole chiave nel manifesto side-by-side vengono incorporate nel file eseguibile.
  • Le parole chiave in voci StringTable specifiche sono collegate nel file eseguibile.
  • Gli attributi chiave nei dati dello script di risorsa sono collegati nel file eseguibile.
  • Il file eseguibile contiene sequenze di byte di destinazione.

Nota

Le parole chiave e le sequenze di byte sono derivate da caratteristiche comuni osservate da varie tecnologie di installazione.

Nota

Il controllo dell'account utente: rilevare le installazioni delle applicazioni e richiedere i criteri di elevazione dei privilegi deve essere abilitato per il rilevamento del programma di installazione per rilevare i programmi di installazione. Per altre informazioni, vedere Elenco delle impostazioni di Controllo account utente.