Gestione dei dispositivi in ​​Windows. Windows Come caricare driver e servizi in Windows Mantenimento della configurazione del driver durante la creazione dell'immagine Windows


Categoria ~ Consigli tecnici – Igor (Amministratore)

Nota: Nonostante il sito non dichiari chiaramente la compatibilità con le versioni di Windows a 64 bit, il programma si è comportato abbastanza bene in Windows 7 a 64 bit.

L'interfaccia ServiWin è resa abbastanza semplice e conveniente. È possibile alternare tra elenchi di driver e servizi di sistema (menu icone - i primi due), nonché personalizzare la visualizzazione e l'ordine di 16 possibili colonne. Inoltre, l'utilità consente di esportare dati in HTML e aprire le chiavi di registro corrispondenti per driver o servizi. Cliccando con il tasto destro su un autista o servizio apparirà un menu contestuale che permette non solo di gestire lo stato, ma di effettuare ricerche su Google, cosa che sarà senza dubbio utile per chi ha bisogno di capire cosa sta succedendo sul computer. Hai anche la possibilità di determinare il tipo di avvio del driver (disabilitato, automatico, ecc.). In realtà, questa è una caratteristica piuttosto rara. Fondamentalmente, le utilità di questa classe consentono solo di visualizzare un elenco di driver.

ServiWin è davvero un ottimo strumento per utenti avanzati. Tuttavia, dovresti comprendere che, come con qualsiasi strumento che modifica le impostazioni dei componenti del sistema, la configurazione o la disabilitazione errata di parti importanti del sistema può portare a seri problemi. Pertanto, se non sai a cosa serve un autista o un servizio, non lasciarti guidare dalla curiosità e non modificare le impostazioni senza prima familiarizzare con il loro scopo.

Nota: Ovviamente puoi creare un disco o un backup di Windows e successivamente apportare modifiche. Tuttavia, fai comunque attenzione, poiché disabilitare driver come le tastiere può giocarti uno scherzo crudele.

Ora sai come gestire i driver e i servizi Windows e sai anche come ottenere informazioni dettagliate su ciascuno di essi.

Nella parte precedente di questa serie, abbiamo esaminato due approcci ("lascia decidere a Windows" e "lascia decidere a me") che possono essere utilizzati per gestire i driver esterni quando si esegue un'installazione Lite Touch utilizzando MDT 2010. In questa parte, vedremo concludiamo la conversazione sul problema della gestione dei conducenti, ecco alcuni suggerimenti, trucchi e una storia. La prima storia mi è stata fornita da uno dei nostri lettori, Tim Lors, ed è un ottimo esempio visivo dei problemi che potresti incontrare quando provi a gestire i driver durante l'installazione:

"Più di un anno fa, ho scritto uno script software che installa tutti i driver su un PC WinXP. Il problema che ho riscontrato durante la selezione dei driver non era correlato al sistema operativo. Si trattava dell'incapacità del produttore di implementare correttamente il PnP tra i file inf dei driver e l'hardware stesso. Più precisamente, il file inf indicava che era il miglior driver per un determinato dispositivo hardware, quando, in realtà, non funzionava con un dispositivo del genere. L'unico modo per selezionare un driver adatto in una situazione così difficile era confrontare i numeri di identificazione PnP dell'hardware con un elenco di driver problematici noti e, se trovavo una corrispondenza, selezionavo manualmente il driver appropriato in base a criteri aggiuntivi, solitamente il numero di modello del PC. Il criterio aggiuntivo più comune richiesto per la selezione "lasciami decidere" era il numero di modello del PC, ma a volte includeva la versione del BIOS e l'ID del sottoinsieme PnP e in alcuni rari casi si trattava di tentativi ed errori. Naturalmente, procedere per tentativi ed errori è piuttosto difficile, perché quando Windows installava il driver che considerava più adatto, doveva isolare il driver non funzionante da Windows, oppure il sistema semplicemente lo reinstallava. Tieni presente che questa situazione si è verificata in un ambiente contenente quasi 10.000 PC di oltre 25 modelli diversi."

