Come posso sapere se Windows è in esecuzione in modalità provvisoria?

Ho un assistente di Windows che a volte riavvia in modalità sicura dopo gli aggiornamenti. Sto lavorando a questo problema, ma quello che mi piacerebbe sapere è come posso controllare per vedere se Windows è in esecuzione in modalità provvisoria o no.

Idealmente vorrei incorporarlo in uno script che invierebbe un controllo passivo alla nostra casella Nagios con lo stato.

C'è una variabile ambientale che posso usare o qualche modo per get queste informazioni tramite la row di command?

  • Strumenti di amministrazione remota del server su Server 2008 R2
  • Come posso eseguire il docker su windows server 2008 r2 in esecuzione in vmware?
  • Imansible registrare nuovo Data Warehouse Service Manager di System Center dopo la migrazione del database di Service Manager
  • Imansible amministrare i servizi in macchina Windows remota a causa di un problema di protezione
  • Configurare la massa ILO?
  • Client FTP che interagisce completamente nell'esploratore di Windows
  • Cosa succede ai file locali quando abilita il reindirizzamento?
  • Visualizzatore file esagono gratuito
  • 4 Solutions collect form web for “Come posso sapere se Windows è in esecuzione in modalità provvisoria?”

    Penso che questo fa quello che stai cercando

    PS C:\> gwmi win32_computersystem | select BootupState BootupState ----------- Normal boot 

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx

    Valori di return possibili:

     Caricamento normale
     Caricamento del sistema fail-safe
     Fail-safe con l'avvio di networking
    

    Secondo questo articolo , una variabile di ambiente chiamata SAFEBOOT_OPTION è impostata su Minimal o Network se il sistema viene avviato in modalità provvisoria o in modalità provvisoria con networking; altrimenti la variabile è distriggersta.

    Un test sul valore della variabile dovrebbe fare il trucco; tuttavia, tenere presente che se il sistema effettivamente esegue in modalità provvisoria, non avrà alcuna connessione in networking, per cui la segnalazione dello stato potrebbe essere difficile.

    EDIT: il mio male, non ho letto il KB abbastanza per capire che è fondamentalmente inutile come una risposta da sola.

    Un modo più utile per determinare se sei in modalità di sicurezza non è da : Microsoft® Windows® Internals: Microsoft Windows ServerTM 2003, Windows XP e Windows 2000 di Mark E. Russinovich, David A. Solomon .

    Il kernel di Windows esegue la scansione dei parametri di avvio alla ricerca dei switch di sicurezza in modalità primitiva durante l'avvio e imposta la variabile interna InitSafeBootMode a un valore che riflette gli switch che il kernel trova. Il kernel scrive il valore InitSafeBootMode al valore del Registro di sistema HKLM \ SYSTEM \ CurrentControlSet \ SafeBoot \ Opzione \ Opzione Valore in modo che i componenti di modalità utente, come il SCM, possano determinare quale modalità di avvio è il sistema.

    Prendi quanto sopra e accoppi con quanto segue, e avrai una posizione del Registro di sistema che puoi controllare con un valore numbersco che puoi tradurre in qualcosa di utile.

    Dal supporto.microsoft KB intitolato "Come determinare se il sistema è in esecuzione in modalità provvisoria da un driver di periferica".

    Il kernel di Windows esport un puntatore a una variabile ULONG denominata InitSafeBootMode. Questa variabile contiene le impostazioni della modalità provvisoria.

    Un driver di periferica può determinare se il sistema è in esecuzione in modalità provvisoria dal valore della variabile InitSafeBootMode. Un valore di 0 significa che il sistema non è in esecuzione in modalità provvisoria.

    La tabella seguente elenca le modalità per altri valori.
    Modalità Valore
    1 SAFEBOOT_MINIMAL
    2 SAFEBOOT_NETWORK
    3 * SAFEBOOT_DSREPAIR
    * Nota Il valore di 3 si applica solo ai controller di dominio di Windows.

    È inoltre ansible eseguire la query WMI suggerita da Craig620 direttamente dalla row di command se non si utilizza PowerShell:

     > wmic COMPUTERSYSTEM GET BootupState BootupState Normal boot 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.