Domanda

Questo è un computer Windows 2003 che viene acceso ogni mattina, ma nessuno accede fino ad alcune ore dopo.

Voglio usare il tempo intermedio per eseguire uno script di backup c: \ script \ backup.cmd

Come posso avviarlo incustodito dopo che la macchina è salita?

Ho provato 2 chiavi di registro, ma ciò ha comportato l'esecuzione dello script dopo l'accesso dell'utente (che è troppo tardi):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices

Alla fine ho usato TaskScheduler di Windows, che ha una tale opzione, ma mi chiedevo se ci fosse un'altra possibilità?

È stato utile?

Soluzione

Risposta breve: GPEDIT.MSC (Start, Esegui, GPEdit.msc)

Windows 2000 e versioni successive [1] offrono una raccolta Script di avvio nell'editor delle politiche:

  • Impostazioni computer - > Impostazioni di Windows - > Script (avvio / spegnimento)

Esiste un'area di script accesso equivalente (ovvero dopo l'avvio del computer, quando un utente accede) nel bit di configurazione Utente.

più lunga:

GPEDIT.MSC è la console di modifica dei Criteri di gruppo e viene eseguita sull'archivio Criteri di gruppo del computer locale quando viene utilizzato direttamente, quindi è utile per impostare i parametri solo locali. Quando si utilizza Active Directory, la stessa interfaccia viene utilizzata per modificare gli oggetti dei criteri di gruppo (GPO) ospitati nella foresta, quindi le stesse impostazioni sono disponibili su diversi computer.

Gli script di avvio del computer vengono eseguiti nel contesto del computer , ovvero LocalSystem, come hai notato, quindi spesso non possono accedere alle unità di rete che richiedono un determinato utente o appartenenza a un gruppo per funzionare, e così via . Quando i computer accedono alla rete, generalmente (con eccezioni) usano il loro account MACHINENAME $.

Uno script di avvio è un modo rapido e semplice per avviare un processo all'avvio della macchina.

Il processo di avvio del computer sarà influenzato dal tempo necessario per eseguire il programma, quindi potresti voler assicurarti di chiamarlo con il comando START da un file batch o specificare di non attendere il completamento dell'eseguibile in qualunque linguaggio di script tu usi. (il punto chiave è: esegui lo script in modo asincrono a meno che non sia critico o non debba essere eseguito in modo asincrono, perché richiederà sempre nessun tempo . = utenti insoddisfatti).

L'uso di un servizio Win32 è un'opzione alternativa: puoi utilizzare l'utilità SRVANY dal Resource Kit per " service-ify " praticamente qualsiasi eseguibile. VS.Net 2002 e versioni successive consentono inoltre di creare direttamente un servizio gestito.

E Utilità di pianificazione diventa molto più capace a partire da Vista / 2008, in grado di eseguire script all'avvio, in stand-by e / o quando vengono generati o determinati registri eventi altre condizioni sono soddisfatte: è piuttosto bello! Attività pianificate ha il possibile vantaggio di poter specificare l'account utente con cui viene eseguita l'attività, se questo è importante per te.

Caveat Scriptor: http://support.microsoft.com/kb/256320

Esegui gli script di avvio in modo asincrono: http://msdn.microsoft.com/en-us/library/ms811602. aspx

Utilità di pianificazione di Vista (novità): http://technet.microsoft.com/en-us/appcompat/aa906020. aspx

[1] Windows XP, 2003, Vista / 2008, Windows 7 / 2008R2, Windows 8/2012, Windows 8.1 / 2012R2, Windows 10 / Windows Server 2016. Tutto. Ma NT4 no!

Altri suggerimenti

Hai già delineato una buona soluzione:

Imposta un'attività pianificata per l'esecuzione all'avvio e consenti l'esecuzione del lavoro quando l'utente non è connesso.

Puoi eseguire uno script all'avvio del sistema usando i criteri di gruppo gpedit.msc

Il modo in cui lo fai già mi sembra perfetto; tuttavia, se si desidera un approccio alternativo, i servizi vengono avviati all'avvio della macchina in modo da poter scrivere un servizio che rilevi se è un nuovo giorno (per consentire i riavvii) e se viene quindi eseguito il backup.

Se I lo facessi come servizio, utilizzerei TCL perché lo conosco e mi piace e ha un'estensione twapi che ti consente di eseguire uno script come servizio. Altri linguaggi di scripting potrebbero avere strutture simili.

Sì, se si utilizza Active Directory. Se è possibile isolare il computer alla propria unità organizzativa o utilizzare il filtro WMI, è possibile assegnare un oggetto Criteri di gruppo con uno script di avvio per il computer. Ciò assicurerebbe che anche se qualcuno fosse entrato in modalità provvisoria e disabilitato l'Utilità di pianificazione, all'avvio e alla connessione al dominio, lo script sarebbe stato eseguito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top