La maggior parte dei professionisti IT con cui ho parlato mi ha detto che i conducenti sono uno dei maggiori grattacapi e la storia sopra lo dimostra. Quindi, dopo aver dedicato le ultime quattro parti a questo argomento, voglio concludere la discussione sui conducenti con alcuni suggerimenti e trucchi che ti aiuteranno a semplificarti la vita.

Cerca i conducenti

La prima sfida è trovare gli autisti freelance che i tuoi sistemi potrebbero richiedere. Alcuni produttori lo rendono semplice, altri no, e Dell fa parte del primo gruppo perché fornisce driver per ogni sistema desktop sotto forma di file .cab per ogni sistema operativo. Per scaricare questi file .cab, accedere a http://www.delltechcenter.com/ e dal menu di scorrimento a sinistra selezionare Home, Microsoft, Microsoft System Center, SCCM " System Center Configuration Manager, Dell Business Client Operating System Deployment , Dell Business Client Operating System Deployment " I file .CAB e verrà visualizzata la pagina mostrata nella Figura 1:

Figura 1: download dei driver per i sistemi client Dell come file .cab

Una volta scaricato il file .cab, puoi estrarlo in una cartella, quindi fare riferimento a tale cartella durante l'importazione dei driver nella condivisione di installazione.

Anche altri produttori forniscono strumenti per scaricare i driver, ma a mio parere questi strumenti non sono così semplici o convenienti come l'approccio di Dell. Ecco alcuni esempi di tali strumenti e i collegamenti ad essi:

Estrazione di file INF da EXE

A volte i produttori di sistemi forniscono driver di dispositivo sotto forma di file .exe anziché di file .cab. In questo caso, un ottimo set di strumenti è WinRAR, che consente di estrarre i file dei driver da un file .exe in una cartella. Ricorda, per importare un driver, MDT richiede un file .inf e i file del driver corrispondenti non è possibile importare un file .exe come driver;

Impedire l'accensione dei driver

