2009-04-21 17 views
6

Sto utilizzando l'API di Windows Update per aggiornare un gruppo di VM. Con Windows Update arrivano gli inevitabili riavvii. Qualcuno può pensare a un modo che potrei dire da un server remoto se la finestra di Windows ha davvero finito il suo riavvio? Tutte le idee o i pensieri sarebbero apprezzati.Come si determina quando Windows ha finito il riavvio?

MODIFICA: Poiché le macchine virtuali sono in Lab Manager e utilizzano una configurazione recintata, WMI non funzionerà, e anche se ho pensato di utilizzare la VM per inviare un segnale quando è stato eseguito il backup. Non ci sarebbe stato modo di sapere in modo affidabile chi notificare l'app in attesa che la macchina potesse trovarsi su un numero qualsiasi di macchine, quindi non sembrava ragionevole. Comunque il tempo non è essenziale (e anche se so che questo mi morderà a volte quando un Service Pack scende) ho avuto un buon successo con il PING e poi attendo 5 minuti fino ad ora, quindi lo userò per ora. Se mi imbatto in eccezioni, cercherò quindi di implementare la VM notificando il mondo quando viene ripristinato. Grazie a tutti.

+1

http://stackoverflow.com/questions/56644/how-do-i-detect-if-a-windows-server-is-available-after-a-reboot – dotjoe

+0

Offtopic Comment - Ho inviato la risposta a la tua risposta di commento a questa domanda - http://stackoverflow.com/questions/1108359/how-to-choose-net-version-to-compile-project/1108380#1108380! Controlla. – Kirtan

risposta

5

aspetta solo che per rispondere a un ping.

Alla luce dei vostri commenti:

1 - Use this script

2 - Se si ottiene errori con lo script, follow these instructions.

+1

La macchina inizia a essere pingable circa 5 minuti prima che si possa effettivamente effettuare il login oi servizi siano di nuovo in esecuzione. Ma l'ho provato;) – Alex

+0

5 * minuti *? Sembra estremo. Sei sicuro di non ricevere le ultime risposte ping prima che il server si arresti? – JosephStyons

+0

Bene, devi ricordare che questi sono gli aggiornamenti di Windows, e lo sto provando nel peggiore dei casi. Il che significa che Vista e il suo dang sono in fase di aggiornamento. Proverò la sceneggiatura e vedrò cosa succede. – Alex

1

La realtà è che non si può sapere quando si è finito il boot. Il processo di avvio è piuttosto asincrono e quindi qualunque criterio si usi per determinare che è fatto "l'avvio" potrebbe accadere prima che qualcos'altro sia completato.

Quello che vorrei raccomandare è determinare cosa si vuole veramente sapere. Che cosa stai aspettando in particolare? Trova un modo per determinare se questo è accaduto e dimentica di preoccuparti di "fare il boot".

Se hai solo bisogno di sapere che la macchina è in backup ma forse non ha completato tutto il caricamento post-avvio, inserisci qualcosa nella sequenza di avvio o un servizio che segnali il tuo codice. Quando questo segnale ha luogo, prendi qualsiasi azione tu abbia bisogno.

+0

Ho bisogno di ottenere di nuovo la schermata di accesso. Dopo aver completato gli aggiornamenti, la configurazione. – Alex

1

È possibile installare un programma o un servizio di avvio sulla macchina per inviare una e-mail o un tipo di pubblicazione basata sulla rete ogni volta che si riavvia.

+0

Penso che proverò questo dopo .. – Alex

2

Verificare la presenza di questo evento nel registro eventi:

Event Type: Information 
Event Source: EventLog 
Event Category: None 
Event ID: 6005 
Date:  7/27/2007 
Time:  12:56:24 PM 
User:  N/A 
Computer: IWSDEV 
Description: 
The Event log service was started. 
+0

Impossibile controllare il registro eventi in remoto senza il servizio RPC. È meglio controllare semplicemente lo stato del servizio remoto del servizio "RpcSs". Ciò eliminerebbe anche la sottile possibilità di errori nel registro degli eventi, come il registro danneggiato. – spoulson

+0

@spoulson - buona idea, grazie –

0

Windows viene effettuata il riavvio solo leggermente prima che avrà bisogno di riavviare di nuovo :-)

Se stai cercando specificamente per interrogare lo stato di macchine virtuali, allora si dovrebbe verificare questi collegamenti che si occupano con l'API per Virtual Server 2005:

L'IVMVirtualMachine interfaccia ...

http://msdn.microsoft.com/en-us/library/aa368465(VS.85).aspx

... ha una proprietà denominata Stato ...

IVMVirtualMachine :: Demanio

http://msdn.microsoft.com/en-us/library/aa368637(VS.85).aspx

... che restituirà un valore della VMVMState Enumeration ...

http://msdn.microsoft.com/en-us/library/aa368922(VS.85).aspx

A un livello più generale, si dovrebbe probabilmente definire la quantità di Windows che si desidera e in esecuzione. Ritieni che lo stack di rete sia pronto per essere "riavviato" o hai bisogno di IIS/SQL o di qualche altro servizio a livello di applicazione?

Probabilmente scriverei un'app che controlla il "battito cardiaco" dei tuoi server - quell'app potrebbe essere la stessa che sta invocando il materiale di Windows Update. Allora ti faresti una bella "console" che ti mostra lo stato dei tuoi server. L'app heart-beat può eseguire il ping di un server, eseguire una pagina html statica, accedere al registro eventi remoto, utilizzare WMI o qualsiasi altra definizione sufficiente a considerare il riavvio del server.

+0

Sono su VMWare non su VirtualServer e durante il riavvio il tempo di spegnimento effettivo della macchina è molto ridotto. Quasi nessuna possibilità di rilevarlo, quindi risponde sempre tramite l'API di vmware – Alex

Problemi correlati