Per evitare che un driver importato venga abilitato (ad esempio, se i test mostrano che il driver sta causando problemi dopo l'installazione), è sufficiente aprire le proprietà del driver e deselezionare il campo Abilita questo driver (Figura 2):

Figura 2: è possibile disabilitare o consentire l'abilitazione del driver

Tieni presente che il driver sopra riportato è stato progettato per Windows a 32 e 64 bit. Se scopri che non funziona con Windows a 64 bit, puoi lasciare il driver abilitato ma deselezionare x64, che ne impedirà l'abilitazione durante un'installazione di Windows a 64 bit.

Se lo desideri, puoi anche disabilitare tutti i driver in una cartella disabilitando la cartella (Figura 3):

Figura 3: è possibile disabilitare una cartella personalizzata nella risorsa di installazione

Gestione dei driver di avvio utilizzando i profili di selezione

Puoi anche utilizzare i profili di selezione per gestire i driver durante la fase di avvio di Windows PE di un'installazione LTI. A tale scopo, aprire le proprietà della risorsa di installazione e selezionare la scheda Componenti di Windows PE x64 o Componenti di Windows PE x86 per gestire i driver per l'architettura del sistema operativo che si sta installando (Figura 4):

Per impostazione predefinita, è selezionato il profilo di selezione Tutti i driver e i pacchetti, ma solo i driver di rete e di archiviazione di questo profilo di selezione sono inclusi nell'immagine di avvio di Windows PE. Se necessario, puoi creare il tuo profilo di selezione che includerà i driver specifici dell'hardware WinPE per i tuoi sistemi di destinazione.

Utilizzo di più gruppi di driver da installare per marca e modello

Nella parte precedente, abbiamo visto come definire un gruppo di driver chiamato DriverGroup001 e utilizzarlo per gestire i driver durante l'installazione in base alla marca e al modello dei computer di destinazione. Keith Garner, System Deployment Specialist presso Xtreme Consulting Group, ha un post eccellente che fornisce ulteriori informazioni su questo argomento e mostra come organizzare i driver in modo più efficiente e quindi utilizzare più gruppi di driver per gestire il modo in cui vengono abilitati durante l'installazione.

Un altro post utile è questo post sull'utilizzo degli alias dei modelli, scritto da Michael Mergolo, consulente senior presso Microsoft Consulting Services.

Aggiunta di driver all'immagine

È possibile utilizzare il comando DISM.exe per aggiungere driver alle immagini offline; è sufficiente montare l'immagine e utilizzare il comando DISM con l'opzione /add-driver (vedere per ulteriori informazioni sull'utilizzo di DISM.exe).

Per aggiungere driver all'archivio driver (ovvero prerappresentare i driver in modo che siano disponibili quando Windows identifica i dispositivi che necessitano di driver), è possibile utilizzare il comando PnPutil.exe. Questo comando può essere utile se, ad esempio, hai utilizzato il catalogo di Microsoft Update per scaricare un file .cab di driver della stampante e desideri pre-presentare tali driver sul computer di riferimento in modo che siano disponibili durante l'installazione. Maggiori informazioni su questo comando possono essere trovate in e.

Mantenimento della configurazione del driver durante l'imaging di Windows

Infine, se crei un'immagine di riferimento e la installi su un hardware identico, puoi fornire agli utenti un'esperienza di avvio al primo avvio più rapida configurando i parametri PersistAllDeviceInstalls nel file di risposta per eseguire il sysprepping del computer di riferimento. Guarda i detagli

L'ordine di caricamento di driver e servizi in Windows



Per coloro che sono interessati al funzionamento interno del sistema operativo Windows, suggerisco una piccola ricerca. Cercheremo di scoprire cosa è responsabile dell'ordine in cui i driver e i servizi vengono caricati in Windows e se questo ordine può essere modificato.

Prima di tutto, diamo un'occhiata all'attuale ordine di avvio del sistema utilizzando il programma LoadOrder di Sysinternals. Il programma ci mostrerà cosa viene caricato e in quale ordine all'avvio del sistema operativo.

Come si può vedere dalla figura, vengono caricati prima i driver del dispositivo necessari per avviare il sistema, e poi i vari servizi Windows. Poiché esistono alcune differenze tra il caricamento dei servizi e il caricamento dei driver, li considereremo separatamente.

Autisti

Come soggetto di prova, prendiamo il driver Microsoft ACPI (Advanced Configuration and Power Interface), che è responsabile del rilevamento dell'hardware e della gestione dell'alimentazione. Il compito di ACPI è abilitare la comunicazione tra il sistema operativo e l'hardware, quindi il driver ACPI viene caricato all'inizio.

Il programma Loadorder fornisce informazioni piuttosto limitate sull'ordine di caricamento, quindi andiamo al registro per dati più accurati. Ogni driver e servizio Windows ha la propria sezione nel ramo del registro HKLM\SYSTEM\CurrentControlSet\Services. Le sezioni prendono il nome dal nome del driver\servizio, quindi abbiamo bisogno della sezione ACPI.

Tre parametri del registro controllano l'ordine in cui viene caricato il driver. Parametro principale Inizio- determina il tipo di avvio del driver. Ecco le regole in base alle quali i conducenti impostano il valore del proprio parametro Start:

Driver che dovrebbero caricato dal bootloader del sistema all'avvio del sistema operativo, indicare il valore Inizio pari 0 (avviare all'avvio del sistema ). Un esempio sono i driver del bus di sistema e un driver del file system utilizzati all'avvio del sistema;
Autista quello non è necessario direttamente per avviare il sistema, punta a Inizio valore pari a 1 (avvio del sistema ). Esempio: driver della scheda video standard (VgaSave);
Autista, non richiesto per l'avvio del sistema, imposta il valore Inizio pari 2 (avvio automatico). Un esempio è un driver per un Multiple UNC Provider (MUP) che supporta i nomi UNC di risorse remote (tipo );
Autisti, non è necessario per il funzionamento del sistema operativo(ad esempio, driver della scheda di rete), indicare il valore Inizio pari 3 (lancio su richiesta ).

Anche i driver del dispositivo possono utilizzare parametri Gruppo E Etichetta per controllare l'ordine di avvio all'avvio del sistema. I conducenti\servizi utilizzano il parametro Gruppo per indicare il gruppo a cui appartengono e l'ordine in cui i gruppi vengono caricati è determinato dal parametro Elenco, situato nella sezione HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\.

A proposito, il parametro Gruppo non è obbligatorio. Se il driver\servizio non è incluso in nessun gruppo, verrà caricato alla fine della coda.

Un conducente può perfezionare ulteriormente il proprio ordine di caricamento utilizzando il parametro Tag, che specifica la posizione specifica del conducente nel gruppo. Il Gestore I/O ordina i driver nel gruppo in base al valore di questo parametro e i driver che non dispongono di un parametro Tag vengono spostati in fondo all'elenco dei driver nel gruppo.

Osservando l'ordine di caricamento, potresti pensare che vengano caricati prima i driver con valori di Tag più piccoli, poi quelli con valori più grandi, ma questo non è del tutto vero. La priorità dei valori dei parametri Tag all'interno di un gruppo è determinata nella sezione HKLM\SYSTEM\CurrentControlSet\Control\GroupOrderList.

Apriamo ad esempio il parametro binario Boot Bus Extender, che corrisponde al gruppo omonimo a cui appartiene il driver ACPI. Il parametro è un insieme di doppie parole (4 byte ciascuna). La prima parola (evidenziata in rosso) specifica la lunghezza totale della variabile (il numero di parole doppie), nel nostro esempio 06. Le restanti parole doppie sono solo tag. Il driver ACPI ha un tag pari a 01 (evidenziato in verde).

La priorità di un tag non è determinata dal valore del tag, ma dalla sua posizione: più in alto si trova il tag, maggiore è la sua priorità nel gruppo e maggiore è la priorità del driver a cui corrisponde questo tag. E poiché 01 è più alto degli altri tag, il driver ACPI viene caricato per primo nel gruppo.

Servizi

L'ordine in cui vengono caricati i servizi Windows è leggermente diverso dall'ordine in cui vengono caricati i driver. Prendiamo come esempio il servizio di aggiornamento automatico (wuauserv). Non è particolarmente critico per il funzionamento del sistema e quindi viene caricato per ultimo.

Andiamo di nuovo al registro. I parametri di avvio del servizio si trovano nella sezione HKLM\SYSTEM\CurrentControlSet\Services\wuauserv. Ho identificato due parametri principali responsabili dell'ordine di caricamento di questo servizio.

I servizi Windows vengono avviati da Service Control Manager (SCM) in base al valore del parametro Inizio. Questo parametro per i servizi può assumere i seguenti valori:

Avvio automatico (2): il servizio si avvia automaticamente, immediatamente dopo l'avvio del processo SCM principale Services.exe;
Lancio su richiesta (3) - il servizio inizia quando necessario, su richiesta di qualsiasi servizio o programma;
Disabilitato (4) - il servizio è disabilitato e non si avvierà in nessun caso.

Non è possibile specificare i valori 0 (avvio all'avvio del sistema) e 1 (avvio dal sistema) per i servizi, solo per i driver di dispositivo.

Inoltre, a partire da Windows Vista\Server 2008, è apparsa un'altra modalità di avvio per i servizi: avvio automatico ritardato. Il parametro ne è responsabile Avvio automatico ritardato = 1, che indica all'SCM di avviare automaticamente questo servizio con un ritardo. SCM avvia i servizi impostati per l'avvio ritardato dopo il caricamento dei servizi contrassegnati per l'avvio automatico.

La modalità di avvio del servizio può essere controllata non solo dal registro, ma anche in modalità grafica, dalla console Servizi.

Proprio come i driver, i servizi Windows possono utilizzare il parametro Group nella propria chiave di registro per indicare il gruppo a cui appartengono. Ora, per chiarezza, prendiamo il nostro servizio wuauserv, situato alla fine dell'elenco dei download. Utilizzando la chiave Group, la inseriremo nel gruppo Event Log, riavviamo e osserviamo l'ordine di caricamento in Loadorder. Come puoi vedere, l'ordine è cambiato e wuauserv è risalito dall'ultimo posto, caricandosi subito dopo il suo compagno di classe: il servizio registro eventi. È vero, l'ordine di posizionamento all'interno del gruppo non può essere modificato, perché Il tag non viene utilizzato per i servizi.

E un altro parametro che influenza indirettamente l'ordine in cui vengono caricati i servizi: Dipende dal servizio. Indica da quali servizi dipende il servizio. Di conseguenza, il servizio non viene caricato finché non vengono caricati i servizi elencati in DependOnService.

Le dipendenze funzionano come segue: se i servizi si trovano nello stesso gruppo, il servizio dipendente viene spostato alla fine dell'elenco e inizia dopo i servizi da cui dipende. Se i gruppi sono diversi, il servizio semplicemente non verrà avviato e SCM genererà un errore.

Ciò viene mostrato più chiaramente nello snap-in Servizi, dove la scheda Dipendenza elenca sia i servizi da cui dipende un determinato servizio sia i servizi che dipendono da esso.

Quindi abbiamo scoperto in quale ordine vengono caricati i driver e i servizi in Windows e come è possibile modificare questo ordine. Ma prima di affrettarti a modificare il registro, ricorda che l'ordine in cui vengono caricati driver e servizi viene determinato automaticamente e non dovresti apportare modifiche senza una buona ragione. Un solo parametro impostato in modo errato può portare alla completa inoperabilità del sistema e non vi è alcuna garanzia che sarà possibile ripristinarlo. Pertanto, prima di iniziare a modificare il registro, assicurati di crearne una copia di backup ed è anche consigliabile avere un supporto di avvio a portata di mano.

Poiché Windows è un sistema multitasking, esclude libertà per i programmi applicativi come l'accesso diretto alle porte I/O o la gestione degli interrupt hardware. L'interazione con l'hardware a basso livello può essere eseguita solo da programmi di sistema eseguiti in modalità privilegiata. I driver di dispositivo svolgono un ruolo importante qui.

Windows utilizza una struttura di driver multilivello in cui i driver di alto livello possono fungere da filtri che eseguono un'elaborazione speciale sui dati ricevuti o passati a un driver di basso livello. Un esempio potrebbe essere quello di separare il driver che controlla il bus dai driver per i dispositivi specifici collegati al bus. Un altro esempio è un driver che esegue la crittografia/decrittografia dei dati quando si lavora con il file system NTFS. La struttura dei driver a tutti i livelli è soggetta a standard uniformi noti come WDM (Windows DiverModel), tuttavia, i driver di alto livello, a differenza di quelli di basso livello, non gestiscono gli interrupt hardware.

Stranamente, in Windows NT i driver di basso livello non rappresentano il livello più basso di gestione dei dispositivi. Ancora più vicino all'hardware si trova il cosiddetto livello HAL (Hardware Abstractions Level). Il suo ruolo è nascondere agli altri moduli del sistema operativo, inclusi i driver, alcuni dettagli sull'utilizzo dell'hardware, a seconda dei bus specifici, del tipo di scheda madre e del metodo di connessione. Ad esempio, HAL fornisce ai driver la possibilità di accedere ai registri del dispositivo tramite i relativi numeri logici senza sapere se il registro è connesso a una porta del processore o mappato in memoria.

Nonostante la standardizzazione della struttura, si possono distinguere diversi tipi speciali di driver, che differiscono per funzionalità.

    I driver GDI (GraphicDeviceInterface) sono driver di alto livello per dispositivi grafici (monitor, stampanti, plotter). Questi driver traducono le chiamate grafiche di Windows (come traccia linea, riempimento area, testo di output, selezione carattere corrente, penna corrente, riempimento corrente) in comandi che eseguono azioni corrispondenti su un dispositivo specifico. L'emissione di questi comandi al dispositivo viene eseguita da un altro driver di basso livello. Grazie alla presenza dei driver GDI, lo stesso programma può inviare immagini grafiche a dispositivi diversi. Un ottimo esempio di ciò è la modalità di anteprima disponibile in vari editor, che visualizza le pagine sullo schermo esattamente come verranno stampate.

    I driver della tastiera e del mouse, oltre alle operazioni standard dei driver, eseguono un carico aggiuntivo. Generano messaggi sugli eventi sul dispositivo corrispondente (pressione e rilascio di tasti, movimento del mouse, pressione e rilascio del pulsante del mouse) e li inseriscono nella coda dei messaggi di sistema. Il sistema inoltra quindi ciascun messaggio al processo a cui era destinato per un'ulteriore elaborazione.

    I driver di virtualizzazione dei dispositivi (driver VxD) servono a condividere i dispositivi tra processi, creando l'illusione che il processo abbia la proprietà esclusiva del dispositivo. Infatti, il conducente organizza una coda di richieste dai processi, commuta il dispositivo nella modalità richiesta per il processo successivo, ecc. Un esempio potrebbe essere un driver di virtualizzazione del monitor. Un'applicazione console (ad esempio un programma MS-DOS) funziona con l'intero schermo in modalità testo. Ma se tale applicazione viene avviata in una finestra di Windows, il driver VxD simula la modalità testo nella grafica. Per fare ciò, il conducente deve intercettare i tentativi del programma di accedere direttamente agli indirizzi della memoria video e convertire le coordinate delle posizioni familiari in modalità testo nelle coordinate delle posizioni corrispondenti nella finestra.

    I seguenti strumenti vengono utilizzati per gestire i servizi in Windows:
  • Lo snap-in services.msc è lo strumento più conveniente per la gestione dei servizi;
  • Il programma msconfig.exe - oltre a gestire i servizi, permette anche di controllare l'avvio di Windows (vedi il capitolo Utilità utili di Windows 7);
  • I comandi net e sc vengono utilizzati per gestire i servizi dalla riga di comando. Fare clic sul pulsante Start, digitare services.msc e premere Invio. Verrà visualizzato lo snap-in Gestione servizi.

Scopriamo come gestire i servizi. Fai doppio clic su qualsiasi servizio: selezionane uno qualsiasi, al momento non siamo interessati a nessun servizio specifico. Vedrai la finestra delle proprietà del servizio.


La scheda Generale contiene il nome del servizio, la descrizione del servizio, il nome del file eseguibile del servizio e i pulsanti di controllo del servizio. Qui puoi modificare il tipo di avvio. Dall'elenco Tipo di avvio è possibile selezionare uno dei tipi di avvio del servizio.

    Il campo Stato visualizza lo stato corrente del servizio:
  • In esecuzione: il servizio è avviato e in esecuzione al momento;
  • Arrestato: il servizio non è in esecuzione;
  • Sospeso: il servizio è in esecuzione ma è attualmente sospeso.
    Pulsanti di controllo del servizio:
  • Avvia: avvia un servizio interrotto (o non ancora avviato);
  • Stop: interrompe il servizio;
  • Sospendi: sospende l'esecuzione di un servizio (non tutti i servizi supportano la pausa); Per continuare a eseguire il servizio, utilizzare il pulsante Continua;
  • Continua: continua il servizio.

Non è ancora necessario modificare nulla in modo che non influenzi negativamente il tuo sistema. È meglio andare alla scheda Dipendenze: lì scoprirai da quali altri servizi dipende questo servizio e quali altri servizi dipendono da esso.
Tieni presente che se altri servizi dipendono da un servizio e interrompi il servizio, anche tutti i servizi dipendenti interromperanno l'esecuzione.